Gradle 官方的一些優(yōu)化建議
1
盡可能的使用最新版本的 Gradle 和 JVM状土,這是最簡單直接的方式无蜂,Gradle 開發(fā)團隊會持續(xù)的更新 Gradle 版本,來優(yōu)化構建速度以及提供一些新的特性蒙谓,而使用新版本的 JVM斥季,是因為 Gradle 運行在 JVM 上,所以,如果新版本的 JVM 提升了性能酣倾,同樣也會讓 Gradle 跑的更快舵揭。
2
Parallel execution,并行執(zhí)行 Gradle 的 tasks躁锡,在你的 gradle.properties 文件添加以下配置:
開啟并行編譯
//org.gradle.parallel=true
開啟守護進程 通過開啟守護進程午绳,下一次構建的時候,將會連接這個守護進程進行構建映之,而不是重新fork一個gradle構建進程
org.gradle.daemon=true
//啟用新的孵化模式
org.gradle.configureondemand=true
//開啟 Gradle 緩存
org.gradle.caching = true
3
配置階段
減少不必要的 apply plugin拦焚,按需使用。如果某個插件不是所有的模塊都要使用的情況下杠输,就不要使用 allprojects{} 的方式赎败。
在配置階段避免執(zhí)行一些耗時的工作,比如 IO 操作或者網(wǎng)絡請求等
4
Daemon
在老版本的 Gradle 開啟 Daemon 配置蠢甲,而在 3.0 以后的 Gradle 版本是默認支持的僵刮。
調(diào)整 daemon’s 的堆大小,默認是 1 GB峡钓,如需調(diào)大妓笙,可在你的 gradle.properties 設置:
org.gradle.jvmargs=-Xmx2048M
5
使用 implementation 替代 compile,有效的減少編譯時的依賴項能岩,需升級至 Gradle 3.4 版本
6
增量編譯寞宫,Gradle 可以將依賴關系分析到單個類級別,以便僅重新編譯受更改影響的類拉鹃。 增量編譯是 Gradle 4.10 以來的默認編譯辈赋。 在老的版本中,可以像這樣激活它:
tasks.withType(JavaCompile) {
options.incremental = true
}
7
使用最新版本的工具
8
避免編譯不必要的資源膏燕,比如不必要的語言本地化钥屈,
你可以只指定一種語言資源和屏幕適配,如以下示例所示:
android {
...
productFlavors {
dev {
...
// The following configuration limits the "dev" flavor to using
// English stringresources and xxhdpi screen-density resources.
resConfigs "en", "xxhdpi"
}
...
}
}
9
10
11
使用 WebP 格式的圖片,有效減少圖像文件大小,而不必執(zhí)行構建時壓縮,可以加快你的構建
12
關閉 PNG crunching坝辫,加快構建速度通過禁用自動圖像壓縮篷就,Gradle 3.0 版本以上在 debug 的構建類型下是默認關閉的。如需手動配置其他構建類型近忙,如下示例:
android {
buildTypes {
release {
// Disables PNG crunching for the release build type.
crunchPngs false
}
}
// If you're using an older version of the plugin, use the
// following:
// aaptOptions {
// cruncherEnabled false
// }
}