外观
R8 相比 ProGuard 在性能和功能上有哪些改进?
标准回答
R8 把代码缩减、优化、混淆和 Android 字节码产物处理整合进构建流程。
通俗例子
没被使用的辅助类可以移除,简单调用可能被优化,类名可变短;最终是否更小更快仍取决于项目与保留规则。
深入解释
**三个容易混淆的动作:**压缩代码是删除确认无用的部分;优化是调整实现;混淆是改名。R8 可以参与这些动作,并与 Android 构建和 DEX 生成流程配合。
**能不能直接换工具就变快:**结果取决于工程、规则与构建版本。反射入口、资源访问和 native 交互都可能限制优化,应该比较最终包体、行为和运行数据。
内容来源
- Android · AI Agent 知识手册 · 原条目
9.3.1