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

如何通过flutter build apk命令减小Flutter发布版APK体积

缩小Flutter发布版APK体积的实用方法
  • 启用代码混淆与资源压缩
    打开android/app/build.gradle文件,在buildTypes的release代码块中添加以下配置:

    minifyEnabled true
    shrinkResources true
    proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    

    这会自动移除项目中未被使用的代码和资源,同时混淆代码结构,有效降低APK体积。

  • 构建ABI拆分APK
    默认Flutter会打包支持所有CPU架构的通用APK,你可以拆分出对应不同架构的独立安装包,用户下载时只会获取适配自身设备的版本。在android/app/build.gradle的android代码块中添加:

    splits {
        abi {
            enable true
            reset()
            include 'armeabi-v7a', 'arm64-v8a', 'x86_64'
            universalApk false
        }
    }
    

    构建完成后,会在build/app/outputs/apk/release/目录下生成对应各架构的独立APK文件。

  • 优化资源文件

    • 图片压缩:使用图片压缩工具处理PNG/JPG资源,优先采用WebP格式(同等画质下体积更小);
    • 清理冗余资源:手动删除项目中未被引用的图片、字体、字符串文件,配合shrinkResources true自动清理未使用资源;
    • 字体按需引入:避免引入完整字体包,只打包项目实际用到的字符子集。
  • 精简依赖库

    • 检查pubspec.yaml中的依赖项,移除未使用的第三方包;优先选择轻量级替代库,比如用flutter_svg替代大量图标图片资源;
    • 避免集成包含冗余功能的SDK,只保留核心功能模块。
  • 启用R8代码优化
    确保gradle.properties文件中开启R8压缩:

    android.enableR8=true
    

    R8相比传统ProGuard,能更高效地完成代码优化与压缩,进一步缩小APK体积。

  • 拆分动态功能模块
    将非核心功能(如帮助页面、次要业务模块)拆分为动态特性模块,用户可按需下载,大幅降低初始APK的体积。需要配合Android项目的动态模块配置与Flutter模块化开发实现。

内容的提问来源于stack exchange,提问作者Nehal Babu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:23:10