1. 程式人生 > >Android Studio Gradle優化

Android Studio Gradle優化

Android Studio Gradle優化


能夠提升Gradle執行效率的提示:

  1. Gradle Daemon(Gradle守護程序)

    org.gradle.daemon=true
  2. Parallel Project Execution(並行專案執行)

    org.gradle.parallel=true
  3. Global gradle.properties(Gradle全域性配置檔案)

    在專案的gradle.properties檔案當中新增如下的選擇項:

    org.gradle.daemon=true
    org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512
    m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.configureondemand=true

    不得不說,也可以在 /Users/你的使用者名稱*/.gradle/gradle.properties 這個檔案當中新增,沒有該檔案自行建立即可,對所有的專案有效。

  4. 修改AS安裝目錄下的vmoptions檔案

    這裡寫圖片描述

    • Android Studio 2.0 以下
      每次升級/安裝 Android Studio 之後最好都修改一下這個引數:到 Android Studio 安裝目錄,找到 bin/studio(64?).vmoptions(檔名可能因作業系統而不同,但大同小異),然後把 -xmx 後面的數字改大一點,比如 2048m 或4096m。

    • Android Studio 2.0 以上
      在Help選單下面,有個Edit Custom VM Option 選項,可以直接開啟那個studio(64?).vmoptions檔案了。

    • 如何確定修改生效了
      在 Settings -> Appearance 頁裡,開啟 Show memory indicator 選項,然後主介面右下角會顯示 Heap 總大小以及使用狀況。這樣操作一下,就可以確認 Heap Size 修改是否生效

    Tips:預設是用x86的as,改studio.exe.vmoptions;用64位as就改studio64.exe.vmoptions。改完以後記得點一下File–Invalidate caches/restart這個,才能生效,不然關掉as再開就打不開了

  5. 跳過一些任務項

    android{
    ...
        tasks.whenTaskAdded { task ->
            if (task.name.contains("lint")
                    //如果instant run不生效,把clean這行幹掉
                    || task.name.equals("clean")
                    //如果專案中有用到aidl則不可以捨棄這個任務
                    || task.name.contains("Aidl")
                    //用不到測試的時候就可以先關閉
                    || task.name.contains("mockableAndroidJar")
                    || task.name.contains("UnitTest")
                    || task.name.contains("AndroidTest")
                    //用不到NDK和JNI的也關閉掉
                    || task.name.contains("Ndk")
                    || task.name.contains("Jni")
            ) {
                task.enabled = false
            }
        }
    }

總結


  • 在Gradle目錄下有一個全域性gradle.properties,所有的專案將繼承它(Android中Module的單個Gradle配置檔案優先順序低於全域性的);
  • 跳過不成功的Gradle任務,跳過Lint檢查;
  • 加快Gradle的構建速度,第4和第5點效果最為明顯;

參考文章: 每個執行任務的執行時間