美文网首页Android 进击
微信开源工具AndResGuard

微信开源工具AndResGuard

作者: 小程序猿一枚 | 来源:发表于2022-04-20 18:18 被阅读0次

1、简介

AndResGuard是一个帮助你缩小APK大小的工具,他的原理类似Java
Proguard,但是只针对资源。他会将原本冗长的资源路径变短,例如将res/drawable/wechat变为r/d/a。

AndResGuard不涉及编译过程,只需输入一个apk(无论签名与否,debug版,release版均可,在处理过程中会直接将原签名删除),可得到一个实现资源混淆后的apk(若在配置文件中输入签名信息,可自动重签名并对齐,得到可直接发布的apk)以及对应资源ID的mapping文件。

可以减小apk包体大小。

开源地址 https://github.com/shwenzhang/AndResGuard

2、接入

a、在项目更目录下build.gradle文件中引入

classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.20'
buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.20'
    }
}

b、然后在app目录下新建and-res-guard.gradle文件,在build.gradle下配置如下

apply from:'and-res-guard.gradle'

c、完成以上配置,基本上已配置完毕

and-res-guard.gradle文件内容如下

apply plugin: 'AndResGuard'

andResGuard {

// mappingFile = file("./resource_mapping.txt")
mappingFile = null
use7zip = true
useSign = true
// 打开这个开关,会keep住所有资源的原始路径,只混淆资源的名字
keepRoot = false
// 设置这个值,会把arsc name列混淆成相同的名字,减少string常量池的大小
fixedResName = "arg"
// 打开这个开关会合并所有哈希值相同的资源,但请不要过度依赖这个功能去除去冗余资源
mergeDuplicatedRes = true
compressFilePattern = [
"*.png",
"*.jpg",
"*.jpeg",
"*.gif",
"resources.arsc"
]
//添加白名单,保留不被混淆的资源文件
whiteList = [
//app
"R.drawable.ic_launcher",
"R.drawable.ic_launcher_*",
//google-services
"R.string.google_app_id",
"R.string.gcm_defaultSenderId",
"R.string.default_web_client_id",
"R.string.ga_trackingId",
"R.string.firebase_database_url",
"R.string.google_api_key",
"R.string.google_crash_reporting_api_key",
]

sevenzip {
artifact = 'com.tencent.mm:SevenZip:1.2.10'
//path = "/usr/local/bin/7za"
}
}

3、注意事项

所有使用getIdentifier访问的资源都需要加入白名单。
友盟、极光、sharesdk、个推等第三方sdk资源文件需要加入白名单。
glide加载资源文图片需要加入白名单或者处理下
遍历查询所有通过getIdentifier访问的资源,然后统统加入白名单

4、打包apk

可使用命令 ./gradlew resguard[BuildType | Flavor] 或者直接执行下列task任务

image.png

5、apk包

我们可得到以下output路径得到以下7个有用的文件说明如下:

image.png

6、参考地址

开源地址https://github.com/shwenzhang/AndResGuard

AndResGuard和walle多渠道打包

https://blog.csdn.net/cto_1649900265/article/details/107456522

https://blog.csdn.net/mylike_45/article/details/124303785

相关文章

网友评论

    本文标题:微信开源工具AndResGuard

    本文链接:https://www.haomeiwen.com/subject/csovertx.html