随着业务量的增多,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文件,可以查看资源引用的情况,通过检测清单,可以去项目中删除无用的资源。