Skip to content

This CLI tool is used to compare the difference in APK file size between different versions.

Notifications You must be signed in to change notification settings

Petterpx/apk-size-diff-cli

Repository files navigation

APK Size Diff CLI

APK Size Diff CLI 是一个用于比较两个APK文件大小差异的cli,该工具可用于帮助你了解应用程序大小的变化情况,从而实现apk体积监控。

简单用法

java -jar apk_size_diff_cli -b test/base.apk -c test/current.apk -d test/result/ -tss 102410

jar包下载地址请前往最新的release版本下载.

效果示例:

image-20230428161644957

最终会在给定的输出路径,生成一个名为 apk_size_diff.md 的文件。

Tips

当然你也可以使用 exec 可执行文件,从而免除 java -jar 命令。

前往最新的 release 版本,下载 apk-size-diff-cli.zip 解压即可,路径 bin/apk-size-diff-cli

使用方式:

apk_size_diff_cli -b test/base.apk -c test/current.apk -d test/result/ -tss 102410

配置选项

默认提供了一些配置选项,从而便于更好的使用。你可以使用 --help 选项查看所有选项的列表和说明。

Options:
  -h, --help    
  -b, --baseline_apk PATH  Baseline Apk Path
  -c, --current_apk PATH   Current Apk Path
  -d, --diff_output PATH   Diff Output Path
  -t, --threshold TEXT     Apk threshold. Input example: apk:102400
  -ts, --thresholds TEXT   Apk threshold. Input example: apk:102400,res:102400
  -tss, --thresholdsBase INT  The basic threshold will be applied to all sub-levels.      

设置阈值

可以通过命令传参的方式,设置一系列阈值,从而实现在CI中断流程。

// 方式1,多参数
java ... -t apk:102400 -t res:102400 

// 方式2,以 xx:number,xx2:number 这种方式
java ... -ts apk:102400,res:102400

// 方式3,这种方式将默认所有分类都是同一种
java ... -tss 102400

- 优先级
方式2>方式1>方式3,后者会覆盖前者(如果该类型存在)

支持的阈值有:

  • apk
  • dex
  • arsc
  • manifest
  • lib
  • res
  • assets
  • META_INF
  • other

示例如下:

java -jar apk_size_diff_cli -b test/base.apk -c test/current.apk -d test/result/ -t apk:102400

CI 联动

当然更好的使用场景是,你可以在Github Action中使用该Cli,从而实现apk流水线体积监控。

示例如下:

...
- name: Run Diff apk size
  continue-on-error: true
  run: |
    java -jar check/apk-size-diff-cli.jar -b $APK_PATH/android-base.apk -c $APK_PATH/android-new.apk -d $APK_DIFF_OUTPUT_PATH -tss $KB500

- uses: marocchino/sticky-pull-request-comment@v2.6.2
  with:
    recreate: true
    path: ${{ env.APK_DIFF_OUTPUT_PATH }}/apk_size_diff.md

image-20230428162303488

需要更多功能

目前功能比较单一,如果需要更多支持,欢迎提 issues。

About

This CLI tool is used to compare the difference in APK file size between different versions.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages