Comment dire Proguard pour dissimuler les noms de classe
Je voudrais proguard pour dissimuler les noms de classe. J'ai cette ligne dans Proguard.cfg
-keepclasseswithmembers class * {
public static <fields>;
}
-keepnames class * implements java.io.Serializable
-keep public class com.google.**
Et je remarque que ce n'est pas occulté, c'est la classe des noms. Le fait d'exécuter les jdgui je vois
com/test/abcd/ActualClass.java
public class ActualClassName s'étend de l'Activité etc
de plus je vois les méthodes retournant réel les noms de classe. comme
ActualClassname aa();
et les importations des états comme
import com.abcd.ActualClassName
Comment puis-je obtenir Proguard pour obscurcir le nom de la classe elle-même. Pas seulement pour les Activités que je vois ce que mes Cartes ne sont pas être occulté. Eh bien, il est de la dissimulation de passe, mais pas les noms de classe.
Est les règles ci-dessus, ce qui empêche les noms de classe d'être obscurci?
Mise à jour: depuis, j'ai supprimé les règles ci-dessus et une classe Utilitaire qui ne s'étend pas quelque chose de Android n'est pas occulté. Je vais maintenant me demandais s'il existe une règle implicite sur le fait de garder les noms de classe des classes qui sont référencés dans les classes qui sont conservés comme Activité derivied classes? Les classes dont les noms ne sont pas camouflés ont quelques choses en commun:
1) méthodes Statiques
2) l'Importation d'autres types qui sont conservés comme ceux découlant de l'activité ou serializable.
3) Ils ont des méthodes avec des paramètres des autres classes (dont Certains pourraient avoir besoin d'être gardé).
Cependant, il n'est pas le cas que je suis demande spécifiquement que ces classes utilitaires doivent être conservés.
- Je suis en cours d'exécution dans la même question. Avez-vous trouvé une solution à ce problème ?
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs classe qui apparaissent dans votre code qui doit conserver le même nom de classe entièrement qualifié pour proguard ont été de renommer la classe puis Android ne serait plus en mesure de les trouver.
Typique de Proguard la configuration reportez-vous à la Proguard config dans le SDK Android qui comprendra plusieurs lignes importantes comme celle-ci:
proguard.config
dansproject.properties
, et quelle est la valeur?Je pense que votre problème vient de votre première ligne: '-keepclasseswithmembers' contient le nom de la classe, donc dans votre cas une classe avec un champ statique gardera son nom. De la modifier à tout simplement '-keepclassmembers' s'obscurcir les noms de classe, tout en laissant les champs statiques intacte(que je suis en supposant que vous voulez faire).
Cela dit, je ne suis pas sûr de savoir pourquoi vous voulez le faire, cependant. Si vous êtes en essayant de préserver la variable statique de noms, ne devrait pas vous souhaitez conserver les noms de classe et, voyant que la façon dont c'est la façon dont vous aurez accès aux champs statiques? Pourquoi essayez-vous de conserver tous vos statique noms de variable?