Ich arbeite an einer Android-Anwendung, die Daten in einer SQLite-Datenbank speichert. Meine Frage ist, wo wird diese Datenbankdatei im Dateisystem gespeichert, wenn Sie einen Emulator verwenden?
Ich habe gesehen, dass es in gespeichert ist
/data/data/package_name/databases
Ich muss jedoch wissen, wo sich auf der Festplatte meines lokalen Computers tatsächlich eine Zuordnung befindet. Die Datenbank bleibt auch nach dem Herunterfahren des Computers bei mehreren Durchläufen des Emulators bestehen, sodass sie sich nicht nur im RAM befinden kann ...
adb pull
(auch nicht mit dem genauen Pfad!), Wenn Sie nicht root sind .adb pull /data/data/com.activeandroid.test/databases/Application.db ~/Development/Application.db
Ein Update, das in den Kommentaren unten erwähnt wird:
Oder Sie können den alten Ansatz ausprobieren:
Öffnen Sie die DDMS-Perspektive auf Ihrer Eclipse-IDE
( Fenster> Perspektive öffnen> Andere> DDMS )
und das wichtigste:
Ihre Bewerbung muss laufen, damit Sie die Hierarchie der Ordner und Dateien sehen können .
Dann folgen Sie auf der Registerkarte Datei-Explorer dem Pfad:
Daten> Daten> Ihr-Paket-Name> Datenbanken> Ihre-Datenbank-Datei .
Wählen Sie dann die Datei aus und klicken Sie auf das Diskettensymbol in der rechten Ecke des Bildschirms, um die DB- Datei herunterzuladen . Wenn Sie eine Datenbankdatei in den Emulator hochladen möchten, können Sie auf das Telefonsymbol (neben dem Diskettensymbol) klicken und die hochzuladende Datei auswählen.
Wenn Sie den Inhalt der DB- Datei anzeigen möchten , empfehlen wir Ihnen, den SQLite-Datenbankbrowser zu verwenden, den Sie hier herunterladen können .
PS: Wenn Sie die Datenbank von einem realen Gerät aus anzeigen möchten, müssen Sie Ihr Telefon rooten.
quelle
Failed to pull selection
(null)
Die anderen Antworten sind stark veraltet. Mit Android Studio ist dies der folgende Weg:
quelle
In Android Studio 3.4.1 können Sie die Suchfunktion von Android Studio verwenden, um "Device File Explorer" zu finden und dann in das Verzeichnis / data / data / package_name / database Ihres Emulators zu wechseln.
quelle
Ich habe ein einfaches Bash-Skript geschrieben, das die Datenbank vom Android-Gerät auf Ihren Computer zieht (Linux-, Mac-Benutzer).
Dateiname: android_db_move.sh Verwendung: android_db_move.sh com.example.app db_name.db
quelle
Da die Frage nicht auf Android Studio beschränkt ist, gebe ich den Pfad für Visual Studio 2015 (für Xamarin gearbeitet) an.
Besonderer Dank geht an andere Antwortende dieser Frage.
quelle
Die Datenbanken werden als SQLite-Dateien in / data / data / PACKAGE / database / DATABASEFILE gespeichert, wobei:
Sie können die Datenbankdatei im Emulator sehen (vom / in das Dateisystem kopieren), indem Sie auf der Registerkarte Datei-Explorer die DDMS-Perspektive auswählen .
quelle
Einfache Lösung - funktioniert sowohl für Emulatoren als auch für verbundene Geräte
1 Siehe die Liste der derzeit verfügbaren Geräte / Emulatoren.
2 Führen Sie ein Backup auf Ihrem Gerät / Emulator aus
3 Extrahieren Sie data.ab
Sie finden die Datenbank im
/db
Ordnerquelle
$ dd if=data.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -
bash: adb: command not found
Laut Android-Dokumenten war Monitor in Android Studio 3.1 veraltet und wurde aus Android Studio 3.2 entfernt. Um auf Dateien zuzugreifen, gibt es in Android Studio unten rechts im Entwicklungsfenster eine Registerkarte namens "Device File Explorer", über die Sie auf Ihr Emulator-Dateisystem zugreifen können. Folge einfach
/ data / data / package_name / database
Viel Glück.
quelle
Stellen Sie Android Studio 3.5 anhand der folgenden Anweisungen bereit: https://developer.android.com/studio/debug/device-file-explorer (Ansicht -> Tool Windows -> Gerätedateiexplorer -> -> Datenbanken
quelle