怎樣將Gradle構建速度提升90%

AndroidHint發表於2020-02-16

一、第一個最有效的辦法

檢查你使用的Gradle外掛版本,是不是最新的。如果不是最新的,請升級到Gradle外掛的最新版本。

Gradle在升級過程中一直對構建速度做了優化,升級到Gradle最新版本後,能將構建速度提升80%,這是最有效的辦法。

二、Gradle的一些配置項

1、Gradle Daemon

開啟Gradle的守護程式來構建專案:

org.gradle.daemon=true

2、Parallel Project Execution

如果你要構建一個多Module並且依賴關係比較複雜的專案,那麼你可以使用並行專案執行:

org.gradle.parallel=true

3、Global gradle.properties

在Gradle主目錄中配置的屬性優先順序高於在專案中配置的屬性。當你並不想一個個專案的去改動配置時,可以定義一份常用的Gradle配置檔案放在Gradle的主目錄下,它的路徑如下:

/Users/使用者名稱/.gradle/gradle.properties

#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的形式展示的。

基於上述的優化,我們看一下當前的構建報告:

第一次執行

怎樣將Gradle構建速度提升90%

由於第一次沒有構建快取,因此第一次比較慢,用時5分11秒。

注意:如果Gradle檢測到配置檔案有修改,如gralde.properties、build.gradle檔案等,則會重新發起構建,時間也會比較長。

第二次執行

怎樣將Gradle構建速度提升90%

相比較第一次,已經有了很大的進步了,用時1分26秒左右。我們再來看一下這一分26秒是用在哪裡了:

怎樣將Gradle構建速度提升90%

在Task Execution(任務執行)中,可以看到每一個專案中耗時最長的竟然是lint任務。lint任務就是靜態程式碼檢測,不管你有沒有用到lint,預設都會執行這個任務。

由於我們專案中並沒有用到lint,所以我們將lint任務去掉,也就是在執行build命令時加上-x lint這個引數,即

gradle build -x lint
複製程式碼

第三次執行

怎樣將Gradle構建速度提升90%

可以看到將lint任務去掉後,構建時間只用了26秒,這個時間還是可以接受的。

經過上面的優化後,Gradle構建速度從以往平均4分鐘,減少到了26秒,優化率達到了89%。

Tips:使用Android Studio工作列直接點選執行按鈕是不能去掉lint任務的,所以為了方便構建後安裝應用,可以使用 gradle installDebug -x lint 命令。

四、結論

Gradle的外掛版本對Gradle的構建速度相差很大,由於Gradle版本升級一直致力於提升構建速度,所以強烈推薦升級Gradle版本,以獲取最大限度的構建速度,再經過Gradle的一些配置和減少耗時任務,完全可以在40秒之內構建好一個專案。

相關文章