APK 瘦身实战记录,从 80MB 压到 35MB

APK 瘦身实战记录,从 80MB 压到 35MB

APK 瘦身实战记录,从 80MB 压到 35MB


APK 瘦身实战记录,从 80MB 压到 35MB


去年秋天的时候,我们项目的 APK 在某次大版本迭代后突破了 80MB。虽然 Google Play 的 150MB 上限还远,但国内几个主要渠道的分发后台已经开始弹警告,更直接的是后台数据里显示,包体每涨 10MB,低端机用户的下载完成率就会掉一截。80MB 对于一款日活百万级别的工具类应用来说,已经是个需要立即处理的技术债,而不是"等有空再优化"的 backlog 项。我花了一周左右集中攻坚,最终把包体压到了 35MB 左右。整个过程没有用什么黑科技,基本都是对构建链和资源文件的精细化处理,但中间踩的坑远比预想的多。


先看一眼:APK Analyzer 里的空间分布


动手之前必须做定量分析,否则优化就是盲人摸象。Android Studio 自带的 APK Analyzer 是我用的第一个工具,路径在 Build > Analyze APK。把那个 80MB 的包拖进去,目录结构一目了然。结果和大多数 Android 项目差不多:lib/ 目录占了接近 35MB,res/ 目录占了大概 24MB,classes.dex 有 12MB,assets/ 里塞了快 8MB,剩下的零星分布在 META-INF 和 Kotlin metadata 里。


lib/ 目录的问题最明显。很多第三方 SDK 的 aar 包里习惯性地塞满四个 ABI:armeabi-v7a、arm64-v8a、

kotlinx.serialization 的稳定性,生产环境敢用吗 2026-07-31
Android 的 Nearby Share 升级,跨设备文件传输体验 2026-07-31

评论区