Android Studio - Gradle增量版本

时间:2015-09-01 17:16:28

标签: android android-studio gradle proguard android-proguard

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

这就是:

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

    android {
        dexOptions {
            incremental true
        }
    ...
    

    光荣的渐进式构建。但是,这对我来说显然不起作用,因为我的项目使用multidex功能与Lollipop之前的Android版本进行了反向兼容。

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

这个问题有解决方法吗?

3 个答案:

答案 0 :(得分:11)

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

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

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

答案 1 :(得分:3)

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

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

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

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

<强>更新

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

答案 2 :(得分:2)

我今天(2017年11月13日)尝试了这个选项并获得了以下构建警告:

警告:不推荐使用android.dexOptions.incremental属性,它对构建过程没有影响。

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