aabresguard是AAB格式文件的资源混淆与优化工具
AabResGuard是一款由字节跳动抖音Android团队开发的专门针对Android App Bundle(AAB)格式文件的资源混淆与优化工具。该工具通过资源混淆、去重和过滤等技术手段,能够有效减小AAB文件体积,提升应用分发效率。
官网:https://gitcode.com/gh_mirrors/aa/aabresguard/
技术实现原理
AabResGuard基于Google的Bundletool工具链开发,其工作流程主要分为以下几个阶段:
解析阶段:解压AAB文件,分析其中的资源结构
处理阶段:
应用混淆规则对资源进行重命名
执行重复资源检测与合并
根据配置过滤不需要的文件和字符串
重组阶段:重新打包生成优化后的AAB文件
实际应用指南
Gradle插件集成方案
基础配置
在项目根build.gradle中添加插件依赖:
buildscript {
dependencies {
classpath "com.bytedance.android:aabresguard-plugin:0.1.0"
}
}
模块级配置
在应用模块的build.gradle中配置具体规则:
aabResGuard {
// 增量混淆mapping文件
mappingFile = file("mapping.txt").toPath()
// 白名单配置示例
whiteList = [
"*.R.raw.*",
"*.R.drawable.icon"
]
// 去重与过滤设置
mergeDuplicatedRes = true
enableFilterFiles = true
filterList = [
"*/arm64-v8a/*",
"META-INF/*"
]
// 多语言保留设置
languageWhiteList = ["en", "zh"]
}
执行构建
使用标准bundle命令即可触发混淆流程:
./gradlew clean :app:bundleDebug
构建完成后,工具会生成以下重要文件:
resources-mapping.txt:记录资源混淆映射关系
优化后的AAB文件:体积更小的输出产物
去重日志文件:详细记录被合并的资源信息