Flutter发布到Play Store的APK体积超100MB无法缩小如何优化?
Flutter Google ML Kit 项目APK体积超标优化方案
核心原因说明
你遇到的体积超标问题基本来自Google ML Kit的默认打包规则:默认会打包全CPU架构的原生SO库、全语言的识别模型到通用APK中,哪怕你只用到部分功能,这部分冗余资源通常会占用70MB以上的空间。
可落地优化步骤
- 优先使用App Bundle(AAB)格式上传到Play Store
Play Store会自动针对不同CPU架构、语言的设备做资源拆分,用户实际下载的安装包只会包含自身设备需要的资源,本地测试的通用APK体积不代表用户实际下载体积,AAB格式完全可以规避100MB的安装包限制。 - 拆分ABI构建单独APK(如果一定要传APK格式)
执行命令flutter build apk --split-per-abi,会分别生成arm64-v8a、armeabi-v7a、x86_64三个架构的独立APK,单个APK体积相比通用APK会降低60%左右,都可以控制在100MB以内。 - 开启安卓端混淆与资源压缩
打开android/app/build.gradle文件,在release构建配置中开启如下配置:
同时在android { buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }proguard-rules.pro中添加Google ML Kit的保留规则,避免功能被混淆失效。 - 裁剪ML Kit依赖
不要引入全量的ML Kit文本识别包,根据你的需求选择最小依赖:如果仅需要识别拉丁文,使用仅支持拉丁文的轻量识别包;如果需要支持中文,在gradle配置中排除不需要的其他语种识别模型,可减少20MB~40MB的占用。 - 清理冗余依赖
执行flutter pub deps查看项目依赖树,移除未使用的第三方包,避免间接引入的冗余资源占用空间。
内容的提问来源于stack exchange,提问作者Mahi
相关产品推荐
相关产品推荐

