You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Flutter计数器应用的Android包体积从16.5MB降至6MB以下?

Flutter包体积优化方案(降至6MB以下)

一、构建发布版安装包

Debug版包含大量调试信息,体积天然偏大,必须构建发布版:

  • Flutter命令行执行:
    flutter build apk --release
    # 推荐构建App Bundle,Google Play会针对设备优化分发
    flutter build appbundle --release
    
  • Android Studio操作:点击顶部菜单栏Build > Flutter > Build APK (Release)或Build App Bundle (Release)

二、启用R8代码压缩与混淆

Flutter发布版默认启用R8,但需确认配置正确:

  1. 打开android/app/build.gradle,确保buildTypes.release区块有以下配置:
    minifyEnabled true
    shrinkResources true
    proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    
  2. 若需自定义混淆规则,编辑android/app/proguard-rules.pro,保留Flutter核心类规则(默认配置已包含):
    -keep class io.flutter.app.** { *; }
    -keep class io.flutter.plugin.**  { *; }
    -keep class io.flutter.util.**  { *; }
    -keep class io.flutter.view.**  { *; }
    -keep class io.flutter.**  { *; }
    -keep class io.flutter.plugins.**  { *; }
    

三、过滤不必要的ABI架构

Flutter默认打包多架构ABI,可只保留覆盖绝大多数设备的核心架构:
在android/app/build.gradle的android.defaultConfig中添加:

ndk {
    abiFilters 'armeabi-v7a', 'arm64-v8a'
}

四、压缩资源文件

  • 移除项目中未使用的图片、字体等资源;
  • 将图片转为WebP格式(Flutter原生支持),或用工具压缩PNG/JPG体积;
  • 确保android/app/build.gradle的buildTypes.release中已启用资源压缩:
    shrinkResources true
    

五、清理冗余依赖

检查pubspec.yaml移除未使用的依赖包,执行命令清理缓存:

flutter pub remove <冗余依赖包名>
flutter pub clean
flutter pub get

六、用体积分析工具定位问题

执行命令生成包体积分析报告,精准定位大文件:

flutter build apk --release --analyze-size

报告里会清晰展示各模块的体积占比,方便针对性优化。


内容的提问来源于stack exchange,提问作者Amar Saroj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 12:50:08