21

什么是智能 ProGuard 配置来混淆一个特定类 com.acme.Algorithm 的私有方法和常量?

我想对此进行混淆,因为它包含一个在意外打开 .jar 时不应该很明显的算法。

我是 ProGuard 新手。AFAIU,你必须使用“keep”,但是“do obfuscate”的正逻辑是不可用的,对吧?那么如何将我的班级从“保留一切”配置中排除?注意:我暂时不想混淆其他类,因为我想让客户看到有意义的堆栈跟踪。

4

1 回答 1

25

混淆单个类不会有太大影响:它可能会更改类名和一些字段名和方法名,并且可能会优化一些代码。混淆对于隐藏小块信息往往不太有效。您混淆的应用程序代码越多,就越难理解。

话虽如此,您可以指定:

-keep class !com.acme.Algorithm { *; }

它将所有类/字段/方法保留在 com.acme.Algorithm 之外。

于 2013-07-28T10:30:49.027 回答