Подтвердить что ты не робот

В proguard, как сохранить набор имен методов?

Я использую proguard, чтобы запутать приложение для Android. Приложение android содержит некоторый собственный код, который делает обратные вызовы для полностью квалифицированных java-методов. Мне нужно не обфускать эти классы и имена их методов. В приведенном ниже правиле хранятся имена классов, но не имена методов.

-keep public class com.me.dontobf.*
-keepnames public class com.me.dontobf.*
4b9b3361

Ответ 1

Для нативных методов: Руководство ProGuard> Примеры> Обработка нативных методов

# note that <methods> means any method
-keepclasseswithmembernames,includedescriptorclasses class * {
    native <methods>;
}

В этом случае для методов обратного вызова: Руководство ProGuard> Примеры> Обработка методов обратного вызова

-keep class mypackage.MyCallbackClass {
    void myCallbackMethod(java.lang.String);
}

Или, например, если все открытые методы могут быть методами обратного вызова:

-keep class mypackage.MyCallbackClass {
    public <methods>;
}

Вам, вероятно, также нужно сохранить любые классы программ, которые встречаются в дескрипторах методов.