Ответ 1
ProGuard использует соглашение об именах байт-кода Java, как это видно в именах файлов классов и stacktraces. Поэтому:
-keep public interface com.somepackage.SomeClass$someInterface {*;}
Допустим, у меня есть..
public class SomeClass {
public interface someInterface {
public void firstMethod(String variable);
public void secondMethod(String variable);
public void thirdMethod();
}
}
и я...
-keep,includedescriptorclasses public class com.somepackage.SomeClass {
<fields>;
<methods>;
}
-keep public interface com.somepackage.someInterface {*;}
В конечном итоге
public interface someInterface {
public void a(String variable);
public void a(String variable);
public void a();
}
Как обеспечить, чтобы эти имена методов интерфейса не были запутаны, но все еще запутывали остальную часть класса?
ProGuard использует соглашение об именах байт-кода Java, как это видно в именах файлов классов и stacktraces. Поэтому:
-keep public interface com.somepackage.SomeClass$someInterface {*;}
Я попробовал следующее и, похоже, работал:
-keep interface com.somepackage.SomeClass$someInterface
Для тех, кто ищет, как сохранить пользовательскую аннотацию (которая определена в @interface в java), сохранив все ее члены,
вы должны использовать, как показано ниже, чтобы сохранить его:
-keep @interface com.your.annotation.interface. {*;}