如何减小Expo构建的安卓APK体积,能否压缩至10MB以内?
Expo 安卓安装包体积压缩方案
7~8个页面的轻量Expo应用默认构建包体积过大,核心原因是旧版构建工具的冗余打包逻辑,按以下步骤操作可将安装包体积压缩至10MB以内:
1. 替换旧构建工具为EAS Build
旧版expo build:android命令默认打包全量Expo SDK依赖、全CPU架构二进制文件,即便你没有用到对应能力也会被打包进安装包。改用EAS Build后会自动执行依赖树裁剪,仅打包项目实际用到的SDK模块,仅这一步就能把初始包体积砍掉50%以上。
2. 拆分CPU架构构建
在EAS构建配置中开启ABI拆分,不需要同时兼容所有CPU架构:
- 面向国内市场仅保留
armeabi-v7a、arm64-v8a两个架构,覆盖99%以上安卓设备 - 单个架构的APK安装包体积会比全架构包缩小60%以上
3. 静态资源压缩优化
- 所有图片资源替换为WebP格式,同等清晰度下WebP比PNG/JPG体积小60%以上
- 移除未使用的字体、音频、图标等静态资源,如果用到图标库仅引入实际使用的单个图标,不要引入全量图标包
- 不要在项目中存放冗余分辨率的资源,按需适配即可
4. 开启代码与资源混淆
- 在
app.json的安卓配置中添加"enableProguardInReleaseBuilds": true,开启ProGuard混淆,压缩JS Bundle与原生代码体积,同时移除无用类与方法 - 在安卓Gradle配置中开启
shrinkResources true,自动删除未被引用的原生资源文件
5. 裁剪依赖项
- 排查
package.json,移除所有未实际使用的Expo SDK模块与第三方依赖,比如未用到定位就删除expo-location、未用到推送就删除expo-notifications - 优先选择轻量第三方库,比如日期处理用轻量的date-fns替代全量moment库
如果需要更极致的裁剪,可以执行
expo prebuild弹出原生项目,手动移除Expo默认预装的无关原生模块,可进一步缩小包体积。
内容的提问来源于stack exchange,提问作者Umesh Itukade
相关产品推荐
相关产品推荐

