2016-09-28 10 views

答えて

1

最初のルールは、クラスを維持します自身(およびデフォルトコンストラクタ)。

二番目のルールは、すべての方法フィールドクラスでを維持します。

1
-keep class com.myclass.** 

com.myclassパッケージとすべてのサブパッケージのすべてのクラスを保持します。縮小や最適化の手順でこれらのクラスの構造を変更したり削除したりしても、そうしないでください。

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

上記のcom.myclassパッケージのすべてのクラスと、これらのクラスのすべてのフィールドとメソッドを保持します。

違いの例:最初のコマンドでは、私のエントリーポイントメソッド(mainなど)は依然として縮小、最適化、難読化できます。これらのメソッドのシグネチャをそのまま維持するために、私が保持する必要があるメソッドやフィールドを指定することができます(または、ワイルドカード*)。これは、反射や、署名や名前をそのまま維持する必要があるその他の状況では不可欠です。

-keepnamesなどのコマンドでも署名は保持されますが、縮小中にまだ削除されていない場合に限ります。