首先贴下官方地址:https://github.com/Tencent/matrix/wiki/Matrix-Android-ApkChecker 个人觉的TX的开源项目写的很马虎!可能是实现的很完美了再反过来写的吧,摸索了一天时间才理解怎么玩
APKChecker介绍:
ApkChecker 作为Matrix系统的一部分,是针对android安装包的分析检测工具,根据一系列设定好的规则检测apk是否存在特定的问题,并输出较为详细的检测结果报告
使用
1.首先你需要下载他的jar包,我下载的是0.5.1版本的,官方有提供,暂时没找到路径,后面找到了贴上来;
2.在你的命令行输入java,看下是否配置java环境变量.如果没有,自己处理吧.然后找个地方创建一个 apk_config.json 的文件,不推荐使用官方的使用命令行配置的方式,很容易出错,少了一些属性也不行;我的json文件如下:
其中 --apk , -- output ,--rTxt包括清单文件需要替换你自己的;
{
"--apk": "/Users/zhouhao287/3D_6.2.0/app/build/outputs/apk/flavors_prd/release/app-flavors_prd-release.apk",
"--mappingTxt": "",
"--output": "/Users/zhouhao287/Desktop/result",
"--format": "mm.html,mm.json",
"--formatConfig": [{
"name": "-countMethod",
"group": [{
"name": "Android System",
"package": "android"
},
{
"name": "java system",
"package": "java"
},
{
"name": "com.tencent.test.$",
"package": "com.tencent.test.$"
}
]
}],
"options": [{
"name": "-manifest"
},
{
"name": "-fileSize",
"--min": "5",
"--order": "desc",
"--suffix": "png, jpg, jpeg, gif, arsc"
},
{
"name": "-countMethod",
"--group": "package"
},
{
"name": "-checkResProguard"
},
{
"name": "-findNonAlphaPng",
"--min": "5"
},
{
"name": "-checkMultiLibrary"
},
{
"name": "-uncompressedFile",
"--suffix": "png, jpg, jpeg, gif, arsc"
},
{
"name": "-countR"
},
{
"name": "-duplicatedFile"
},
{
"name": "-unusedResources",
"--rTxt": "/Users/zhouhao287/3D_6.2.0/app/build/intermediates/symbols/flavors_prd/release/R.txt",
"--ignoreResources": ["R.raw.*",
"R.style.*",
"R.attr.*",
"R.id.*",
"R.string.ignore_*"
]
},
{
"name": "-unusedAssets",
"--ignoreAssets": ["*.so"]
}
]
}
注意: 输出不要直接配路径,我最开始就是想输出在桌面,结果没效果,摸索半天,在网上找了很久才找到一点点线索,然后在自己电脑上使用最终摸索出,以我上面json的输出位置,就在桌面显示出来
3.执行命令
java -jar /Users/zhouhao287/Desktop/apm/matrix-apk-canary-0.5.1.jar --config /Users/zhouhao287/Desktop/apm/apk_config.json
结果分析
在桌面找到生成的文件如下:
文件解析
结果中可以看到示例apk的相关全局信息如下图所示, so 库的大小和AS自带分析是一样的!
然后下面还有从清单文件中获取到版本号等相关信息 ,是否混淆等属性都有
里面包括一些异常大小的资源文件,比如我们项目中的GIF图片很多都是500k左右,然后我自己在网上找了下免费压缩的效果看上去很不错,大小为12K,对你没看错,压缩后大小12K 明白什么了吗!!!