即使没有任何更改,Android多模块Gradle构建速度也很慢

时间:2017-05-30 07:33:56

标签: android android-studio gradle android-gradle

我有一个包含多个模块的Android项目,即使我尝试重建它而不改变任何内容,构建时间也很慢。

其结构类似于:

Simplified project setup

还有更多“父”(和独立的父级兄弟姐妹)和“功能”模块,但设置是图片的设置。

我的gradle.properties文件如下:

org.gradle.jvmargs=-Xmx4096m -Xms2048m
org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.configureondemand=true

我正在使用Gradle版本3.5和插件版本2.4.0-alpha7。

该项目还使用multidex(javaMaxHeapSize "4g"jumboMode true),数据绑定,kotlin和java以及几个注释处理器。

当构建时,我可以看到多个线程并行运行不同的任务,大部分项目除外,主要用于最终的“app”模块(我认为是正常的)。

但是很多时候似乎花在了不同的时间 :: compileJavaWithJavac任务。即使没有改变任何东西,在具有16 Gb RAM的MacBook Pro i7上构建也需要大约30秒。

如果我在功能模块的方法中更改了一行代码(甚至没有更改方法的签名),则构建时间会超过1:30分钟。

这些正常时间吗?有什么我可以进一步优化以改善构建时间吗?

我还检查了其他一些答案:

  • this one开始,设置preDexLibraries = false无效,我已经使用assembleDebug
  • incremental = true建议here不起作用且deprecated
  • 禁用即时运行似乎有所帮助,但不是很多
  • 上面讨论的项目构建风格已设置minSdkVersion 21

1 个答案:

答案 0 :(得分:0)

您应该使功能模块尽可能独立,并且与其他模块的任何依赖关系都请考虑存根。一种仅包含接口feature1-> featureonestub-> feature2

的代理