AndResGuard
1.1、AndResGuard简介
是什么 ?:a tool for reducing the size of your Android APK files by shortening the file path and name of resources, repacking the APK with 7zip.
开发语言:Java
开发团队:腾讯 - 微信团队
源码仓库:https://github.com/shwenzhang/AndResGuard
1.2、通过包管理器安装AndResGuard-cli
操作系统包管理器安装命令
macOSHomeBrewbrew tap leleliu008/fpliu
brew install andresguard-cli
GNU/LinuxHomeBrewbrew tap leleliu008/fpliu
brew install andresguard-cli
1.3、通过编译源码安装AndResGuard-cli

step1、安装依赖

安装时git
运行时JRE | JDK

step2、使用git下载AndResGuard的源代码

git clone https://github.com/shwenzhang/AndResGuard.git

step3、进入AndResGuard目录

cd AndResGuard

step4、编译

./gradlew build

:生成的文件为AndResGuard-cli/build/libs/AndResGuard-cli-x.y.z.jar

step4、编写一个名字为andresguardPOSIX sh脚本,内容如下

#!/bin/sh

P=$(cd $(dirname $0);pwd)
java -jar "${P}/AndResGuard-cli/build/libs/AndResGuard-cli-1.2.16.jar" $@

step5、给andresguard赋予可执行权限

chmod a+x andresguard

step6、将andresguard所在的目录加入PATH环境变量中

export PATH=$PWD:$PATH
1.4、andresguard命令

andresguard命令的基本使用格式如下:

andresguard input.apk [option]...

input.apk是输入文件路径。

option说明:

option必需?说明
-config必需指定配置文件的路径。配置文件的格式请参考
-out可选指定输出目录,必须是目录,不能是文件。注意:该目录如果不存在,会自动创建。如果该目录已经存在,会删除掉该目录里的所有文件,所以,一定要小心。
-signatureType可选指定签名的类型,取值为v1v2
-signature可选指定签名的信息,取值格式为storeFilePath storePassword keyPassword keyAlias
-7zip可选指定p7zip的路径。如果不指定,将会从PATH环境变量中查找。重新打包的使用使用此命令,这样可以大大减小APK文件的大小。
-zipalign可选指定zipalign的路径。 如果不指定,将会从PATH环境变量中查找。 重新打包完成后必须要进行此项优化。
-finalApkPath可选指定最终生成的apk的路径。 如果设置了该值、且是相对路径,其相对的是当前路径而不是-out参数指定的目录。

示例:

andresguard \
    input.apk \
    -config config.xml \
    -out buildDir \
    -finalApkPath final.apk \
    -7zip /usr/local/bin/7za \
    -zipalign /usr/local/share/android-sdk/build-tools/28.0.3/zipalign \
    -signatureType v2 \
    -signature release.keystore testres testres testres
1.5、AndResGuard gradle plugin

官网有详细说明,参照即可。