Retracing Retracing ist, was den Stack-Trace für Menschen lesbare durch verschleierte Namen ersetzt die Gebrauchten in Originalquelle verschleiert macht. Um zurückverfolgen zu können, sollten Sie sicherstellen, dass Sie mapping.txt
für jeden Build speichern, den Sie testen oder an jemanden senden möchten. Mapping ist für jeden Build-Prozess einzigartig.
Mapping kann es für zurückzuverfolgen, in
appModule/build/outputs/mapping/release/mapping.txt
zu finden ist ein praktisches Werkzeug proguardgui genannt, in
gefunden
$ANDROID_HOME/tools/proguard/bin/proguardgui.sh
(*.sh
für UNIX-Systeme, für andere Plattformen unterschiedliche Erweiterung erwarten).
Wählen Sie "ReTrace", fügen Sie eine Mapping.txt hinzu (stellen Sie sicher, dass mapping.txt verwendet wurde, das für diesen APK-Build generiert wurde) und fügen Sie den verschleierten Stack-Trace in das Fenster ein. Drücken Sie "ReTrace" in der unteren rechten Ecke und Sie sollten diese Stack-Spur mit entschleierten Namen bekommen.
Hier ist ein Screenshot mit Abtastwerteingang ich im Internet gefunden
Decompiling
Auch ist es möglich, den verschleierten Code direkt in Android Stuido zu sehen?
Nein, aber Sie könnten den Code sehen, wenn Sie dex in jar konvertieren und dekompilieren.
dex2jar myapp.apk
jd-gui myapp-dex2jar.jar
dex2jar github Seite.
jd-gui von github Seite.
Practices ich folgen
Was funktioniert für mich ist, wenn ich hinzufügen, eine Bibliothek, die ich eine proguard Config für eine Bibliothek hinzufügen (in der Regel durch Bibliothek Entwickler zur Verfügung gestellt).
Es gibt auch ein Projekt namens android-proguard-snippets, dachte, dass sie meist veraltet sind, also stellen Sie sicher, zuerst von Bibliothek Entwickler zu überprüfen.
Für die einfache Verwaltung, spalte ich die Proguard-Konfiguration für jede Bibliothek in einer separaten Datei. Unten ist ein Ausschnitt von einem meiner Builds.gradle buildTypes für die Freigabe
proguardFile getDefaultProguardFile('proguard-android.txt')
proguardFile 'proguard-dart.pro'
proguardFile 'proguard-parceler.pro'
proguardFile 'proguard-retrolambda.pro'
proguardFile 'proguard-rules.pro'
proguardFile 'proguard-rx-java.pro'
proguardFile 'proguard-support-design.pro'
proguardFile 'proguard-support-v7-appcompat.pro'
Objekte Für in Firebase
Serialisierung verwendet, fügen @Keep
Anmerkung.
Für Felder, die von Gson
verwendet werden, fügen Sie @SerializedName
Anmerkungen hinzu oder verwenden Sie @Keep
für ein Objekt.
Immer wenn ich Reflektion verwende (oder Animatoren, die technisch identisch sind), stelle ich sicher, dass ich proguard-Regel hinzufüge, um den Code, auf den durch Reflektion zugegriffen wird, direkt nach dem Schreiben eines solchen Codes zu behalten. Am Ende wird es wahrscheinlich nichts zu reparieren geben.
Das ist nicht das, was Sie fragen, aber was ist mit der dump.txt, same.txt, mapping.txt, usage.txt –