MAUI APK体积过大主因是冗余架构、未压缩图片、AOT编译及全量资源;通过仅保留arm64、转WebP、禁用AOT、启用资源收缩、精简语言字体,157MB可降至41MB以下。

MAUI打包的APK体积偏大,核心原因在于默认包含全部CPU架构、未压缩资源、冗余代码和未精简配置。针对性优化后,157MB的demo可压至41MB以下,降幅超70%。
只保留必要CPU架构
默认打包会同时嵌入arm32、arm64、x86、x64四套原生库,但当前主流安卓设备基本只用arm64。精简后体积直接减少约一半:
- 在项目属性 → Android → “目标ABI”中,仅勾选 arm64-v8a
- 勾选“每个所选ABI生成一个包(.apk)”——这样不会生成单个臃肿包,而是为arm64单独出一个APK
- 若需上架Google Play,后续可用Android App Bundle(.aab)替代.apk,平台会自动分发适配机型的最小包
图像资源全面转WebP
图片通常是APK里最占空间的部分。PNG/JPG转WebP可在视觉无损前提下平均压缩60%:
- 将 Platforms/Android/Resources/drawable 下所有图片批量转为WebP格式(推荐使用ImageOptim或命令行cwebp)
- 确保drawable-xxxhdpi等密度文件夹中的图也一并转换,避免高密度图被忽略
- 不建议保留多套分辨率图片;如用户设备集中在xxhdpi以上,可删掉mdpi、hdpi等低密度文件夹
关闭AOT编译 + 启用资源压缩
AOT(提前编译)虽提升启动速度,但会让APK增大数MB且不可逆。发布调试版或对性能要求不高的场景可禁用:
- 在 csproj 文件的
中添加:true partial false - 启用资源收缩(shrinkResources):在Android项目属性中开启“移除未使用的资源”,或手动在
AndroidManifest.xml对应位置确认权限与组件引用完整,避免误删导致崩溃 - 注意:启用资源收缩前务必做全路径功能测试,尤其涉及动态加载资源的逻辑
精简语言与字体资源
MAUI默认打包支持全部语言字符串和完整字体集,实际项目往往只需中英文:










