2

ソースの例:

// this is package visible interface
interface MyInterface {
    void foo();
}

public class MyClass1 implements MyInterface {
    // some public class members which should not be obfuscated
    // ...     

    // this is MyInterface implementation, this method should be obfuscated:
    void foo() {}
}

// other classes which implement MyInterface
...

MyInterface.foo()実装のみを難読化しながら、すべてのパブリックメンバーをMyClass1および他のクラスに保持するにはどうすればよいですか。

4

2 に答える 2

1

ProGuard には、1 つを除くすべてのメソッドを指定するためのショートカットはありません。必要なものを指定する必要があります。おそらく、それらを保持しなければならない理由があります。たとえば、別のインターフェイスを実装している場合、この別のインターフェイスのすべてのメソッドを保持するように簡単に指定できます。

-keep 仕様は、メソッドのコードではなく、クラス/フィールド/メソッドの名前を参照することに注意してください。

ProGuard マニュアル > 使い方 > -keep オプションの概要

于 2012-09-09T21:24:08.160 に答える