突发,android apk瘦身终极指南!

一,apk组成

dex,res,assets,lib,META-INFO等

二,android studio

1,Analyze APK:android studio集成的apk结构浏览工具,可以清晰的看出apk中具体文件大小
2,Analyze
code cleanup:进行静态代码检查,删掉无用的代码

inspect Code:删除不必要的资源ID

3,Refactor:Remove Unused Resource

三,Size统计

1,apkcal:开源的统计apk文件中class,method,field,string数量的工具
2,Dxcount Gradle Plugin:
/gradlw app:dependencies
针对的是库大小的统计
3,ClassShark

四,图片专题

1,图片压缩图片压缩:TinyPNG,ImageOptim
2,图片格式转换:webP

五,资源混淆

android-proguard-snippets

六,资源优化
  • 1,AndResGuard:
    a,微信团队成员开源的工具,通过资源混淆
    缩短resource.arsc内的资源路径,资源类名以达到瘦身的目的
    b,资源进行混淆之后,我们再使用 Resources.getIdentifier(String name, String defType, String defPackage) 或者 Resources.getResourceName(int resid) 的时候就会失效,如果有这样的需求,记得配置白名单
    c,AndResGuard的7zip压缩不兼容v2签名
  • 2,redex:
    Facebook提供的针对dex字节码优化开源工具包,还可以提高字节码的加载性能,提升APP速度
七,资源压缩

1,字体压缩:fontZip,开源的字体压缩工具
1,AndroidUn7zip:Android解压库

八,具体压缩方法
  • 使用minifyEnable,进行Proguard混淆
  • 删除无用库,或者选择更小的库,不需要发布到线上的第三库,比如leakcanary,stetho等,只需要在debug阶段需要的代码,我们可以直接给compile设置buildType, 使用debugCompile
  • 删除无用的代码
  • 开启shrinkResouces,不打包未使用的资源
  • 使用Lint工具扫描去除无用的资源
  • 使用abiFilters按需配置CPU架构,移除不需要兼容的so文件,了解了几个线上的大厂的APK,几乎都已经去掉了x86的支持,所以我们还有什么犹豫的呢?x86下面的so大小大概在500KB左右,我们只需要去掉在外发的包中的x86即可
  • 删除无用资源,图片
  • 平时写代码不要写重复代码
  • 只使用一套图片资源
如果觉得我的文章不错,欢迎大家随手点赞,转发。
突发,android apk瘦身终极指南!_第1张图片
qrcode.jpg

你可能感兴趣的:(突发,android apk瘦身终极指南!)