SuperAPI AI 工具集

flutter-reducing-app-size

编程与开发

查看项目

更新于 10-16 08:47

技能介绍

用途:针对 Flutter 应用,测量并优化发布包体积,适用于压缩下载体积或满足应用商店包体约束的场景。

核心概念:测量体积必须使用 release/profile 构建,不能使用含 VM 开销、无 AOT 与 tree-shaking 的 debug 构建;上传包(APK、AAB、IPA)大小不等于用户下载大小,应用商店会按设备过滤原生库架构与资源密度;Dart AOT 编译器在 profile 与 release 模式自动剔除未使用代码;--analyze-size 会生成 -code-size-analysis_.json,记录包、库、类、函数的字节大小。

主要工作流:

  1. 生成体积分析文件:确定目标平台后执行 flutter build apk --analyze-size、flutter build appbundle --analyze-size、flutter build ios --analyze-size 或 flutter build [windows|macos|linux] --analyze-size,文件位于 build/ 目录。iOS 的 .app 仅适合相对内容大小比较,估算商店下载大小需另走流程。
  2. 在 DevTools 分析:运行 dart devtools,选择 Open app size tool,上传 JSON,通过 treemap 或树视图定位占比大的包与资源;删除或替换后重新生成并用 Diff 标签对比新旧构建。
  3. 估算 iOS 下载大小:在 pubspec.yaml 配置版本与构建号,运行 flutter build ipa --export-method development,在 Xcode 打开 .xcarchive,Distribute App 选 Development,App Thinning 选 All compatible device variants,勾选 Strip Swift symbols,签名导出后查看 App Thinning Size Report.txt 中各设备压缩与未压缩体积。
  4. 缩减策略:拆分调试信息(如 flutter build apk --obfuscate --split-debug-info=build/app/outputs/symbols);删除 pubspec.yaml 与 assets/ 中未引用的图片、字体、文件;审查第三方包是否引入仅少量使用的大体积资源,必要时更换或自实现;打包前用 pngquant、imageoptim 或 WebP 压缩图片。

限制:资料未提供该技能的安装方式、适用 Flutter 版本或收费信息。