Android Studio-Gradle增量构建

Android Studio-Gradle增量构建,android,android-studio,gradle,proguard,android-proguard,Android,Android Studio,Gradle,Proguard,Android Proguard,在过去的几天里,我一直在努力提高我们项目的构建时间,但运气不佳。我不介意为一个干净的构建等待1M40秒,但是如果我在一个java文件中插入一行,我将获得与干净构建相同的构建时间。我一定是做错了什么,但我就是找不到任何文档或堆栈溢出的问题,指出我在正确的方向。我设法收集了一堆信息,我将集中在这里,希望对这个主题有更好理解的人能解释我为什么会得到这些糟糕的构建时间 下面是: 我知道build.gradle文件中的此选项是我所寻求的 android { dexOptions {

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

下面是:

  • 我知道build.gradle文件中的此选项是我所寻求的

    android {
        dexOptions {
            incremental true
        }
    ...
    
    辉煌的增量构建。然而,这显然不适合我,因为我的项目使用multidex功能与棒棒糖之前的android版本进行追溯兼容性

  • 准备营救!有了Proguard,我可以缩小我的可执行文件并删除所有未使用的方法。我在proguard minify中遇到了几个错误,但是我能够正确地设置它并让它工作。伟大的Dex生成每一次构建大约需要20秒。不幸的是,没有什么是免费的,proguard-gradle任务需要大约2M50秒才能运行。比我最初的情况还要糟糕


这个问题有解决办法吗?

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

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


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

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

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

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

更新

现在他们甚至有了免费版本:

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

警告:
android.dexOptions.incremental
属性已被弃用,对生成过程没有影响


然后,我在谷歌上搜索警告信息,结果证实,由于新的Gradle版本,该条目已被弃用。请参见

在全局渐变设置中启用
脱机工作
是否有帮助?不幸的是,没有。在我的构建过程中真正耗时的任务是生成索引。获取依赖项实际上相当快。您考虑过使用BUCK吗?我会调查的,谢谢你的建议!我不确定我是否能在工作中使用它,但我肯定会在我的个人项目中尝试。