同时使用 ProGuard 和 R8

Posted

技术标签:

【中文标题】同时使用 ProGuard 和 R8【英文标题】:Using both ProGuard and R8 【发布时间】:2019-09-29 19:05:40 【问题描述】:

我希望 ProGuard 和 R8 都执行代码压缩和优化:我敢肯定,经过一年的开发,R8 不会像经过 15 年的 ProGuard 一样酷。

android.enableR8 标志启用 R8 而不是 ProGuard。

有没有办法使用官方Android工具链来使用这两种工具,i。 e.带有 Android 插件的 Gradle?

【问题讨论】:

【参考方案1】:

在 Android Studio 中不支持同时运行 R8 和 ProGuard。我建议你比较两个收缩器的结果,然后决定你要坚持哪一个。如果您发现 R8 产生的输出比 ProGuard 大,请通过使用 this link 提交错误报告告诉我们。

【讨论】:

对于我的“hello world”应用程序,fullMode 中的 R8 生成的 DEX 比 ProGuard 略小。但大小并不是唯一的判断标准。 R8 缺少 ProGuard 实现的许多优化。 ProGuard 出现在 Android 之前,并且会在它之后出现,它没有停产,正在添加更多功能。

以上是关于同时使用 ProGuard 和 R8的主要内容,如果未能解决你的问题,请参考以下文章

了解启用 Proguard 的崩溃和 ANR

使用 proguard 时构建期间出现 GMS 错误

全网首发:ProGuard如何混淆多个包

Java 和 ProGuard - 使用类加载器 AntClassLoader 找不到 taskdef 类 proguard.ant.ProGuardTask

Proguard 和 Preference 数据存储

如何在 Eclipse 和调试模式下使用 proguard?