檢查你使用的Gradle插件版本,是否是最新的。若是不是最新的,請升級到Gradle插件的最新版本。緩存
Gradle在升級過程當中一直對構建速度作了優化,升級到Gradle最新版本後,能將構建速度提高80%,這是最有效的辦法。bash
開啓Gradle的守護進程來構建項目:markdown
org.gradle.daemon=truejvm
若是你要構建一個多Module而且依賴關係比較複雜的項目,那麼你可使用並行項目執行:gradle
org.gradle.parallel=true優化
在Gradle主目錄中配置的屬性優先級高於在項目中配置的屬性。當你並不想一個個項目的去改動配置時,能夠定義一份經常使用的Gradle配置文件放在Gradle的主目錄下,它的路徑以下:ui
/Users/用戶名/.gradle/gradle.propertiesspa
#Enable daemon org.gradle.daemon=true # Try and findout the best heap size for your project build. org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 # Modularise your project and enable parallel build org.gradle.parallel=true # Enable configure on demand. org.gradle.configureondemand=true 複製代碼
在項目的Terminal下運行以下命令:插件
gradle build -profile
複製代碼
能夠獲取構建報告,它是以HTML的形式展現的。code
基於上述的優化,咱們看一下當前的構建報告:
因爲第一次沒有構建緩存,所以第一次比較慢,用時5分11秒。
注意:若是Gradle檢測到配置文件有修改,如gralde.properties、build.gradle文件等,則會從新發起構建,時間也會比較長。
相比較第一次,已經有了很大的進步了,用時1分26秒左右。咱們再來看一下這一分26秒是用在哪裏了:
在Task Execution(任務執行)中,能夠看到每個項目中耗時最長的居然是lint任務。lint任務就是靜態代碼檢測,無論你有沒有用到lint,默認都會執行這個任務。
因爲咱們項目中並無用到lint,因此咱們將lint任務去掉,也就是在執行build命令時加上-x lint這個參數,即
gradle build -x lint
複製代碼
能夠看到將lint任務去掉後,構建時間只用了26秒,這個時間仍是能夠接受的。
通過上面的優化後,Gradle構建速度從以往平均4分鐘,減小到了26秒,優化率達到了89%。
Tips:使用Android Studio任務欄直接點擊運行按鈕是不能去掉lint任務的,因此爲了方便構建後安裝應用,可使用 gradle installDebug -x lint 命令。
Gradle的插件版本對Gradle的構建速度相差很大,因爲Gradle版本升級一直致力於提高構建速度,因此強烈推薦升級Gradle版本,以獲取最大限度的構建速度,再通過Gradle的一些配置和減小耗時任務,徹底能夠在40秒以內構建好一個項目。