Gradle是Android項目的全新構建系統(tǒng),使用AndroidStudio工具開發(fā)項目的童鞋應該很清楚了瓦哎,Gradle是基于JVM的構建工具的下一個革命性步驟。它借鑒了已建立的工具(如Ant和Maven)的經驗教訓敞映,并將他們最好的想法提升到了一個新的水平辐真。但隨著Android項目變得越來越復雜边臼,模塊越來越多哄尔,代碼量越來越大的時候,構建性能就顯得尤為重要柠并。如果你不進行優(yōu)化岭接,那么你會發(fā)現你平時編譯的時間都快和編碼的時間相當了富拗!這是一個很恐怖的致命BUG!
說到提升編譯性能鸣戴,大家可能會想到Instant Run啃沪,Instant Run固然是好,但是一旦你的項目使用到了MultiDex就悲劇了葵擎,各種ClassLoader報錯谅阿。。酬滤。這個時候第三方框架比如FreeLine就派上用場了签餐,不過本文主角并不是FreeLine,而是如何優(yōu)化Gradle配置來提升編譯速度盯串。好吧直接看gradle.properties文件配置:
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# org.gradle.jvmargs=-Xmx1536m
# 指定用于守護程序進程的JVM參數氯檐。
# 該設置對于調整內存設置特別有用。
# 默認值:-Xmx10248m -XX:MaxPermSize = 256m
org.gradle.jvmargs = -Xmx2048m -XX:MaxPermSize = 512m -XX:+ HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# 設置為true時体捏,Gradle守護程序將運行構建冠摄。
org.gradle.daemon = true
# 配置后,Gradle將以孵化并行模式運行几缭。
# 此選項僅應與分離的項目一起使用河泳。更多細節(jié),訪問
# http ://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
# 啟用新的孵化模式年栓,使Gradle在配置項目時具有選擇性拆挥。
# 僅配置相關項目,從而加快大型多項目的構建速度某抓。
# http ://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand = true
- 如果要從增量構建中永久跳過lint檢查纸兔,可以將其添加到根build.gradle
allprojects {
//跳過構建時link檢查
tasks.whenTaskAdded { task ->
if (task.name.equals("lint")) {
task.enabled = false
}
}
}