使用google_ml_kit后APK体积增至138MB,求优化方案或替代包
解决Google ML Kit导致APK体积过大的问题及替代包推荐
一、减小Google ML Kit体积的优化方案
- 仅引入所需子模块:不要依赖完整的
google_ml_kit包,只引入身份证识别需要的文本识别模块google_mlkit_text_recognition。在pubspec.yaml中替换依赖:dependencies: google_mlkit_text_recognition: ^0.10.0 # 替换为最新版本 - 使用Android App Bundle(AAB)发布:AAB会让Google Play为不同设备分发针对性优化的APK,自动剥离不必要的架构和资源,用户实际下载的体积会远小于通用APK。
- 过滤ABI架构:在
android/app/build.gradle中配置仅保留常用的ARM架构,移除x86等小众架构:android { defaultConfig { ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } } } - 启用R8/ProGuard混淆:确保开启代码混淆并添加ML Kit的规则到
proguard-rules.pro,移除未使用的代码:-keep class com.google.mlkit.** { *; } -dontwarn com.google.mlkit.**
二、轻量替代包推荐
- flutter_ocr:基于Tesseract OCR,支持离线文本识别,可按需下载对应语言的训练数据(适配身份证的语言),初始APK体积较小,灵活性高。
- mobile_scanner + tesseract_ocr:用
mobile_scanner完成身份证图像捕获,搭配轻量的tesseract_ocr实现文本提取,拆分功能后体积更易控制。 - 继续使用cnic_scanner:若之前使用该包体积更优,可排查当前APK体积过大是否由其他依赖、冗余资源或配置问题导致,而非
cnic_scanner本身的问题。
额外排查建议
检查项目中是否存在大体积资源文件(如高清图片、音频)、未移除的测试代码或冗余依赖,这些都可能导致APK体积异常增大。
内容的提问来源于stack exchange,提问作者khalid shahzad
相关产品推荐
相关产品推荐

