缩减apk体积
2017-06-28 本文已影响43人
淡定小问题
缩减APK体积
图像
- tint (相同的图片,多种不同的颜色,只需要一张)
- shape (扁平风的北京)
- rotate (对称类型的图像)
- .9 图
- 使用矢量图(适合于小图标)
- 使用代码
- 压缩 (pngquant,google推荐pngcrush)
- webP (转换了20个大图,体积缩减大概2M左右)
- 去处metadata
- png的256色
- Reduce Animation Frames
- 复杂大图转换为jpg (png 和 jpg的抉择)
However, it takes a significant amount of time for the system to render each VectorDrawable object, and larger images take even longer to appear on the screen. Therefore, consider using these vector graphics only when displaying small images.
代码
- 使用更小的针对移动设备的代码库
- 同样的机制保留一套
资源
- 配置文件压缩(json,xml等)
- 覆盖第三方资源
依赖项 → 主资源 → 构建风味 → 构建类型 - 移除不使用的资源
- resConfig "en", "zh"
proguard
TODO
研究一下严格模式
其它手段
- 微信的 AndRedGuard 资源文件混淆
- 蘑菇街的 TinyR 内连R类
- DexGuard
- Redex
- 更严格的Proguard
- 尝试不同的压缩脚本 pngquant,pngout,pngcrush
- 禁止掉appt的png压缩的效果
- so库的压缩
附录
图片格式的抉择
参考资料
- https://developer.android.google.cn/studio/build/shrink-code.html
- https://developer.android.google.cn/topic/performance/reduce-apk-size.html#reduce-code
- https://github.com/meili/ThinRPlugin/blob/master/README.zh-cn.md
- http://www.jayfeng.com/2015/12/29/APK瘦身实践/
- https://developer.android.google.cn/topic/performance/network-xfer.html
- https://www.qcloud.com/community/article/164816001481011789?fromSource=gwzcw.59530.59530.59530
- https://www.qcloud.com/community/article/700207001486435748?fromSource=gwzcw.59531.59531.59531