栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

简介

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/601695.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号