APK 瘦身

为什么要减小 APK 体积

  1. 下载 APK 需要流量,流量需要花钱;
  2. 安装 APK 需要考虑手机剩余空间

APK 大小

  1. Raw APK size :生成 APK 的大小
  2. Download APK size :下载 APK 的大小
  3. Install APK size :安装到手机上需要的大小
  4. Update APK size :更新 APK 的大小

APK 里面有些什么

APK 本质是 Zip 压缩包。解压后分为:

  • APP code
  1. 字节码(classes.dex)
  2. 原生代码 (libs//*.so)
  • Resources
  1. res/(drawable、PNG、JPEG、Layout 等)
  2. resource.arc (styles、ids、strings)-- 没有压缩
  • 其他
  1. assets (binary stream)
  2. META-INF (签名)
  3. AndroidManifest

APK 瘦身的方法

  • 对代码使用 Proguard
  • 去掉用不到的资源
  • 对 res 文件使用 Zopfli、WebP、Vectors
  • 对 resource 使用 ResConfig 去掉不用的语言包,检测 resource 中的资源大小,根据不同的设备生产不同的 APK

APK 瘦身的工具

  • #smallerAPK on Medium(谷歌开发者在 Medium 上的文章)
  • ArcBlamer
  • APK patch size estimator
  • ClassyShark

Google I/O 2016 视频

Lean and Fast: Putting Your App on a Diet

你可能感兴趣的:(APK 瘦身)