0

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

4

1 回答 1

0

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

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

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

于 2019-03-27T17:06:27.547 回答