让app:packageProductionDebug任务占用70%的构建时间是正常的吗?

时间:2019-03-27 11:55:50

标签: android gradle build-time

我正在尝试优化正在开发的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%的时间?我可以做点什么来改善这一点吗?

1 个答案:

答案 0 :(得分:0)

因此,我找到了导致打包任务运行这么长时间的原因。我在gradle.properties文件中拥有这些属性

org.gradle.daemon=true
org.gradle.jvmargs=-Xms1024m -Xmx5000m -Xcheck:jni -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

删除这些属性后,打包任务将运行一秒钟,并且总体构建时间约为15秒。我不知道为什么这些属性会导致构建性能急剧下降,但是我不在乎,因为我有15秒的构建时间