While working on
TIMOB-24829 i noticed a few more things in the android build that can be improved, resulting in a faster build time on incremental builds.
Compared to the iOS build, which only takes ~5s for incremental builds, the Android build is much slower with ~30-40 sek. Most of the time is spend on recompiling and dexer operations, which are unnecessary if nothing related changed.
The Android builder already contains a lot of comments about what can be skipped or cached, but contains no actual code that would do that. The actions in particular are:
- Compile java classes (only needs to be done when files in build/android/src or build/android/gen change
- Run Proguard (only needs to be done when any java classes changed)
- Run dexer (only needs to be done if any libraries changed, any files in build/android/bin/classes have changed or debugging/profiling was toggled. This alone will cut down the android build time by approximately one third.
Below are the performance improvements between Titanium 8.3.0 and 9.0.0 with kitchensink-v2 on a 15" MacBook Pro 2015 with a solid state drive.