Ich arbeite an einer App in Android Studio und möchte Proguard zu meiner App hinzufügen. Aber ich weiß nicht, was ich tun soll? Auch ich möchte seinen Zusammenhang lernen. Kann mir irgendjemand etwas zeigen? Vielen Dank.Wie bereitet man eine Proguard-Datei auf und was ist darin enthalten?
Antwort
In Ihrem gradle Datei gesetzt true
zu minifyEnabled
Sie können festlegen, ob proguard in Debug, Release aktiviert oder beide
buildTypes {
release {
minifyEnabled true
proguardFiles 'proguard-rules.pro'
}
debug {
minifyEnabled false
proguardFiles 'proguard-rules.pro'
}
}
Sie auch die proguardFiles einstellen können ihn config, lesen Sie in diesem site zu Sehen Sie sich die Dokumentation an, schauen Sie sich dieses Beispiel an:
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/balysv/Documents/Android/sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
-optimizationpasses 5
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
Wenn Sie ein benutzerdefiniertes Wörterbuch für verwenden möchten Code-Verschleierung, setzen Sie diese Konfiguration mit dem Wörterbuch-Datei:
-obfuscationdictionary proguard-dic.txt
-classobfuscationdictionary proguard-dic.txt
-packageobfuscationdictionary proguard-dic.txt
Die Wörterbuchdatei ist eine einfache Textdatei mit den Etiketten, die Sie verwenden möchten, um Ihren Code zu verschleiern, 1 Etikett pro Zeile.
Um Ihre APK-Datei so klein wie möglich zu machen, sollten Sie Schrumpfung aktivieren, um nicht verwendeten Code und Ressourcen in Ihrem Build zu entfernen.
Codeverkleinerung ist verfügbar mit ProGuard, die nicht verwendete Klassen, Felder, Methoden und Attribute aus Ihrer gepackten App erkennt und entfernt, einschließlich der enthaltenen Codebibliotheken (dadurch ein wertvolles Tool zum Arbeiten mit der 64k-Referenzgrenze).
ProGuard optimiert auch den Bytecode, entfernt nicht verwendete Codeanweisungen und verschleiert die verbleibenden Klassen, Felder und Methoden mit kurzen Namen. Der verschleierte Code erschwert das Reverse-Engineering Ihres APK. Dies ist insbesondere dann von Vorteil, wenn Ihre App sicherheitsrelevante Funktionen verwendet, z. B. die Lizenzprüfung.
Zum Beispiel der folgende Ausschnitt aus einer build.gradle Datei ermöglicht für die Release-Build-Code Schrumpfen:
android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile(‘proguard-android.txt'),
'proguard-rules.pro'
}
}
...
}
Danke, Bruder, ich werde es mir ansehen. Alles klar, wie kann ich proguard für meine Abhängigkeiten verwenden? – nuhkoca
- 1. Wie bereitet man Anwendungsdaten im Hintergrund auf?
- 2. Wie bereitet man Django auf ein mögliches Slashdotting vor?
- 3. Wie bereitet man eine Definitionsdatei für npm vor?
- 4. Ein RESTful Container enthält viele Dinge. Aber wie kann man damit umgehen und was ist darin enthalten?
- 5. Gibt es eine Möglichkeit, ein Element abhängig davon, was darin enthalten ist, zu targetieren?
- 6. Sed: Ersetze String, wenn ein Chain nicht darin enthalten ist
- 7. Breite der Spannweite beibehalten, auch wenn nichts darin enthalten ist
- 8. Eine Liste mit demselben Typ wie die Klasse, die darin enthalten ist
- 9. Gibt es eine generische Möglichkeit, URLs in Kohana zu routen, wenn das Bindestrichzeichen darin enthalten ist?
- 10. Herauszufinden, was der GCC-Pfad enthalten ist
- 11. zentrieren Sie ein div auf die Seite unabhängig von dem Element, das darin enthalten ist
- 12. TableView - Wie man eine Download-Schaltfläche darin hinzufügt
- 13. Perl: Was ist im Lieferumfang enthalten? 5. ##. #?
- 14. Wie bereitet man eine React.js-Komponente für die Verwendung in ClojureScript als externe Reagent-Komponente vor?
- 15. HTML: Wie man eine Übermittlungsschaltfläche mit Text + Bild darin bildet?
- 16. Wie man eine Zeichenkette eingibt, die "\ n" darin enthält
- 17. Wie man eine Weile mit anderem macht darin
- 18. Was passiert, wenn mehr als eine .cpp-Datei # enthalten ist?
- 19. Was ist, wenn ein Link ein Pfund "#" Zeichen darin hat
- 20. Was ist der Unterschied zwischen PHP erforderlich und enthalten?
- 21. Was ist eine Bitmaske und eine Maske?
- 22. Angular 2 - wie Richtlinie zuzugreifen und eine Elementfunktion darin
- 23. Wie öffne ich ein neues cmd-Fenster und führe eine for-Schleife darin aus?
- 24. Was sollte eine Tree-Klasse enthalten?
- 25. Wie teilt man eine Matrix-Marktdatei nach der Anzahl der Zeilen der darin gespeicherten Matrix auf?
- 26. Wie bereitet man die Umgebung vor, um den Tomcat-Server auf die einfachste Art und Weise zu betreiben?
- 27. Wie wird die Größe der ASP.NET-Sitzung ermittelt, wenn nicht serialisierbare Objekte darin enthalten sind?
- 28. Was genau enthalten Volley "Antwort" und "Fehler"?
- 29. Kablammo! Explode-Funktion, die mir Kopfschmerzen bereitet!
- 30. Was ist eine .pem-Datei und wie wird sie verwendet?
Dank und wie ist ihr Inhalt? – nuhkoca
Aktualisiere meine Antwort –
Wie kann ich diese Konfiguration für meine Abhängigkeiten anwenden? – nuhkoca