Obfuscated code
Wurde ich gebeten, die Kiste eine einfache app für android. Die erste, in der Tat, dass ich werde bezahlt, damit ich wirklich nicht wollen, um es vermasseln :). Eine der Anforderungen war, dass der code obfuscated.
Lernte ich die Allgemeine Idee des verschleierns, aber ich will nicht zu machen die dummen Fehler.
Was genau muss ich tun um den code verschleiert? Nicht exportieren es als release den job tun, oder einige andere Schritte erforderlich? Alle Anmerkungen werden auch zu schätzen.
PS. Ich bin mit Eclipse, wenn es darauf ankommt.
BEARBEITEN
Aus dem Artikel vorgeschlagen, in die anwsers:
Aktivieren ProGuard, so dass es ausgeführt wird als Teil eines Ant oder Eclipse bauen,
legen Sie die proguard.config-Eigenschaft in der
/Projekt.Eigenschaften-Datei. Der Pfad kann ein absoluter
Pfad oder einen Pfad relativ zum Projekt-Stammverzeichnis.Wenn Sie Links im proguard.cfg-Datei in Ihrem Standard-Speicherort (der
Projekt-root-Verzeichnis), können Sie Ihren Standort angeben, wie diese:proguard.config=proguard.cfg
Ich bin in der Tat haben die Projekt.Eigenschaften Datei in meinem Projekt dir. Aber ich habe nicht die proguard.cfg - Datei. Ich habe stattdessen die proguard-project.txt - Datei. Ich denke, es ist ein Ersatz.
Projekt.Eigenschaften:
Diese Datei wird automatisch generiert, durch Android-Tools.
Ändern Sie diese Datei nicht -- IHRE ÄNDERUNGEN WERDEN GELÖSCHT!Diese Datei muss überprüft werden, in Version-Control-Systeme.
Anpassen Eigenschaften verwendet das Ant-build-system Bearbeiten
"ant.Eigenschaften", und überschreiben Sie die Werte anpassen das script
Projekt-Struktur.Aktivieren ProGuard zu schrumpfen, und verschleiern Sie Ihre code, kommentieren Sie diese (verfügbar Eigenschaften: - sdk.dir, user.Haus):
proguard.config=${sdk.dir}\tools\proguard\proguard-android.txt:proguard-project.txt
Projekt Ziel.
target=android-7
Ursprünglich alles, aber die Letzte Zeile ist auskommentiert.
In proguard-project.txt alles auskommentiert ist.
Ich glaube, ich bin verloren hier, also ich wäre sehr dankbar Wenn jemand könnte mir sagen, Schritt für Schritt, was ich eigentlich tun sollte und auch, wie um zu überprüfen, ob es tatsächlich funktioniert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Artikel auf der offiziellen dev-site ist veraltet. Beginnend mit SDK-Tools r17, Sie verändert die Art und Weise der ProGuard-Konfiguration funktioniert. Im Grunde genommen teilten Sie sich, was verwendet werden
proguard.cfg
in zwei Dateien (und auch einfach gemacht .txt-Dateien):proguard-android.txt
undproguard-project.txt
.proguard-android.txt
befindet sich in Ihrem{SDK dir}\tools\proguard
Verzeichnis undproguard-project.txt
ist in jedem Ihrer Projekt-Verzeichnisse.Teilen Sie die Datei so, dass die Allgemeine Konfiguration/flags, die das Android-team hält ziemlich standard in der
proguard-android.txt
Datei und aktualisiert werden können (hauptsächlich im hintergrund) mit jeder SDK Tools, revision. Und dann alle Entwickler/Projekt-spezifische flags, die Entwickler, kann dieproguard-project.txt
Datei.Dies ist, warum Sie bemerkt alles, was in Ihrem
proguard-project.txt
Datei wurde auskommentiert, weil in der Regel die meisten Menschen haben keine Projekt-spezifischen Anforderungen, Sie wollen einfach nur zu laufen ProGuard mit standard Einstellungen und mit ihm getan werden.Referenz (eine sehr gute Erklärung): http://tools.android.com/recent/proguardimprovements
Schritt-für-Schritt (von Tag zu Tag :P)
(Mit Eclipse IDE), um Zu ermöglichen, ProGuard und es schrumpft und die Verschleierung, die nur mithilfe der Standard Einstellungen:
project.properties
kommentieren Sie die Zeile, die sagt:Wenn Sie das Projekt angelegt wurde, bevor r17 dann könnten Sie nicht die gleichen Dinge. Wenn das der Fall ist, schlage ich vor, Sie erstellen eine neue dummy-Projekt (nach dem Update SDK-Tools) und kopieren Sie einfach die
proguard-project.txt
undproject.properties
- Dateien.Das ist es! ProGuard ist jetzt aktiviert und wird ausgeführt, aber nur auf release-builds (wenn Sie verwenden Android-Tools und-export ein signed/unsigned apk).
Wenn du eine release-Version, werden Sie feststellen, dass eine neue ProGuard-Ordner erstellt wird in Ihrem Projekt-Ordner. In diesem Ordner finden Sie vier Dateien mit Sachen wie, welche Klassen/Methoden wurden gehalten oder entfernt werden. Beachten Sie auch, dass, wenn Sie zu verschleiern, Sie werden auch verschleiern Ihre stacktraces im Fehlerfall.
Edit: (9/4/12) wollte Nur aktualisieren Sie diese Antwort, um änderungen in Tools r20.
Das Android-team hat nun eine weitere proguard-Konfiguration-Datei. Es ist
proguard-android-optimize.txt
und es befindet sich ebenfalls in der{SDK dir}\tools\proguard
- Verzeichnis. Diese Datei ist die gleiche wie das originalproguard-android.txt
config-Datei, außer es hat proguard Optimierung eingeschaltet.Diese zusätzliche Datei Hinzugefügt wurde für die Bequemlichkeit für diejenigen, die wollten, um auf Optimierungen (vielleicht, so Sie tun können, Sachen wie strip-Protokoll aufruft, die erfordert Optimierungen eingeschaltet werden). Jetzt können Sie einfach auf diese Datei verweisen, statt in Ihrem
project.properties
Datei etwa so:Als, bevor, versuchen Sie nicht, ändern Sie die
proguard-android...
config-Dateien. Jedes Projekt spezifische flags sollten in derproguard-project.txt
- Datei in Ihrem Projekt-Ordner.Lists the classes and members that are not obfuscated
. Werfen Sie einen Blick und sehen, ob Ihre Klassen/Methoden/Felder sind alle da. Wenn Sie sind, dann waren Sie nie verschleiert, um mit zu beginnen, so müssen Sie überprüfen Sie Ihre proguard config Regeln, um zu sehen, warum.