I am looking for ways to reduce the cold start time of our app in Android. And I came to the conclusion -which may be wrong- that I can reduce the functionality which Smack loads at startup. Whether this reduction would be significant for our load times is unclear, but I am willing to try. We also use a customized server so we are ceratin of its capabilities, we do not need redundant capability discoveries and whatnot; since some of these XEP implementations attach themselves to all connection instances.
As far as I can see; Smack loads a bunch of static initialization classes and Providers by parsing config and provider xml files. We use a few XEP implementations from extensions and experimental modules, but it looks like everything in a module is loaded when its incorporated. I want to reduce this to loading only what we use from a specific module. Anybody have experience to comment on these?:
- Is my assumption (that all poviders of used modules are loaded) correct?
- Is the best way to do this just build Smack from source and refactor these xml configuration files? How about addDisabledClass() mechanism, can it be used for this purpose?
- Any tips?