是什么 ? | : | 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 |
操作系统 | 包管理器 | 安装命令 |
---|---|---|
macOS | HomeBrew | brew tap leleliu008/fpliu |
GNU/Linux | HomeBrew | brew tap leleliu008/fpliu |
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、编写一个名字为andresguard
的POSIX 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
andresguard
命令的基本使用格式如下:
andresguard input.apk [option]...
input.apk
是输入文件路径。
option
说明:
option | 必需? | 说明 |
---|---|---|
-config | 必需 | 指定配置文件的路径。配置文件的格式请参考 |
-out | 可选 | 指定输出目录,必须是目录,不能是文件。注意:该目录如果不存在,会自动创建。如果该目录已经存在,会删除掉该目录里的所有文件,所以,一定要小心。 |
-signatureType | 可选 | 指定签名的类型,取值为v1 和v2 |
-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
官网有详细说明,参照即可。