Android 加快編譯時間

加速編譯時間的方法挺簡單,方法如下

1、在所有module的build.gradle中android{}內加入如下代碼

android{
...
//-----加入的代碼start------
   tasks.whenTaskAdded { task ->
        if (task.name.contains("lint")
                //如果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
        }
    }
//-----加入的代碼end------
}

2、 若模擬器或真機已經安裝了debug的apk,需要先卸載,然後再編譯運行,沒安裝就點三角形run app編譯運行。
原本需要6s的加入之後效果
這裏寫圖片描述
據反饋別人項目大的幾十秒的可以降到幾秒。

2017/5/25記:
若加入上邊代碼後編譯運行出現錯誤信息類似於:java.lang.UnsatisfiedLinkError: Couldn’t load hyphenate from loader dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/com.itculturalfestival.smartcampus-1.apk”],nativeLibraryDirectories=[/data/app-lib/com.itculturalfestival.smartcampus-1, /systemb]]]: findLibrary returned null
解決方法:去掉上面添加的加速編譯的代碼,否則依賴包編譯會出錯 ,然後卸掉app後重新編譯運行,想要加快編譯時間可以繼續添加上面的代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章