Generalidades
Android Build Speed Optimization Cool Tech-Rocketx | Por Zhang Chaojiong | Enero de 2022
A medida que crece el tamaño del proyecto, también lo hace la velocidad de compilación, a veces tomando varios minutos de tiempo de compilación para hacer cambios. Para la situación actual, escribí el complemento «RocketX» para acelerar la compilación reemplazando dinámicamente «módulo» con «AAR» durante la compilación. Le permite experimentar una velocidad de compilación aar para todos los módulos, mientras mantiene todos los módulos para facilitar la modificación. ¡Perfecto!
2.1 Introducción al proyecto de prueba
- El proyecto objetivo tiene un total de ’30K+’ archivos de clase y recursos, y la compilación completa es de aproximadamente ‘4min’
- Velocidad de construcción de RocketX (promedio 3x por operación)
- Las dependencias del proyecto se muestran en la figura a continuación, la ‘aplicación’ depende del módulo de negocios ‘BM’ y el módulo de negocios ‘BM’ depende del módulo de nivel superior ‘Base/Comm’
- Compilación ‘RX(RocketX)’: se puede ver que la velocidad de compilación de ‘RX(RocketX)’ se controla básicamente en alrededor de 30 segundos en cualquier módulo, porque solo se compilan la ‘aplicación’ y el módulo modificado. Otros módulos son paquetes «AAR» que no participan en la compilación.
- Compilación nativa: cuando se cambia el módulo ‘base/Comm’, se deben compilar todos los módulos en la parte inferior. Porque el módulo ‘app/BMXXX’ puede usar interfaces o variables del módulo ‘base’ y no se sabe si se realizaron cambios. (Entonces es lento.)
- Aquí está la diferencia entre la compilación de estudio de Android y la compilación de RocketX: RocketX tiene ’60+’ menos módulos para acelerar:
- Si te ha gustado este artículo, danos estrellas.github