加载中...

ProGuard 与 R8 是 Android 构建流程中的代码收缩(shrinking)、优化与混淆(obfuscation)工具。ProGuard 由 Eric Lafortune 开发、GuardSquare 维护,是 Java 生态的经典方案;R8 是 Google 开发的替代品,自 Android Gradle Plugin 3.4 起成为默认工具,并兼容 ProGuard 规则文件。
工具在编译期分析代码可达性,移除未使用的类、方法与字段(缩包);将标识符重命名为无意义短名(混淆,增加逆向难度);并进行内联、去糖等优化。R8 直接从 Java 字节码输出 DEX,把 ProGuard 加 D8 的两步合并为一步,构建更快。
反射、JNI、序列化等运行时按名称查找的代码必须通过 keep 规则保留,否则会出现线上崩溃;混淆后需保存 mapping 文件用于还原崩溃堆栈。
是安卓包体积优化与基础代码保护的标准环节。

登录 后参与讨论
暂无讨论,来发表第一条评论吧