Zugriff auf private Daten auf Android

Laut der offiziellen Entwicklerdokumentation sind hier die Optionen für die Datenspeicherung auf Android:

  • Gemeinsame Einstellungen - Speichern Sie private primitive Daten in Schlüssel-Wert-Paaren.
  • Interner Speicher - Speichern Sie private Daten im Gerätespeicher.
  • Externer Speicher - Speichern Sie öffentliche Daten auf dem gemeinsam genutzten externen Speicher.
  • SQLite-Datenbanken - Speichern Sie strukturierte Daten in einer privaten Datenbank.
  • Netzwerkverbindung - Speichern Sie Daten im Web auf Ihrem eigenen Netzwerkserver.

Abgesehen von der Netzwerkverbindungsoption sind alle anderen Optionen persistente Daten auf dem Gerät. Sowohl SharedPreferences als auch SQlite-Datenbanken sind private Daten, die auf dem Gerät gespeichert sind. Auf diese Dateien können andere Anwendungen oder Benutzer nur zugreifen, wenn Sie sich auf einem Emulator oder einem gerooteten Gerät befinden. Es gibt einige Möglichkeiten, wie ich auf diese privaten Daten zugreifen und sie während der Entwicklung auf Fehler untersuchen kann.

Greifen Sie auf private Dateien zu

Auf einem Emulator oder einem gerooteten Gerät

Wenn Sie einen Emulator oder ein gerootetes Gerät ausführen. Sie sollten Zugriff auf den privaten Speicher des Geräts haben. Sie können über die Android Studio-Benutzeroberfläche oder über die Befehlszeile auf die Dateien zugreifen:

  • GUI - Starten Sie Android Device Monitor in Android Studio über das Menü Extras / Android / Android Device Monitor. Navigieren Sie zur Registerkarte Datei-Explorer und dann zu data / data / /. Suchen Sie die Datei, nach der Sie suchen, und ziehen Sie von dort aus eine Datei.
  • Befehlszeile - Sie können die Datei auch auf das Gerät übertragen oder über adb vom Gerät übertragen:
adb pull remote-dir local-dir <- Kopiere vom Gerät auf den lokalen Rechner
adb push local-dir remote-dir <- Kopieren vom lokalen Rechner zum Gerät

Auf einem nicht gerooteten Gerät

Wenn Sie nicht auf einem Emulator oder einem gerooteten Gerät ausgeführt werden. Von der Kommandozeile:

ADB Shell
run-as  F
CD-Daten / Daten / ...

Jetzt können Sie auf die Dateien im internen Speicher des Geräts zugreifen. Geben Sie exit ein, um die Shell zu verlassen.

exit <- Beendet die ADB-Shell

SQLite-Datenbankdatei

Sobald Sie in der Lage sind, auf die SQLite-Datenbankdatei auf einem Emulator, einem gerooteten Gerät oder über die ADB-Shell / Ausführen als [Paketname] zuzugreifen, gibt es einige Optionen zum Überprüfen des Schemas und Ihrer SQLite-Datenbank auf dem Gerät.

Überprüfen Sie SQLite db über ein GUI-Tool

Ziehen Sie die Datei zuerst vom Gerät und verwenden Sie dann eine GUI-Software, um das Schema und den Inhalt zu überprüfen. Ich verwende einen SQLite-Browser, mit dem Sie das Datenbankschema und den Tabelleninhalt anzeigen sowie einige einfache SQL-Skripts ausführen können.

Überprüfen Sie die SQLite-Datenbank über das SQLite3-Befehlszeilentool

Für mich ist die einfachere Möglichkeit, das SQLite3-Kommandozeilen-Tool zu verwenden, um die Datenbank von der ADB-Shell aus zu inspizieren.

ADB Shell
cd data / data /  / database /
sqlite3 
.tables
.schema 

Alternativ können Sie sqlite3 lokal anstelle einer Shell verwenden, nachdem Sie die Datenbankdatei vom Gerät abgerufen haben:

adb pull 
sqlite3 

App-Daten werden gelöscht

Wenn Sie also mit SharedPreferences oder SQLite db unter Android arbeiten, müssen Sie häufig die Daten löschen und neu beginnen. Also hier sind ein paar Optionen:

  • Deinstallieren Sie die App und installieren Sie sie erneut
  • Gehen Sie zu Geräteeinstellungen / Apps / Finden Sie Ihre App und klicken Sie darauf / Speicher / Daten löschen

Es gibt eine viel einfachere Möglichkeit, Ihren Entwicklungs- und Debugging-Prozess zu unterstützen: Installieren Sie ein Android Studio-Plug-In namens ADB Idea. Um das Plug-In zu installieren, gehen Sie zu Android Studio / Preferences / Plugins, klicken Sie auf Browse Repositories und suchen Sie nach „ADB Idea“. Wenn Sie Android Studio installieren und neu starten, wird die Plug-in-Option unter Tools / Android / ADB Idea angezeigt. Versuche es. Ich finde dieses Plugin super hilfreich, wenn ich App-Daten löschen muss.

Benutze eine Bibliothek

Es gibt andere Optionen für den Zugriff auf und die Überprüfung von privaten Dateien auf Android-Geräten mithilfe einer Bibliothek.

Eine Möglichkeit besteht darin, eine Bibliothek namens Android Debug Database zu verwenden, und Sie können die Details in einem Blog-Beitrag des Autors dazu nachlesen.

Wenn Sie neben Datenbank- und SharedPreferences-Netzwerkverbindungen auch Netzwerkverbindungen untersuchen möchten, verwenden Sie Stetho, ein von Facebook entwickeltes Open-Source-Debugging-Tool. Wenn Sie Stetho verwenden, muss sich Ihre App im Debug-Modus befinden, es ist jedoch kein Root-Zugriff erforderlich. Es ist ein leistungsstarkes Tool, mit dem Sie Ihre App mit dem Chrome Developer Tool debuggen können.