APK瘦身方案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/geekerhw/article/details/51794242

去除&减少无用资源,文件,库

  • buildTypes中开启minifyEnabled = trueshrinkResources = true去除无用资源和代码
  • 去除没有用到的库和相应的so文件
  • 在满足需求的情况下,将大型,重量级的库替换为小型轻量级的库,并且可以根据自己的需求进行源码局部化定制
  • defaultConfig{resConfigs "zh"}删除没有用到的语言资源

引用的图片资源优化

  • 在差不多的展现质量上,耗费空间大小由小到大为:webp < jpg < png,所以可以利用webp进行图片层级上的优化

引用的音频资源优化

  • 可以使用opus代替一般的音频资源

Provided关键字

  • 不要重复利用compile关键字,使用Provided

Proguard深度混淆代码

  • 优点:
    • 防止被反编译
    • 缩短变量名和函数名,jar体积减少25%左右
  • 缺点
    • 混淆时使用反射会造成麻烦

微信资源打包

  • 混淆资源ID的长度,利用7z进行深度压缩
    如res/drawable/icon.png -> r/d/i

全版本兼容的瘦身方案

  • 对白色和透明图片有效
  • 需要支持多个主题时,不需要为同一个图标准备多个drawable,减少了apk空间

插件化技术

  • 大大减少APK的大小,可以做到按需加载,动态配置,非常灵活,插件化技术较为复杂,之后有时间会开专题详细讲解这个技术
阅读更多

没有更多推荐了,返回首页