【问题标题】:Differences in simple proguard keep option简单 proguard 保留选项的差异
【发布时间】:2016-09-28 12:32:52
【问题描述】:

这两个proguard选项有什么区别?

 -keep class com.myclass.**
 -keep class com.myclass.** { *; }

【问题讨论】:

    标签: java proguard


    【解决方案1】:

    第一条规则将只保留本身(以及默认构造函数)。

    第二条规则还将保留类中的所有方法字段

    【讨论】:

      【解决方案2】:
      -keep class com.myclass.**
      

      保留com.myclass 包和任何子包中的所有类。即使缩小和优化步骤会改变或删除这些类的结构,也不要这样做。

      -keep class com.myclass.** { *; }
      

      保留上面定义的 com.myclass 包中的所有类以及这些类中的所有字段和方法。

      差异示例:使用第一个命令,我的入口点方法(例如main)仍然可以缩小、优化和混淆。为了保持这些方法的签名完好无损,我可以指定我需要保留的方法或字段(或者像你一样只指定通配符*,尽管我认为这太宽泛了)。这对于反射和其他签名和名称必须保持完整的情况至关重要。

      请注意,-keepnames 和类似命令也会保留签名,但前提是它们在收缩期间尚未被删除。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-08
        • 2013-03-25
        • 2012-06-13
        • 2021-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-10
        相关资源
        最近更新 更多