R8 official documentation说,要激活其他优化,必须将其插入gradle.properties
文件中:
android.enableR8.fullMode=true
文档说,要使该应用程序正常运行,我必须设置一些保留规则,但没有有关其工作方式和执行哪些操作的详细信息:
因为其他优化使R8的行为与 ProGuard,他们可能会要求您包括其他ProGuard规则以 避免运行时问题。例如,假设您的代码引用了 通过Java Reflection API类。默认情况下,R8假定您 打算在运行时检查和操作该类的对象,甚至 如果您的代码实际上不这样做,它会自动保留该类并 其静态初始值设定项。
但是,在使用“完整模式”时,R8不会做出此假设,并且 如果R8断言您的代码否则将永远不会使用 运行时,它将从您应用的最终DEX中删除该类。也就是说,如果 您想要保留该类及其静态初始值设定项,您需要 在您的规则文件中加入一个保留规则即可。
文档建议的常见问题解答中的link仅表示以下内容:
R8完整模式
在完整模式下,R8表现出更具侵略性 优化,意味着附加的ProGuard配置规则 可能是必需的。本节重点介绍了一些常见问题 在使用完整模式时可以看到。
android.enableR8.fullMode
真正如何工作?
非常感谢!