简介

Matrix-ApkChecker 作为Matrix系统的一部分,是针对android安装包的分析检测工具,根据一系列设定好的规则检测apk是否存在特定的问题,并输出较为详细的检测结果报告,用于分析排查问题以及版本追踪。

  • 官方文档
  • Matrix Github

使用

运行前准备工作

  1. 从官方地址下载ApkChecker.jar (本次使用matrix-apk-canary-2.0.2.jar
  2. 准备配置文件config.json ,下面是配置文件(与官方文档示例有区别,具体配置根据自己项目需求)
{"--apk":"C:/Users/John/Desktop/debug/AiGuPiao-debug.apk", // 配置成自己绝对路径"--output":"C:/Users/John/Desktop/debug/apk-checker-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":"10","--order":"desc","--suffix":"png, jpg, jpeg, gif, arsc"},{"name":"-countMethod","--group":"package"},{"name":"-checkResProguard"},{"name":"-findNonAlphaPng","--min":"10"},{"name":"-checkMultiLibrary"},{"name":"-uncompressedFile","--suffix":"png, jpg, jpeg, gif, arsc"},{"name":"-countR"},{"name":"-duplicatedFile"},{"name":"-unusedResources","--rTxt":"D:/AiGuPiao1/AiGuPiao/build/intermediates/runtime_symbol_list/debug/R.txt", // 配置成自己绝对路径"--ignoreResources":["R.raw.*","R.style.*","R.attr.*","R.id.*","R.string.ignore_*"]},{"name":"-unusedAssets","--ignoreAssets":["*.so" ]}]
}

特别说明

  • –apk 输入apk文件路径(默认文件名以apk结尾即可)
  • –output 输出结果文件路径(不含后缀,会根据format决定输出文件的后缀)
  • –format 结果文件的输出格式(例如 html、json等)
  • –formatConfig 对结果文件输出格式的一些配置项(json数组格式)
  • –rTxt R.txt文件的路径

官方文档参数很多,这里给出部分参数,具体参考请移步到官方文档

  1. 运行命令


运行成功:

结果文件分析

按文件大小排序列出apk中包含的文件

列出超过一定大小的文件,可按文件后缀过滤,并且按文件大小排序

读取manifest的信息

从AndroidManifest.xml文件中读取apk的全局信息,如packageName、versionCode等。

检查是否经过了资源混淆

检查apk是否经过了资源混淆,推荐使用资源混淆来进一步减小apk的大小 (这里没有经过资源混淆,因为混淆过后,无法找出项目中相关文件)

搜索不含alpha通道的png文件

对于不含alpha通道的png文件,可以转成jpg格式来减少文件的大小

搜索未经压缩的文件类型

某个文件类型的所有文件都没有经过压缩,可以考虑是否需要压缩

搜索冗余的文件

对于两个内容完全相同的文件,应该去冗余

搜索apk中包含的无用资源

apk中未经使用到的资源,应该予以删除

搜索apk中包含的无用assets文件

apk中未经使用的assets文件,应该予以删除

统计apk中包含的R类以及R类中的field count

编译之后,代码中对资源的引用都会优化成int常量,除了R.styleable之外,其他的R类其实都可以删除

统计方法数

统计dex包含的方法数,并支持将输出结果按照类名(class)或者包名(package)来分组

超过指定限制图片


一般对于图片大小超过1M的,可以考虑把png 转成 webP 格式图片, webP格式图片在相同质量情况下,体积更小。

如果能帮助到大家,请点赞!!!

APK瘦身优化检测工具-Matrix ApkChecker 使用相关推荐

  1. Android性能优化(5):APK瘦身优化

    文章目录 1. APK文件结构 2. APK瘦身优化 2.1 优化dex文件大小 2.1.1 Proguard 2.1.2 AndResGuard 2.2 优化资源文件大小 2.2.1 Android ...

  2. android app性能优化_Android性能优化之Apk 瘦身优化

    瘦身 主要是下载转换率提高 头部App都有Lite版本 渠道合作产商要求 APK 分析工具 ApkTool 反编译工具 官网:https://ibotpeaches.github.io/ApkTool ...

  3. Android 性能优化(62)---存检测、卡顿优化、耗电优化、APK瘦身——详解篇

    Android 性能优化,内存检测.卡顿优化.耗电优化.APK瘦身--详解篇 自2008年智能时代开始,Android操作系统一路高歌,10年智能机发展之路,如今 Android 9.0 代号P  都 ...

  4. Android优化系列之apk瘦身

    概述 为什么APK要瘦身.APK越大,在下载安装过程中,他们耗费的流量会越多,安装等待时间也会越长:对于产品本身,意味着下载转化率会越低(因为竞品中,用户有更多机会选择那个体验最好,功能最多,性能最好 ...

  5. Android性能优化系列之apk瘦身

    Android性能优化系列之布局优化 Android性能优化系列之内存优化 为什么APK要瘦身.APK越大,在下载安装过程中,他们耗费的流量会越多,安装等待时间也会越长:对于产品本身,意味着下载转化率 ...

  6. 老司机谈APK瘦身套路-项目优化篇

    老司机谈APK瘦身套路-项目优化篇 在上一篇文章中,老司机带领大家一起学习了图片资源的瘦身套路,收到了很多中学生读者的好评. 想了解的童鞋请点击:blog.csdn.net/mynameishua-  ...

  7. Android性能优化之APK瘦身最全总结

    Android性能优化之APK瘦身最全总结 随着业务复杂度的逐渐增加,代码.资源也在不断的增加,此时你的APP大小也在增加.从用户层面来说,面对动辄几十兆的APP来说在非WIFI情况下还是会犹豫要不要 ...

  8. Android性能优化之APK瘦身详解(瘦身73%)

    image 公司项目在不断的改版迭代中,代码在不断的累加,终于apk包不负重负了,已经到了八十多M了.可能要换种方式表达,到目前为止没有正真的往外推过,一直在内部执行7天讨论需求,5天代码实现的阶段. ...

  9. apk瘦身 提高优化效果

    APK瘦身记,如何实现高达53%的压缩效果 我是怎么思考这件事情的 APK是Android系统安装包的文件格式,关于这个话题其实是一个老生常谈的题目,不论是公司内部,还是外部网络,前人前辈已经总结出很 ...

最新文章

  1. Smooth_L1_Loss函数的计算方式
  2. mysql PREPARE用法_PHP5 mysqli的
  3. Maven and Ant for Hybris
  4. python判断正数和负数教案_正数和负数 教学设计
  5. Navicat Premium 12安装过程和相关资源
  6. 漫步最优化十三——驻点
  7. 静秋姐姐运营课程-笔记
  8. android退出一个含有listview的activity时报java.lang.IllegalA
  9. 从零开始实现 AlphaGo(一)
  10. python九九乘法表代码及循环过程详解
  11. 坚果nuts 加速 官网_quot;如果你不吃坚果,你就是坚果(傻瓜)!quot;
  12. 机工士姆斯塔迪奥(20分)
  13. 深入分析Java I/O的工作机制 (三)网络I/O的工作机制 很详细
  14. Rviz中控制机器人模型运动(arbotix)
  15. pythonmath库round计算_Python tensorflow.math.round()用法及代码示例
  16. 统计案例 | 系列文章合集
  17. 艾永亮:颠覆传统行业,打造超级产品,了解并响应用户需求是关键
  18. X加波浪线、横线、一点、尖尖读法
  19. Linux常用指令(ubuntu)
  20. 利用archetype创建maven脚手架和新项目

热门文章

  1. JS 将对象拆开拼接成 URL
  2. visio2013 如何快速画出所有箭头
  3. 正确认高分子PEG:识MTA mPEG,Myristic-acid PEG,肉豆蔻酸 PEG,PEG改性肉豆蔻酸
  4. [flinkSQL] 开滚动窗口 求不同地区退款率 top-N
  5. 手机必备应用:狐猴浏览器,一站式开启浏览器的所有用法
  6. 用python计算圆周率_用python计算圆周率PI
  7. xr企业级应用在哪里_如何在XR中保持私密
  8. chrome-Firefox-IE浏览器兼容总结
  9. Flutter Provider状态管理-Consumer
  10. php警告注释,php程序(warning)警告