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
}
}
}

浙公网安备 33010602011771号