优化Android Studio中的构建时间

时间:2015-04-09 01:40:43

标签: maven android-studio build gradle android-gradle

我尝试过构建它:

  • parallel(有点帮助)
  • 守护=真
  • preDexLibraries true / false(没有太大区别)
  • incremental true
  • 离线

每次都需要40秒左右。如果我改变了什么并不重要。在“gradle clean”之后构建它需要> 50s。

我希望我做错了什么。 Eclipse / ant可以在< 10s。

中构建WITH CHANGES的连续构建

任何帮助如何使这个< 10s赞赏。 是的,我们有很多模块,一些jar库,一些maven依赖。仍然不明白为什么两个连续的版本没有变化需要> 40s。

使用的Gradle:2.2.1 Android studio:不太相关,通常仅使用Gradle构建它。

编辑:添加一些分析日志。

  

:app:dexProjDebug 22.541s

     

:app:shrinkProjDebugMultiDexComponents 4.279s

     

:app:compileProjDebugJava 3.478s

     

:app:packageProjDebug 2.591s

     

:app:processProjDebugResources 2.590s

     

:app:packageAllProjDebugClassesForMultiDex 2.536s

     

:app:createProjDebugMainDexClassList 2.126s

5 个答案:

答案 0 :(得分:1)

即使对于包含源代码的库项目,您也需要正确定义输入和输出。 (Gradle Documentation)。第二次重建时,您是否收到了UP-TO-DATE消息?

答案 1 :(得分:1)

如果您没有更改其他模块,则可以使用gradlew :app:build构建应用程序。这将消除Gradle花费在构建其他模块上的时间。您也可以使用gradlew :moduledirectoryname:build单独构建任何模块。如果您需要构建一个模块和应用程序,您可以立即执行这两个任务,以避免两次通过Gradle的配置阶段:gradlew :app:build :moduledirectoryname:build

答案 2 :(得分:1)

如果可能,请更新到Gradle 2.4。它的速度要快得多(声称20-40%)。

答案 3 :(得分:1)

最重要的构建时间减少器之一是preDex任务。检查preDex是否在您的构建中运行。它会在您第一次运行时增加构建时间,但会大大减少后续构建中的构建时间,因为大多数SDK和库都已被定义。但请注意,它不会在某些条件下运行,例如如果你使用multidex。

Btw Google非常了解Gradle和Android Studio的构建时间,并将在即将发布的版本中引入重大改进,包括Jack和Jill,它将允许从源代码直接编译到dex。您可以尝试使用它们进行试验 - 请参阅此处:http://tools.android.com/tech-docs/jackandjill

还值得观看最近的Google I / O视频:https://youtu.be/f7ihSQ44WO0?t=327

答案 4 :(得分:0)

下载Genymotion模拟器。运行Android应用程序非常快速和好。它会为你节省很多时间。 这是链接 - GenyMotionDownload