加速編譯時間的方法挺簡單,方法如下
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後重新編譯運行,想要加快編譯時間可以繼續添加上面的代碼。