APK瘦身优化检测工具-Matrix ApkChecker 使用

简介

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

使用

运行前准备工作

  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中包含的文件

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格式图片在相同质量情况下,体积更小。

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值