【问题标题】:Optimizing build time in Android Studio在 Android Studio 中优化构建时间
【发布时间】:2015-06-14 05:12:38
【问题描述】:

我已经尝试过构建它:

  • 并行(有点帮助)
  • daemon=true
  • preDexLibraries true/false(没有太大区别)
  • 增量真
  • 离线

每次都需要 >40 秒。我是否改变任何东西都没有关系。在“gradle clean”之后构建它需要 >50 秒。

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

任何帮助如何带来这个

使用的 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

【问题讨论】:

  • 赏金是为了获得更多的牵引力。
  • 您的构建脚本是否包含许多自定义任务?在这种情况下,可能是这些配置不正确,因此 Gradle 无法识别任务何时是最新的?你能分享脚本和/或其输出吗?
  • 没有自定义任务。只是一堆带有源代码的库项目 (8) 和几个直接用作 gradle/maven 依赖项的项目。
  • dexOptions { incremental true // 也试过 false preDexLibraries false // 也试过 true javaMaxHeapSize "4g" jumboMode true }
  • 您是否尝试过使用--profile 构建以查看所有时间都花在了哪里?这会在 build/reports 中创建一个报告,显示每个任务的时间以及它是否是最新的。

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


【解决方案1】:

即使对于带有源代码的库项目,您也需要正确定义输入和输出。 (Gradle Documentation)。当您第二次开始重建时,您会收到 UP-TO-DATE 消息吗?

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果可能,请更新到 Gradle 2.4。它明显更快(声称 20-40%)。

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          【解决方案5】:

          下载 Genymotion 模拟器。运行 android 应用程序非常快而且很好。它将为您节省大量时间。 这是链接 - GenyMotionDownload

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-10-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-02-01
            • 1970-01-01
            • 2016-09-11
            相关资源
            最近更新 更多