Android 應用構建速度提升Gradle配置優化

wardenlzr發表於2020-10-08

0.使用最新版本的 Android Gradle 外掛

找到專案跟目錄的build.gradle

1.避免啟用舊版的 Multidex
minSdkVersion 21(或大於21)(21 之前的 API 級別並沒有原生的支援 multidex)

2.禁用 Multiple APK 構建

if (project.hasProperty('devBuild')) {
        splits.abi.enable = false
        splits.density.enable = false
        //禁用 PNG 壓縮
        aaptOptions.cruncherEnabled = false
}

3.最小化使用資原始檔

...
minSdkVersion 21
resConfigs("en", "xxhdpi")
...

4.禁用 PNG 壓縮(方法合併到第2條)

5.使用 Apply Changes

6.避免被動的改動

applicationVariants.all { variant ->
        variant.outputs.all { output ->
            // 刪除unaligned apk
            if (output.zipAlign != null) {
                output.zipAlign.doLast {
                    output.zipAlign.inputFile.delete()
                }
            }
            /*時間相關的不要加
            String time = appBuildTime as String
            if (null == time || time.isEmpty()) {
                time = getTime()
            }
            def versionName = VERSION_NAME*/
            output.outputFileName = "app_${appBuildTypes}.apk"
        }
}

7.不使用動態版本標識

8.Gradle 記憶體分配調優(合併到第9條)

9.開啟 Gradle 構建快取

# Default value: -Xmx1024m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#守護程式
org.gradle.daemon=true
#並行編譯
org.gradle.parallel=true
#開啟快取:
android.enableBuildCache=true
#開啟孵化模式:
org.gradle.configureondemand=true
#開啟gradle快取
org.gradle.caching=true

10.設定java版本(直接全域性配置)

allprojects {
    repositories {
        jcenter()
        ...
    }
    tasks.withType(JavaCompile) {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

參考資料:

https://mp.weixin.qq.com/s?__biz=MzAwODY4OTk2Mg==&mid=2652050269&idx=1&sn=079e9e84cda81b24ee4446d404276772&chksm=808cb318b7fb3a0e22a6411ba606b4161790a0a8c17f5f5b579099ae6b0dd5eafc8f4ae6e1c5&mpshare=1&scene=1&srcid=0417nNhPmMuVQp1wAkhFqFy7&sharer_sharetime=1587119071081&sharer_shareid=89492907bfba3b07330db17cfa3ed0e3&key=738af3dfc6942ae4ca961310f97262ceea1d22588e3aad16e65ee3fdf98f4c22068d48bbadbb0d032bd83b0c4def3fb0c1dfb28b29eea3064a7efec0b48bcfe74247fb0657fb09d1432f4830ef138ff7&ascene=1&uin=MjI4MDczNTQ0MQ%3D%3D&devicetype=Windows+10+x64&version=6209005f&lang=zh_CN&exportkey=AcTjwCf5u7JSGAM2PqryQdg%3D&pass_ticket=d7p2YWX%2Ftng7zV8Zttz0XnZLRG5hIeYFvBfBZO70RcY3SB%2BuPUl4%2FKUxUCfJDeFZ

https://blog.csdn.net/devilnov/article/details/53321164

 

 

相關文章