使用ProGuard,我如何对一个类进行模糊处理?

leo*_*leo 20 proguard

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

我想混淆这一点,因为它包含一个算法,当意外打开.jar时,该算法不应该是明显的.

我是ProGuard的新手.AFAIU,你必须使用"保持",但"混淆"的积极逻辑是不可用的,对吧?那么如何从"保持一切"配置中排除我的课程?注意:我暂时不想混淆其他类,因为我想让客户看到有意义的堆栈跟踪.

Eri*_*une 25

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

话虽这么说,你可以指定:

-keep class !com.acme.Algorithm { *; }
Run Code Online (Sandbox Code Playgroud)

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