我正在尝试优化正在开发的android应用程序的构建时间。当前,它的初始构建时间约为一分半钟,增量构建的时间约为一分钟。我已经尝试过此页面上的所有建议:https://developer.android.com/studio/build/optimize-your-build#optimize
我们只是设法摆脱了以前使用的注释处理器,但这并没有减少初始或增量构建时间,只是给了我们使用Instant run的机会-我们以前遇到了很多问题,例如。根本不进行热插拔。
我们进行了一些分析,发现一半以上的时间来自:app:packageProductionDebug任务。 这是我的增量构建之一的探查器样本:
total: 58s
:app:packageProductionDebug 38.933s
:app:transformDexArchiveWithDexMergerForProductionDebug 6.697s
:app:transformClassesWithDexBuilderForProductionDebug 3.833s
:app:compileProductionDebugJavaWithJavac 2.891s
:app:transformClassesWithFirebasePerformancePluginForProductionDebug 1.530s
:app:processProductionDebugResources 1.500s
:app:compileProductionDebugKotlin 1.478s
此任务在做什么?我想这只是将先前编译的代码打包到apk中。如果我没看错,为什么此任务需要80%的时间?我可以做点什么来改善这一点吗?
答案 0 :(得分:0)
因此,我找到了导致打包任务运行这么长时间的原因。我在gradle.properties文件中拥有这些属性
org.gradle.daemon=true
org.gradle.jvmargs=-Xms1024m -Xmx5000m -Xcheck:jni -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
删除这些属性后,打包任务将运行一秒钟,并且总体构建时间约为15秒。我不知道为什么这些属性会导致构建性能急剧下降,但是我不在乎,因为我有15秒的构建时间