我正在开发一个由几个单独的类组成的库,这些类一起工作以执行库的功能 . 其中一个类然后公开了一些公共函数,所有公共函数都使用外部代码来使用库 .
由于不同的类需要交互,我将它们全部放在同一个包中并且有很多“受保护”的东西(类和函数) .
问题是ProGuard默认不会混淆这些受保护的元素,因为它们有可能在以后与同一个包中的另一个类组合 . 但是,出于安全原因,我想阻止这种情况 .
所以问题是,除了私有元素之外,我还可以强制ProGuard对这些受保护的元素进行模糊处理吗?
换句话说,有没有办法告诉ProGuard“我已经完成了向这个软件包添加内容的东西,请不要混淆每个类中的私有内容,而是包中的受保护内容”?
谢谢!
1 回答
ProGuard会混淆与配置中的某个-keep选项不匹配的所有内容 . 例如,来自ProGuard manual > Examples > A typical library:
此规范保留所有公共和受保护的类,字段和方法 . ProGuard模糊了其他任何事情 . 如果要混淆更多,则必须指定更少的元素,例如有一个或多个这样的选项:
您可以使用通配符或其他模板,如ProGuard手册中所述 .
因此,默认情况下,ProGuard会对所有内容进行模糊处理,除非您指定保留一些元素 . ProGuard无法猜出您想要保留的内容 .