Android Studio - Gradle 增量构建

Posted

技术标签:

【中文标题】Android Studio - Gradle 增量构建【英文标题】:Android Studio - Gradle incremental build 【发布时间】:2015-11-27 00:46:59 【问题描述】:

在过去的几天里,我一直在努力改善我们项目的构建时间,但没有成功。我不介意必须等待 1 分钟 40 秒才能进行干净构建,但如果我在单个 java 文件中插入一行,我将获得与干净构建相同的构建时间。我一定是做错了什么,但我根本找不到任何文档或堆栈溢出问题来指出我正确的方向。我设法收集了一堆信息,我将集中在此处,希望对这个主题有更好理解的人解释我为什么会得到这些糟糕的构建时间。

这里是:

我知道我的 build.gradle 文件中的这个选项是我所寻求的。

android 
    dexOptions 
        incremental true
    
...

光荣的增量构建。但是,这显然对我不起作用,因为我的项目使用 multidex 功能与 Lollipop 之前的 android 版本兼容。

前去救援!使用 Proguard,我可以缩小我的可执行文件并删除所有未使用的方法。我在使用 proguard minify 时遇到了一些错误,但能够正确设置并使其正常工作。伟大的!每次构建需要大约 20 秒的 Dex 生成。不幸的是,没有什么是免费的,proguard gradle 任务大约需要 2 分 50 秒才能运行。比我最初的情况还要糟糕。

这个问题有解决办法吗?

【问题讨论】:

在全局 Gradle 设置中启用 offline work 有帮助吗? 不幸的是,没有。在我的构建过程中真正耗时的任务是 dex 生成。获取依赖项实际上非常快。 【参考方案1】:

终于找到了解决办法。它一直在官方文档中,我只需要更深入地了解构建过程才能理解所说的内容。

增量构建和 multidex 确实是不兼容的选项。但是,对于 sdk 版本,通过仅重建受影响的 dex 文件,multidex apk 可以进行 21+ 增量构建。更多信息可以在这里找到:

http://developer.android.com/tools/building/multidex.html

【讨论】:

您考虑过使用 BUCK 吗? google.com/search?q=buck+facebook&ie=utf-8&oe=utf-8 我会研究一下,谢谢你的建议!我不确定我是否可以在工作中使用它,但我肯定会在我的个人项目中尝试它。【参考方案2】:

我没有直接回答如何解决 Gradle 的问题,但我有一个建议可以帮助您提高构建速度。

最近我遇到了同样的问题:我们的构建花了将近 4 分钟。我尝试了不同的构建选项,但没有获得显着的利润。

经过一番研究,我遇到了Jrebel for Android。这就像类固醇上的“即时跑步”。它支持多种类型的更改(UI、方法、字段等)并实时更新应用程序而无需重新创建活动(因此,保存状态)。通常,应用任何类型的更改都需要十三十秒。

该工具不是免费的,但它们提供了不同的定价选项和试用帐户,因此您可以尝试一下。它像往常一样适用于 Android Studio 或 Eclipse 的插件,安装非常简单。

更新

现在他们甚至有免费版本:link to post

【讨论】:

【参考方案3】:

我今天(2017 年 11 月 13 日)尝试了此选项并收到以下构建警告:

警告:android.dexOptions.incremental 属性已弃用,它对构建过程没有影响。

然后我用谷歌搜索了警告消息,答案确认自从更新的 Gradle 版本以来,该条目已被弃用。见android.dexOptions.incremental property is deprecated

【讨论】:

以上是关于Android Studio - Gradle 增量构建的主要内容,如果未能解决你的问题,请参考以下文章

android studio怎么设置gradle版本

如何建立与 Android studio和 gradle android 库

android studio怎样配置gradle本地路径

android studio Gradle升级到3.5.0遇到的坑

android Studio 降级gradle

android studio怎么配置gradle