IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> APK瘦身优化检测工具-Matrix ApkChecker 使用 -> 正文阅读

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

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

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 10:01:16  更:2021-11-27 10:02:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:01:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码