1. 程式人生 > >實踐:加快gradle的構建速度

實踐:加快gradle的構建速度

加快gradle的構建速度,Android studio2.2.2的更新實踐

前段時間把公司的專案從eclips轉成Android Studio,跑起來慢的不得了。今天花了大半天時間折騰一翻終於把編譯時間控制在30S以內,最快也有3秒,速度成倍的提升,渣電腦有這速度還算滿意。把有關過程記錄如下:

1.Andoird studio升級到2.2.2

之前用的2.1.3,這次順手直接就升到2.2.2了,反正就是喜歡嚐鮮。而且已經是穩定版不會有啥問題,更大的原因是在升級Gradle到3.1版本時碰到gradle外掛2.1.3版本不相容,等升級到2.0以上。所以想用高版本的gradle來加快速度還得升級studio到2.2.2。碰到的錯誤資訊也記錄如下:

Error:Cause: org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection Possible causes for this unexpected error include:

Gradle's dependency cache may be corrupt (this sometimes occurs after
a network connection timeout.) Re-download dependencies and sync project (requires network) The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem. Stop Gradle build processes (requires restart) Your project may be using a third-party plugin which is
not compatible with the other plugins in the project or the version of Gradle requested by the project. In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

2.gradle升級到3.1版本,看到官網有3.2的,不過還不是穩定版就沒嘗試

關於安裝:1.可以從官網下載後放到C:\Users\user.gradle\wrapper\dists中再重啟開啟Android studio,這種方式我沒有采用,本人用的下面這種。
2.直接在Androidstudio將gradle的版本改成3.1,然後會自動下載比 較方便。

詳細如下:專案裡找到gradle/wrapper/gradle-wrapper.properties, 開啟找到distributionUrl=https://services.gradle.org/distributions/gradle-3.1-all.zip,或者直接點選工具欄上的Project Structrue 按鈕 開啟Project Structrue,選擇選項Project,講Gradle Version 改為你想要的,比如3.1,點選OK,等待下載完成。
這裡寫圖片描述

3. .gradle資料夾中新增gradle.properties檔案

裡面新增如下內容:
    #開啟守護程序。
    org.gradle.daemon=true
    #設定jvm引數
    org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m  
    -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    #開啟並行編譯
    org.gradle.parallel=true
    #儘早的讓gradle去配置
    org.gradle.configureondemand=true
    #允許中文路徑的專案
    com.android.build.gradle.overridePathCheck=true

4.專案跟目錄下也新增gradle.properties一個檔案,內如如下:

   #開啟守護程序
 org.gradle.daemon=true
 #開啟並行編譯
 org.gradle.parallel=true

5.最後如果之前有用到加速構建增量incremental true的,可以取消了,否則可能會報警告,因為高版本預設以有。

    //dexOptions {
        //javaMaxHeapSize "4g"  //設定java的堆記憶體為4g,如果電腦可以可設定更大
        //preDexLibraries = false //
        //incremental true    //開啟加速構建增量  //2.2以後貌似不需要了,預設就有
//    }

參考: