我的应用程序使用了许多必要的库,这就是为什么我被迫使用 multidex 支持库,并且它运行得很好。但问题出在 gradle 构建速度上。构建平均需要 2 分钟的时间,当我在开发和测试时,这相当烦人。
有没有办法加快我的调试构建速度?
我的应用程序使用了许多必要的库,这就是为什么我被迫使用 multidex 支持库,并且它运行得很好。但问题出在 gradle 构建速度上。构建平均需要 2 分钟的时间,当我在开发和测试时,这相当烦人。
有没有办法加快我的调试构建速度?
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
}
}
...
buildTypes {
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
一旦你添加了产品风格,你可以使用devDebug
任务(而不是默认的debug
任务)进行开发构建:
- 从命令行运行:./gradlew installDevDebug
- 从Android Studio中:打开Build Variants窗口并选择devDebug
构建变体。
当然,你应该使用SDK >= 21 的设备进行开发。
对于那些不想使用产品风格的人,也有一个解决方案。如这个代码片段所建议的那样,动态计算minSdkVersion
值:
int minSdk = hasProperty('devMinSdk') ? devMinSdk.toInteger() : 14
apply plugin: 'com.android.application'
android {
...
defaultConfig {
minSdkVersion minSdk
...
}
}
在这个例子中,我们检查是否定义了 devMinSdk
属性,如果为真,则使用它,否则默认为14。devMinSdk
值传递给构建脚本?有两个选项:
使用命令行:./gradlew installDebug -PdevMinSdk=21
使用Android Studio首选项:
进入首选项 (Windows下的设置) -> Build, Execution, Deployment -> Compiler -> 在命令行选项文本框中输入-PdevMinSdk=21
。
最近,Android Gradle插件团队引入了构建缓存。您可以通过在gradle.properties
中添加android.enableBuildCache=true
来启用它。
更多信息请参见http://tools.android.com/tech-docs/build-cache
对我来说,它将增加约30秒的增量构建时间。
它不适用于作为支持库一部分引入的旧版multidex(com.android.support:multidex
),因此仅适用于minSDK>=21的情况。您只能为开发构建设置它,并使用minSDK<21进行发布构建。
它也可以在未启用multidexing的情况下工作。
dexOptions {
javaMaxHeapSize "4g"
}
classpath 'com.android.tools.build:gradle:1.3.0-beta4'
来尝试。@ValerioSantinelli - Hugo Gresse将MinSdk更改为21对我来说使一切恢复正常。现在所有内容都可以在大约6秒内编译完成。
最新的Android Studio 3.0已经不再需要这个了。
进入设置,搜索编译器,在命令行选项中输入“--offline”,然后进行编译。