首页功能指南工具开始使用价格字典博客反馈English
R8 字典

R8 与 ProGuard 混淆字典指南

说明 R8 是否支持 ProGuard 混淆字典、如何配置 dictionary 文件、如何验证 mapping 输出,以及 Unicode 字典适合什么场景。

约 8 分钟

快速结论:R8 支持 ProGuard dictionary 指令,包括类名、成员名和包名混淆字典,但字典只控制命名风格,不能替代 keep 规则和发布测试。

开发者常问的问题

混淆字典做什么

字典控制 R8/ProGuard 重命名时使用的候选名称,例如把类名、方法名或包名映射到特定字符集合。它影响可读性,不决定哪些代码被保留。

字典指令

常见指令包括 -obfuscationdictionary、-classobfuscationdictionary 和 -packageobfuscationdictionary,分别影响成员名、类名和包名。

手动流程

准备字典文件,在 proguard-rules.pro 中引用,执行 release 构建,然后查看 mapping.txt 确认输出名称是否来自预期字典。

字典选项

可选择普通短名、同形字符、希腊/西里尔字符、CJK 字符、编码混淆字符或轻量 confusable 字典。越激进的字典越需要充分测试。

ADB Pro 如何帮助

R8 Assistant 和 ProGuard Dictionaries 页面提供可下载字典、配置说明和 mapping 验证思路,帮助团队把字典作为可审查配置管理。

FAQ:R8 仍然使用 ProGuard 规则语法吗?

是。现代 Android 构建运行 R8,但规则文件仍使用 ProGuard 兼容语法。

FAQ:字典能替代 keep 规则吗?

不能。keep 规则决定符号是否可被删除或重命名,字典只影响最终名称长什么样。

FAQ:如何知道字典生效?

检查 mapping.txt 中的类名、方法名和包名输出,并对 release 产物执行 smoke test。

相关指南

Android APK Obfuscation、R8 minifyEnabled 和 ProGuard Dictionaries 资源页可以一起使用。

用 ADB Pro 更快完成这个工作流

在 JetBrains IDE 内处理 Android 发布检查、签名、AAB、R8 规则、资源混淆和 CI/CD。

查看价格开始免费试用