安卓瘦身之ApkChecker

随着业务量的增多,APP体积会越来越大,期间会伴随着静态图的引入,同时APP中可能会存在大量的未引用的图片,或者是多张相同的图片但是命名不同,因此apkchecker很好的检测资源的引用情况,直接输出检测结果。

一、资源的准备

  • ApkChecker.jar
  • 待检测的.apk文件
  • R.txt

关于R.txt文件的获取,在Android Studio中,进行Rebuild后,切换到project视图下,如果你的gradle版本是4.0.0以下时在build/intermediates/symbols/debug/R.txt,否则的话在build/intermediates/runtime_symbol_list/debug/R.txt查找

二、配置文件
创建一个apk_checker_config.json文件,内容如下:

{
  "--input":"/Users/用户名/Desktop/apkchecker", //要分析的apk所在的文件夹,注意是apk所在的文件夹的路径
  "--format":"mm.html,mm.json",
  "options": [
    {
      "name":"-manifest"
    },
    {
      "name":"-findNonAlphaPng",
      "--min":"10"
    },
    {
      "name":"-unusedResources",
      "--rTxt":"/Users/用户名/Desktop/apkchecker/R.txt", //android项目build产生的R文件
      "--ignoreResources"
      :["R.raw.*",
        "R.style.*",
        "R.styleable.*",
        "R.attr.*",
        "R.id.*",
        "R.string.ignore_*"
      ]
    },
    {
      "name":"-duplicatedFile"
    },
    {
      "name":"-unusedAssets",
      "--ignoreAssets":["*.so" ]
    }
  ]
}

三、命令行

java -jar /Users/用户名/Desktop/apkchecker/ApkChecker.jar --config /Users/用户名/Desktop/apkchecker/apk_checker_config.json

终端运行之后,会在检测apk的同级目录下生成html、json文件,浏览器直接打开html文件,可以查看资源引用的情况,通过检测清单,可以去项目中删除无用的资源。

上一篇:git lfs


下一篇:bugly热更新签名问题