Flutter包体剧增优化

Flutter 包体剧增优化

前不久在适配第三方SDK的时候需要兼容minSDK:24 导致包体剧增。

问题发生前配置:
minSdk = flutter.minSdkVersion
flutter使用的版本默认minSDK支持21

问题发生后配置:
minSdk=24

开始猜测是minSdk改变导致aar依赖的体积变大,在查看网上讨论后发现23后不再默认对.so进行压缩,最后在flutter上看到这不属于flutter问题而是Android 对于 AGP 8 以上,增加 packaging

android {
    packaging {
        jniLibs {
            useLegacyPackaging true
        } 
    }
}

useLegacyPackaging 是 Android Gradle 插件的一项配置,用于控制 .so 文件(JNI 库)的打包方式。
当设置为 true 时,Gradle 会使用旧的打包方式,将 .so 文件压缩到 APK 中。
当设置为 false(默认值),Gradle 会使用新的打包方式,不再压缩 .so 文件。

进一步了解后发现新知识,在Android API 28+ 开始,dex 默认不开启压缩,所以具体请根据minSdk来配置

android {
    packaging {
        dex {
            useLegacyPackaging true
        }
        jniLibs {
            useLegacyPackaging true
        }
    }
}

参考1
参考2

posted @ 2025-04-03 11:19  孤锋饮雪  阅读(151)  评论(0)    收藏  举报