【问题标题】:Proguard obfuscate package excluding classes extending/implementing some interface/classProguard 混淆包,不包括扩展/实现某些接口/类的类
【发布时间】:2014-03-04 18:05:32
【问题描述】:

我想混淆一切,但保留类名,因为匕首。然后我想混淆实现某些接口的类。

-keep class com.example.** { <init>(...); }
-keep,allowobfuscation class * implements com.example.util.SomeInterface
-keep,allowobfuscation class * extends com.example.data.SomeClass

第一部分保留带有混淆内容的类名效果很好。但是实现 SomeInterface 或 extends SomeClass 的类名仍然可见。

有可能吗?

【问题讨论】:

  • 我想要混淆实现 SomeInterface 或扩展 SomeClass 的类。
  • 你的意思是调试器吗?什么是“匕首”?
  • 我感觉 "-keep class com.example.** { (...); }" 匹配 com.example 包下的任何类,因此甚至类另外匹配第二条和第三条规则的则保持原样。

标签: java proguard


【解决方案1】:

ProGuard 保留您在指令中指定的类/字段/方法的联合。如果一个类与您的第一个指令匹配,ProGuard 会保留它,而不考虑任何其他指令。您可能希望根据类名以外的其他标准来优化第一行。

【讨论】:

    猜你喜欢
    • 2019-03-15
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多