我有一个多项目(大约10个模块),每次建造大约需要20-30秒。当我在Android Studio中按下Run键时,我每次都要等待重新构建应用程序,这非常缓慢。

是否有可能在Android Studio中自动化构建过程?或者你有什么建议可以加快这个过程吗?

在Eclipse中,由于自动构建,在模拟器上运行相同的项目大约需要3-5秒。

这是我的身材。Gradle文件(app模块):

buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':libraries:SharedLibs')
    compile project(':libraries:actionbarsherlock')
    compile project(':libraries:FacebookSDK')
    compile project(':libraries:GooglePlayServices')
    compile project(':libraries:HorizontalGridView')
    compile project(':libraries:ImageViewTouch')
    compile project(':libraries:SlidingMenu')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 16
    }
}

当前回答

如果使用谷歌播放服务,只依赖于你需要的库而不是整个blob可以使事情更快。

如果你只需要地图,使用:

compile 'com.google.android.gms:play-services-maps:6.5.+'

而不是:

compile 'com.google.android.gms:play-services:6.5.+'

后者将20k个方法(参见博客)引入类路径,这可能使总方法计数超过64k。

这将强制使用proguard或multidex,即使是调试版本。对于我的一个项目,我有以下的构建时间

Multidex构建(带支持库)~40秒 保护建造~20秒 当方法限制< 64k ~5sec时构建

如果在sdk 21+上开发,就有可能优化multidex构建,如android文档中所述

android {
    productFlavors {
        // Define separate dev and prod product flavors.
        dev {
            // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
            // to pre-dex each module and produce an APK that can be tested on
            // Android Lollipop without time consuming dex merging processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion 14
        }
    }
    ...
}

其他回答

先试试这个。这是我的个人经历。

我也有同样的问题。我所做的只是永久禁用反病毒(我的是Avast Security 2015)。就在禁用防病毒后,事情进展顺利。gradle成功完成了。 从现在开始,gradle在几秒钟内完成(只需要5-10秒)。

到处寻找,终于找到了一个适合我们的解决方案。启用并行构建(在OSX:首选项->编译器-> gradle ->“并行编译独立模块”)和启用“自动制作项目”将它从~1分钟降低到~20秒。感谢/u/Covalence。

http://www.reddit.com/r/androiddev/comments/1k3nb3/gradle_and_android_studio_way_slower_to_build/

如果你从命令行使用gradle,你可以让这个过程更快。IDE开发人员有很多优化工作要做。但这只是一个早期版本。

欲了解更多信息,请阅读与一些开发人员在g+上的讨论。

这是另一个提高性能的技巧:

Android Studio 3.0包含新的DEX编译器D8。

“dex编译器主要工作在日常应用开发的底层,但它直接影响应用的构建时间、.dex文件大小和运行时性能。”

“当将新的D8编译器与当前的DX编译器进行比较时,D8编译速度更快,输出的。dex文件更小,同时具有相同或更好的应用程序运行时性能。”

D8是可选的-使用它,我们必须把它放在项目的gradle.properties

android.enableD8=true

更多信息:https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html

PS.它使我的构建时间提高了大约30%。

按照这些步骤将使其速度提高10倍,并将构建时间减少90%

首先创建一个名为gradle的文件。属性:

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

将这一行添加到文件中:

org.gradle.daemon=true
org.gradle.parallel=true

在Android Studio中检查这个选项