2017-10-23 3 views
0

ich erfolgreich Klassennamen Code folgenden und Methoden verschleiern haben zu verschleiernWie Paketnamen in Android Studio

buildTypes { 
    release { 
     shrinkResources false 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     signingConfig signingConfigs.release 
    } 
} 

in App-Ebene build.gradle Datei

und

-dontwarn mypackage.** 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-verbose 
-dontwarn 

in proguard-rules.pro

aber mein Problem ist Paketname ist nicht verschleiert.

Also wie kann ich es erreichen, bitte helfen.

Dank

Antwort

0

In Pro-Guard, Paketnamen können mit zunehmenden Mengen von Verschleierung und Kompaktheit in various ways, verschleiert werden. Betrachten wir zum Beispiel die folgenden Klassen:

mycompany.myapplication.MyMain 
mycompany.myapplication.Foo 
mycompany.myapplication.Bar 
mycompany.myapplication.extra.FirstExtra 
mycompany.myapplication.extra.SecondExtra 
mycompany.util.FirstUtil mycompany.util.SecondUtil 

Lassen Sie uns den Namen der Klasse mycompany.myapplication.MyMain übernehmen die Hauptanwendungsklasse ist, die durch die Konfiguration gehalten wird. Alle anderen Klassennamen außer Main können verschleiert werden.

Standardmäßig werden Pakete, die Klassen enthalten, die nicht umbenannt werden können, nicht umbenannt, und die Pakethierarchie bleibt erhalten. Dies führt zu einem verschleierten Klassennamen wie diese:

mycompany.myapplication.MyMain 
mycompany.myapplication.a 
mycompany.myapplication.b 
mycompany.myapplication.a.a 
mycompany.myapplication.a.b 
mycompany.a.a 
mycompany.a.b 

Die -flattenpackagehierarchy Option der Paketnamen verschleiert weiter, indem die Pakethierarchie von verschleierten Paketen Abflachung:

-flattenpackagehierarchy 'myobfuscated' 

Alternativ kann die -repackageclasses Option verschleiert die gesamte Verpackung, von verschleierten Klassen in einem einzigen Paket kombiniert:

-repackageclasses 'myobfuscated' 

Die verschleierten Klassennamen dann suchen wie folgt:

mycompany.myapplication.MyMain 
mycompany.myapplication.a 
mycompany.myapplication.b 
myobfuscated.a 
myobfuscated.b 
myobfuscated.c 
myobfuscated.d 

zusätzlich die -allowaccessmodification Option angeben können Zugriffsberechtigungen von Klassen und Klassenmitglieder erweitert werden, die Möglichkeit eröffnet, alle verschleierten Klassen neu zu verpacken:

-repackageclasses 'myobfuscated' 
-allowaccessmodification 

Die verschleierten Klassennamen dann sehen Sie wie folgt aus:

mycompany.myapplication.MyMain 
myobfuscated.a 
myobfuscated.b 
myobfuscated.c 
myobfuscated.d 
myobfuscated.e 
myobfuscated.f 

Das angegebene Zielpaket kann immer das Root-Paket sein. Zum Beispiel:

-repackageclasses '' 
-allowaccessmodification 

Die verschleierten Klassennamen sind dann die kürzest möglichen Namen:

mycompany.myapplication.MyMain 
a 
b 
c 
d 
e 
f 

Beachten Sie, dass nicht alle Ebenen der Verschleierung von Paketnamen können für alle Code akzeptabel sein.Insbesondere müssen Sie möglicherweise berücksichtigen, dass Ihre Anwendung möglicherweise Ressourcendateien enthält, die angepasst werden müssen.

Um Code im Android Studio zu verschleiern nur this post besuchen.

Oder Ihr Code in NetBeans importieren und verwenden seine Build-in funktionalen, vor der Überprüfung, verschleiern und verpacken Sie den Code))) zu kompilieren.

Verwandte Themen