App 瘦身优化

App 瘦身优化

Apk 组成

  • 代码相关:classes.dex
  • 资源相关:res、asserts、resources.arsc
  • So 相关:lib

Apk 分析工具

瘦身方案

  • 代码混淆

  • 三方库统一,减少相同功能的库

  • 移除无用代码

    • 通过 AOP 的方式统计使用情况,可以切onCreate方法和构造方法来确定那个类没有被调用过了
  • 移除冗余资源

    • 右键 -> Refactory -> Remove Unused Resource
  • 图片压缩【可以有效的减少资源大小】

  • 资源混淆

  • 图片资源只保留一份

  • 资源在线化,将一部分资源放在远端,结合预加载技术手段来减少apk自身的大小

  • So 移除,无需将所有平台的 So 都编译出来并使用

  • abiFilters:设置支持的 So 架构,一般选择 armeabi 【该架构为通用性架构,所有平台都可以使用,但是效率并不如专用架构高】

  • 【更优方案】对于性能敏感的模块,可以将对应架构的so库都放到 armeabi 目录,根据 CPU 类型加载对应架构的 So

  • 其它:

    • So 动态下载:将部分可延迟加载的 So 库放到云端,在需要使用时进行动态下发
    • 插件化