Android Studio Gradle 打包速度優(yōu)化實(shí)踐
由于我司的項(xiàng)目混合使用了原生代碼和Flutter Boost, 導(dǎo)致打包速度不管調(diào)試還是Release模式下都很緩慢, 32G 內(nèi)存固態(tài)盤電腦, 改一行原生代碼也需要7,8分鐘才能看到效果, 因此嘗試在不改動源代碼的情況下對Gradle增量打包進(jìn)行了優(yōu)化(首次打包耗時(shí)仍然很長). 主要優(yōu)化點(diǎn)就是增加構(gòu)建緩存, 使用守護(hù)進(jìn)程daemon, 目前一次打包時(shí)間縮小到了2分鐘多一點(diǎn). 這些參數(shù)都需要反復(fù)實(shí)驗(yàn)才能看到效果, 并要根據(jù)物理CPU核心數(shù)(threadCount
)和內(nèi)存數(shù)量進(jìn)行調(diào)整(javaMaxHeapSize
,?maxProcessCount
). 雖然根據(jù)javadoc文檔提示dexInProcess
設(shè)置為true會有很大提速, 目前發(fā)現(xiàn)效果并不是十分明顯.app/build.gradle
優(yōu)化前
優(yōu)化后
優(yōu)化前的打包速度:
deubug 包
優(yōu)化后: Gradle build finished in 2 m 9 s 717 ms
Release 包:
18:19 Gradle build finished in 3 m 32 s 492 ms
優(yōu)化后:
18:23 Gradle build finished in 2 m 19 s 816 ms
Mac Mini M1 8G 內(nèi)存筆記本, 固態(tài)盤上的增量打包耗時(shí):
優(yōu)化前
7m 17s
優(yōu)化后
2m 15s
查看打包性能分析報(bào)告:
推薦離線打包gradlew --profile --offline --rerun-tasks assembleDebug
gradlew --profile --rerun-tasks assembleDebug
gradle.properties
優(yōu)化前:
優(yōu)化后:
參考文檔:
優(yōu)化構(gòu)建速度?https://developer.android.google.cn/studio/build/optimize-your-build.html
分析 build 性能?https://developer.android.google.cn/studio/build/profile-your-build?hl=zh-cn