J'utilise PROGUARD pour obfusez mon application Android. L'application Android contient du code natif, ce qui rend les rappels à des méthodes entièrement qualifiées Java. Je n'ai pas besoin de ne pas obscorer ces classes et les noms de leurs méthodes. Le ci-dessous conserve correctement les noms de classe, mais pas les noms de méthodes.
-keep public class com.me.dontobf.*
-keepnames public class com.me.dontobf.*
Pour les méthodes natives: Manuel de PROGUARD> Exemples> Traitement des méthodes natifs
# note that <methods> means any method
-keepclasseswithmembernames,includedescriptorclasses class * {
native <methods>;
}
Dans ce cas, pour les méthodes de rappel: Manuel de PROGUARD> Exemples> Traitement des méthodes de rappel
-keep class mypackage.MyCallbackClass {
void myCallbackMethod(Java.lang.String);
}
Ou par ex., Si toutes les méthodes publiques peuvent être des méthodes de rappel:
-keep class mypackage.MyCallbackClass {
public <methods>;
}
Vous devez probablement également conserver toutes les classes de programme qui se produisent dans les descripteurs de la méthode.
Essayer:
-keepclasseswithmembernames class * {
native <methods>;
}
Du manuel PROGUARD: http://proguard.sourceforge.net/manual/examples.html#native