Zeigen Sie den Inhalt der Datenbankdatei in Android Studio an


250

Ich habe Android Studio verwendet , um meine App zu entwickeln, seit sie veröffentlicht wurde.

Bis vor kurzem funktioniert alles gut, ich muss zusammen mit der Überprüfung der Datenbankdatei debuggen. Da ich nicht weiß, wie die Datenbank direkt angezeigt wird, muss ich beim Debuggen zum Generieren der Datenbankdatei die Datenbankdatei von meinem Telefon auf den PC exportieren.

Dazu muss ich öffnen DDMS > File Explorer. Sobald ich das DDMS öffne, muss ich den USB-Anschluss erneut anschließen und verliere meinen Debug-Thread. Nachdem ich die Datenbankdatei überprüft habe, muss ich das DDMS schließen und den USB-Anschluss erneut anschließen, um zum Debug-Modus zurückzukehren.

Es ist einfach zu kompliziert. Hat jemand eine bessere Möglichkeit, dies in Android Studio zu tun (ich weiß, dass es in Eclipse einfacher ist)?


Antworten:


301

Anzeigen von Datenbanken aus Android Studio:

Bearbeiten: Um Ihre Datenbank auf einem Emulator anzuzeigen, gehen Sie folgendermaßen vor (für das tatsächliche Gerät scrollen Sie nach unten):

  1. Laden Sie SQLiteBrowser herunter und installieren Sie es .

  2. Kopieren Sie die Datenbank vom Gerät auf Ihren PC:

    • Android Studio-Versionen <3.0 :

      • Öffnen Sie DDMS überTools > Android > Android Device Monitor

      • Klicken Sie links auf Ihr Gerät .
        Sie sollten Ihre Bewerbung sehen: Geben Sie hier die Bildbeschreibung ein

      • Gehen Sie zum Datei-Explorer (eine der Registerkarten rechts) und gehen Sie zu/data/data/databases Geben Sie hier die Bildbeschreibung ein

      • Wählen Sie die Datenbank aus, indem Sie einfach darauf klicken.

      • Gehen Sie zur oberen rechten Ecke des Android Device Monitor-Fensters. Klicken Sie auf die Schaltfläche " Datei vom Gerät ziehen ": Geben Sie hier die Bildbeschreibung ein

      • Es öffnet sich ein Fenster, in dem Sie gefragt werden, wo Sie Ihre Datenbankdatei speichern möchten. Speichern Sie es an einem beliebigen Ort auf Ihrem PC.

    • Android Studio-Versionen> = 3.0 :

      • Öffnen Sie den Gerätedateie-Explorer überView > Tool Windows > Device File Explorer

      • Gehen Sie zu data > data > PACKAGE_NAME > database, wobei PACKAGE_NAME der Name Ihres Pakets ist ( im obigen Beispiel ist es com.Movie ).

      • Klicken Sie mit der rechten Maustaste auf die Datenbank und wählen Sie Save As.... Speichern Sie es an einem beliebigen Ort auf Ihrem PC.

  3. Öffnen Sie nun den von Ihnen installierten SQLiteBrowser . Klicken Sie auf " Datenbank öffnen ", navigieren Sie zu dem Speicherort, an dem Sie die Datenbankdatei gespeichert haben, und öffnen Sie sie . Sie können jetzt den Inhalt Ihrer Datenbank anzeigen.


So zeigen Sie Ihre Datenbank auf Ihrem Mobilgerät an:

Gehen Sie zu diesem Github-Repository und befolgen Sie die Anweisungen in der Readme-Datei, um Ihre Datenbank auf Ihrem Gerät anzeigen zu können. Was Sie bekommen, ist ungefähr so:

Geben Sie hier die Bildbeschreibung ein

Das ist es. Es versteht sich jedoch von selbst, dass Sie alle diese Schritte rückgängig machen sollten, bevor Sie Ihre App veröffentlichen.


2
Das ist für mich die richtige Antwort, denn der Hinweis mit dem sqlitebrowser-Tool ist fantastisch. Danke
Manu Zi

26
/ data wird im Datei-Explorer von Device Monitor nicht erweitert. Ich denke, es ist nicht zugänglich, da das Auflisten von Einträgen im Verzeichnis / data oder / data / data den SuperUser-Zugriff erfordert. Ich kann weiterhin über die ADB-Shell mit su-Berechtigungen auf meine Datenbankdateien zugreifen. Haben Sie eine Idee, wie Sie im Dateimanager su-Zugriff erhalten können?
Saravanabalagi Ramachandran

2
@ZekeDran, ja, die Methode zeigt nur Daten von einem Emulator, nicht von Ihrem Gerät. Ich habe jedoch Schritte hinzugefügt, um die Datenbank auf Ihrem Gerät anzuzeigen. Überprüfen Sie die Bearbeitung
Ojonugwa Jude Ochalifu

11
Es funktioniert, aber der Emulator muss nicht mehr als API 23 ausführen. Wenn Sie API 25 verwenden, gibt es keinen Inhalt im Datei-Explorer
Manos

2
Der Datenbankmanager von Ihrem Github-Link arbeitet für mich! Es hat auch die Möglichkeit, Abfragen zu testen!
Basti12354

198

Stellen Sie über die ADB-Shell eine Verbindung zu Sqlite3 her

Ich habe in Android Studio keine Möglichkeit gefunden, dies zu tun, aber ich greife mit einer Remote-Shell auf die Datenbank zu, anstatt jedes Mal die Datei abzurufen.

Alle Informationen finden Sie hier: http://developer.android.com/tools/help/adb.html#sqlite

1- Wechseln Sie an einer Eingabeaufforderung zu Ihrem Plattform-Tools-Ordner

2- Geben Sie den Befehl ein adb devices, um die Liste Ihrer Geräte abzurufen

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb devices
List of devices attached
emulator-xxxx   device

3- Schließen Sie eine Shell an Ihr Gerät an:

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell

4- Navigieren Sie zu dem Ordner, der Ihre Datenbankdatei enthält:

cd data/data/<your-package-name>/databases/

5- Führen Sie sqlite3 aus, um eine Verbindung zu Ihrer Datenbank herzustellen:

sqlite3 <your-db-name>.db

6- Führen Sie sqlite3-Befehle aus, die Ihnen gefallen, z.

Select * from table1 where ...;

Hinweis: Weitere Befehle zum Ausführen finden Sie unten.

SQLite Cheatsheet

Es gibt einige Schritte, um die Tabellen in einer SQLite-Datenbank anzuzeigen:

  1. Listen Sie die Tabellen in Ihrer Datenbank auf:

    .tables
  2. Listen Sie auf, wie die Tabelle aussieht:

    .schema tablename
  3. Drucken Sie die gesamte Tabelle:

    SELECT * FROM tablename;
  4. Listen Sie alle verfügbaren SQLite-Eingabeaufforderungsbefehle auf:

    .help

17
Ich bekomme die Erlaubnis in Schritt 4 verweigert. Was denkst du?
Adrian Olar

4
Möglicherweise müssen Sie Ihre avd rooten und / oder adb als root in Schritt 3 'root adb -s
emulator

2
Schritt 5: sqlite3 nicht gefunden. Warum?
Sabsab

3
Weil Sie installieren müssen, um zu verwenden
Paul Paca-Vaca Seleznev

12
Ich personnaly bekam Zugriff verweigert beim Versuch , die für den Zugriff auf Datenbanken Ordner, läuft run-as your.package.nameder Trick.
Yann39

83

Ich bin eigentlich sehr überrascht, dass niemand diese Lösung gegeben hat:

Schauen Sie sich Stetho an .

Ich habe Stetho mehrmals für verschiedene Zwecke verwendet (einer davon ist die Datenbankinspektion). Auf der eigentlichen Website wird auch über Funktionen für die Netzwerkinspektion und das Durchsuchen der Ansichtshierarchie gesprochen.

Es ist nur ein kleines Setup erforderlich: 1 Gradle-Abhängigkeits-Addition (die Sie für Produktions-Builds auskommentieren können), ein paar Codezeilen zum Instanziieren von Stetho und ein Chrome-Browser (da Chrome Devtools für alles verwendet werden).

Update : Sie können jetzt Stetho verwenden, um Realm-Dateien anzuzeigen (wenn Sie Realm anstelle einer SQLite-Datenbank verwenden): https://github.com/uPhyca/stetho-realm

Update Nr. 2 : Mit Stetho können Sie jetzt Couchbase-Dokumente anzeigen: https://github.com/RobotPajamas/Stetho-Couchbase

Update Nr. 3 : Facebook konzentriert sich darauf, alle Stetho-Funktionen in sein neues Tool Flipper aufzunehmen. Flipper hat bereits viele der Funktionen, die Stetho hat. Vielleicht ist jetzt ein guter Zeitpunkt, um den Wechsel vorzunehmen. https://fbflipper.com/docs/stetho.html


9
Vielen Dank. Um einfacher zu sein, 1. compile 'com.facebook.stetho:stetho:1.3.1' und 2. fügen Sie diesen Code hinzu Stetho.initializeWithDefaults(this);und 3.chrome://inspect/#devices
Frank Myat Do

2
Ganz einfach, Sie können Daten aus der Datenbank ohne Tools von Drittanbietern im Chrome-Browser anzeigen.
Mateus Viccari

Vergiss nicht, Stetho.initializeWithDefaults(this);sollte in der ApplicationKlasse sein.
Wonsuc

1
Tolles Werkzeug. Ihre App wird auf der Seite #devices aufgeführt, wenn Sie die Einrichtung korrekt durchgeführt haben. Klicken Sie auf Inspizieren und gehen Sie dann zu Ressourcen> Web SQL> [Datenbankname]. Sie können Ihre SQLite-Anweisungen schreiben.
Brad

73

Einfachste Methode, wenn kein Emulator verwendet wird

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit
$ cp /data/data/your.package.name/databases/database_name /sdcard
$ run-as your.package.name # Optional
$ chmod 660 databases/database_name # Optional
$ chmod 660 databases # Optional
$ exit # Optional
$ exit
$ adb pull /sdcard/database_name

Vorsichtsmaßnahmen:

Ich habe das schon eine Weile nicht mehr getestet. Es funktioniert möglicherweise nicht mit API> = 25. Wenn der Befehl cp für Sie nicht funktioniert, versuchen Sie stattdessen einen der folgenden Schritte:

# Pick a writeable directory <dir> other than /sdcard
$ cp /data/data/your.package.name/databases/database_name <dir>

# Exit and pull from the terminal on your PC
$ exit
$ adb pull /data/data/your.package.name/databases/database_name

Erläuterung:

Der erste Block konfiguriert die Berechtigungen Ihrer Datenbank so, dass sie lesbar sind. Auf diese Weise run-askönnen Sie sich als Benutzer Ihres Pakets ausgeben, um die Änderung vorzunehmen.

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit # Closes the shell started with run-as

Als nächstes kopieren wir die Datenbank in ein weltweit lesbares / beschreibbares Verzeichnis. Dies ermöglicht dem adb Pull-Benutzerzugriff.

$ cp /data/data/your.package.name/databases/database_name /sdcard

Ersetzen Sie dann die vorhandenen Lese- / Schreibrechte. Dies ist wichtig für die Sicherheit Ihrer App. Die Berechtigungen werden jedoch bei der nächsten Installation ersetzt.

$ run-as your.package.name
$ chmod 660 databases/database_name 
$ chmod 660 databases
$ exit # Exit the shell started with run-as

Kopieren Sie abschließend die Datenbank auf die lokale Festplatte.

$ exit # Exits shell on the mobile device (from adb shell) 
$ adb pull /sdcard/database_name

4
Ich bekomme Probleme mit dem 2. Befehl: run-as. Ich erhalte 'com.mycompany.myappname' ist unbekannt. Und ja, ich bin mir sicher, dass ich den richtigen Paketnamen verwende!
Scott Biggs

1
@PhuLai hast du ein anderes Gerät ausprobiert? Welches Gerät fällt aus?
dreimal

1
Ich habe es mit Nexus 6P, API 25 versucht. Ich denke, diese Methode funktioniert nicht mit neuen Android-Versionen.
foo

chmod 660 databases/database_namesollte vorher seinchmod 660 databases
Alaa M.

@PhuLai - Ich habe das auch bekommen und dann habe ich versucht, den cpBefehl zu überspringen und nur ein pullvon außen zu machen (nachdem ich die Berechtigungen geändert habe ) und es hat funktioniert ( adb pull data/data/package.name/databases/db_name.db)
Alaa M.

52

In Android Studio 3 und höher wird rechts unten in Android Studio ein Abschnitt "Gerätedateie-Explorer" angezeigt.

Öffnen Sie es, dann können Sie den Dateibaum sehen, Sie können eine Anwendungsdatenbank in diesem Pfad finden:

/data/data/{package_name}/databases/

Geben Sie hier die Bildbeschreibung ein


2
Wenn ich auf die DB-Datei für meine App doppelklicke, werden alle nicht lesbaren Zeichen angezeigt. Mit welchem ​​SQLite-Reader können Sie den DB-Inhalt anzeigen?
Surekha

4
Ich empfehle sqlitebrowser.org kostenlos, Open Source und für alle Plattformen verfügbar.
Ali Zeynali

3
Meine Datei database.db enthält keine Tabellen.
Binil

Der Ordner ist leer. Fehler : run-as: Could not set capabilities: Operation not permitted. Samsung-Gerät: stackoverflow.com/questions/37413667/…
O-9

25

Schließlich fand ich eine einfachste Lösung, die das DDMS nicht öffnen muss.

Eigentlich basiert die Lösung auf dem, was @Distwo erwähnt hat, aber es muss nicht so kompliziert sein.

Denken Sie zunächst an den Pfad Ihrer Datenbankdatei im Gerät, er sollte immer derselbe sein. Zum Beispiel ist meins:/data/data/com.XXX.module/databases/com.XXX.module.database

Zweitens , führen Sie diesen Befehl , die Datenbank - Datei auf Ihren PC zieht

 adb pull /data/data/com.XXX.module/databases/com.XXX.module.database /Users/somePathOnYourPC/

Sie müssen diesen Befehl nur kopieren und speichern, dann können Sie ihn immer wieder verwenden.

Drittens , wenn Sie die Berechtigung verweigert haben oder so, führen Sie einfach adb rootvor dem vorherigen Befehl aus.


9
Laufen adb rootfunktioniert auf meinem Handy nicht. Es wird ausgedruckt adbd cannot run as root in production builds. Nach dem Ausführen adb rootfriert der Pull-Befehl jedoch einfach ein und ich muss ihn manuell stoppen.
LaDude

@ Danieliel versuchen, run-as your.package.namedies sollte "Sie anmelden" als der Benutzer, der zu Ihrer App gehört
m02ph3u5

Verwenden Sie den obigen Befehl, um die DB-Datei auf Ihren Desktop zu kopieren, installieren Sie das SQLiteManager-Browser-Plugin in Firefox und starten Sie das Surfen. 2 Minuten Job!
JaydeepW

Dieser Root-Befehl war für den Emulator. Sie können diesen Befehl nicht einfach ausführen und Ihr 'Telefon' rooten.
Darpan

1
alles ist erledigt, habe die database.db. Datei ABER diese database.db Datei enthält keine Tabellen
Binil

16

Probieren Sie dieses Android Studio Plugin SQLScout . Sie können Ihre App-Datenbank in Echtzeit anzeigen und bearbeiten.

SQLScout

Bearbeiten: Denken Sie daran, es ist ein kostenpflichtiges Plugin, aber haben Sie eine 24-Stunden-Testversion und geeignet für Kopfschmerzen.


17
Es ist ein bezahltes Produkt, das Sie vergessen haben zu erwähnen.
Yshahak

58
nicht wirklich, es hat eine 24-Stunden-Testversion, ich habe meine Zukunft als Entwickler für mehr als 24 Stunden geplant.
Yshahak

Leider ist es nicht kostenlos.
K.Sopheak

Die Probezeit beträgt nur 36 Stunden.
Mahdi Moqadasi

9

Nachdem ich alle Lösungen durchgesehen habe, werde ich vorschlagen

Verwenden Sie Stethos
sehen, wie einfach es ist

Fügen Sie der Datei build.gradle die folgenden Abhängigkeiten hinzu

compile 'com.facebook.stetho:stetho:1.5.0'
compile 'com.facebook.stetho:stetho-js-rhino:1.4.2'

Gehen Sie dann zu Ihrer mainActivity onCreate-Methode und fügen Sie die folgende Zeile hinzu

Stetho.initializeWithDefaults(this);

Dies würde erfordern, dass Sie

import com.facebook.stetho.Stetho;

Jetzt, während Sie die App von Android Studio aus ausführen, öffnen Sie Chrome und geben Sie in der Adressleiste Chrome ein
: // inspect /

Überprüfen Sie auf der Registerkarte Ressourcen> Web-SQL, ob die Datenbank und das Tischspiel in Echtzeit einfach sind


Zimmer ist nur orm, nichts ändert sich in Bezug auf SQL funktioniert es genauso
ShankPossible

9

Am einfachsten ist es, die Android Debug Database Library (7,3.000 Sterne auf GitHub) zu verwenden .

Android-Debug-Datenbank

Vorteile:

  • Schnelle Implementierung
  • Alle Datenbanken und freigegebenen Einstellungen anzeigen
  • Bearbeiten, löschen und erstellen Sie die Datenbankwerte direkt
  • Führen Sie eine beliebige SQLite-Abfrage für die angegebene Datenbank aus
  • Suchen Sie in Ihren Daten
  • Datenbank herunterladen
  • Hinzufügen von benutzerdefinierten Datenbankdateien
  • Gerät muss nicht gerootet werden

Wie benutzt man:

  1. Hinzufügen debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'zu build.gradle (module);
  2. App starten;
  3. Suchen Sie den Debugging-Link in Protokollen (in LogCat) (dh D/DebugDB: Open http://192.168.232.2:8080 in your browserder Link ist anders) und öffnen Sie ihn im Browser.
  4. Viel Spaß mit dem leistungsstarken Debugging-Tool!

Wichtig:

  • Funktioniert leider nicht mit Emulatoren
  • Wenn Sie es über USB verwenden, führen Sie es aus adb forward tcp:8080 tcp:8080
  • Ihr Android-Telefon und Ihr Laptop sollten mit demselben Netzwerk verbunden sein (Wifi oder LAN).

Weitere Informationen finden Sie auf der Bibliotheksseite von GitHub.


1
Dies ist der beste und weniger schmerzhafte Prozess! Vielen Dank Daniel
Sudip

4

Um zu wissen, wo die von Ihnen in Android Studio erstellte SQLite-Datenbank gespeichert ist, müssen Sie die folgenden einfachen Schritte ausführen:

1.Run your application
2.Go to Tools--->Android---->Device Monitor
3.Find your application name in left panel
4.Then click on File Explorer tab
5.Select data folder
6.Select data folder again and find your app or module name
7.Click on your  database name
8.On right-top window you have an option to pull file from device.
9.Click it and save it on your PC
10.Use FireFox Sqlite manager to attach it to your project.

Für weitere Informationen ist dieser Link hilfreich. http://www.c-sharpcorner.com/UploadFile/e14021/know-where-database-is-stored-in-android-studio/

Um Ihre in der DB-Datei vorhandenen Daten anzuzeigen, müssen Sie den SQLite-Browser herunterladen oder ein Plugin desselben in einem beliebigen Browser hinzufügen, damit Sie die Datei im Browser öffnen und Ihre Daten anzeigen können.

Browser herunterladen von http://sqlitebrowser.org/

Hier ist ein Screenshot mit einem Browser, der die Registerdatenbank enthält

Vielen Dank,


4

Einfache und einfache Möglichkeit, Datenbankinhalte in Android Studio anzuzeigen .

#Für Android Studio 4.1 Canary 6 und höher

Sie können die Funktion Database Inspector eines sehr einfachen Android Studio verwenden . Hier können Sie die Datenbanken Ihrer App mit dem neuen Datenbankinspektor überprüfen, abfragen und ändern. Sie können beispielsweise Ihre laufende App debuggen, indem Sie Werte in Ihrer Datenbank ändern und diese Änderungen auf dem Gerät in Echtzeit testen ohne Android Studio zu verlassen .

Stellen Sie Ihre App zunächst auf einem Gerät mit API-Level 26 oder höher bereit und wählen Sie Ansicht> Tool Windows> Datenbankinspektor der Menüleiste .

#Zum Android Studio 4.0 und weniger

Zuerst installieren Datenbank Navigator - Plugin in Android Studio

Geben Sie hier die Bildbeschreibung ein

Zweite starten Sie Android Studio neu

Drittens , speichern Sie die Datenbank in die Standardposition wie: (C: \ Users \ Benutzername \ Dokumente \ Android Studio \ Device \ Emulator oder Gerät \ data \ data \ Paketname \ Datenbanken)

Geben Sie hier die Bildbeschreibung ein

Viertens : Verbinden Sie die gespeicherte Datei dbname_db im Database Navigator

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Geben Sie denselben DB-Dateipfad an, der in Schritt 3 verwendet wird

dh (C: \ Benutzer \ Benutzername \ Dokumente \ AndroidStudio \ DeviceExplorer \ Emulator oder Gerät \ Daten \ Daten \ Paketname \ Datenbanken \ Paket Naem \ Datenbankname_DB)

Zum Schluss testen Sie einfach die DB-Verbindung und öffnen die Konsole und tun, was Sie wollen.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie möchten , DB nur wiederholen Sie den Schritt aktualisieren Zweite und nur speichern oder erfrischen.

HAPPY CODING !!!!!


3
Diese Lösung erfordert viel Aufwand für Ihre tägliche Arbeit. Und bei jeder Änderung in der Datenbank müssen Sie die SQL-Datei neu laden - scheint ein bisschen kompliziert zu sein. Ich bevorzuge die Verwendung einiger Plugins, mit denen die Datenbank auf dem lokalen Server
angezeigt werden

1
Ja, Sie haben Recht, bis es in Database Navigator keine Echtzeit-Datenaktualisierung gibt, hoffe ich, dass die Plugins bald aktualisiert werden.
Nabin

Genau, es wäre eine großartige Funktion
Максим Петлюк

Ja, bis jetzt ist dies der beste Weg für mich, wenn wir Daten abfragen, hinzufügen, bearbeiten und löschen müssen
Nabin

Muss ich immer speichern, um die Datenbank zu aktualisieren? Gibt es einen einfacheren Weg wie in MySQL? Alles, was ich brauche, ist die Schaltfläche "Aktualisieren" zu drücken.
ア ド リ ュ ー ラ イ イ

3

Am einfachsten ist es, Ihr Gerät anzuschließen und Android Studio dann über die Symbolleiste auszuführen:

  1. Ansicht -> Werkzeugfenster -> Gerätedateie-Explorer
  2. Gehen Sie in Daten / Daten und finden Sie Ihr Paket
  3. Suchen Sie die DB-Datei, die Sie durchsuchen möchten, und laden Sie sie herunter
  4. Ich empfehle für dieses Online-Tool: https://sqliteonline.com/ , um die Datenbankdatei zu erkunden

Eine andere Möglichkeit ist die Verwendung der Stetho-Bibliothek:

  1. Fügen Sie Ihrem build.gradle die Stello-Abhängigkeit hinzu:

    kompiliere 'com.facebook.stetho: stetho: 1.5.0'

  2. Setzen Sie die folgende Zeile in Ihr onCreate () Ihrer Anwendungsklasse oder Hauptaktivität:

    Stetho.initializeWithDefaults (this);

  3. Schließen Sie Ihr Gerät an, führen Sie die App aus und rufen Sie die folgende Site in Chrome auf:

    chrome: // inspect / # Geräte

und das ist alles. Sie können jetzt Ihre Tabellen erkunden.

Hinweis: Es wird empfohlen, die Abhängigkeit zu entfernen, bevor Sie zur Produktion übergehen.


2

Wenn Sie Ihre Datenbanken FROM WITHIN ANDROID STUDIO durchsuchen möchten, verwende ich Folgendes:

Gehen Sie zu Dateien / Einstellungen / Plugins und suchen Sie danach:

Geben Sie hier die Bildbeschreibung ein

... Nach dem Neustart von Android Studio können Sie Ihre heruntergeladene Datenbankdatei wie folgt auswählen: Geben Sie hier die Bildbeschreibung ein

... Klicken Sie auf das Symbol "Open SQL Console" und Sie erhalten diese schöne Ansicht Ihrer Datenbank in Android Studio: ! [Bildbeschreibung hier eingeben


2
Also muss ich die ganze Zeit db vom Emulator kopieren?
Maksim Kniazev


1

Dies ist eine sehr alte Frage und meine Antwort ähnelt einigen Antworten oben, ist aber VIEL schneller erledigt. Das folgende Skript ist für Mac, aber ich bin sicher, dass jemand es für Windows ändern kann.

1) Öffnen Sie den Skripteditor auf Ihrem Mac (Sie können einfach in Spotlight nach dem Skripteditor suchen).
2) Kopieren Sie den folgenden Text, fügen Sie ihn ein und ändern Sie ihn mit Ihrem SDK-Pfad, Paketnamen usw. (siehe unten).
3) Speichern Sie das Skript! !

Das ist es! Drücken Sie einfach die Wiedergabetaste oben, um die aktualisierte Datenbankdatei zu erhalten, die sich auf Ihrem Desktop befindet.

Ersetzen Sie die folgenden Dinge im folgenden Skript:

path_to_my_sdk == >> Geben Sie den vollständigen Pfad zu Ihrem SDK ein.
my_package_name == >> Paketname Ihrer Anwendung
myDbName.db == >> Dateiname Ihrer Datenbank

set getLocalDb to "path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases && path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases/myDbName.db && path_to_my_sdk/platform-tools/adb shell run-as my_package_name cp databases/myDbName.db /sdcard/myDbName.db && path_to_my_sdk/platform-tools/adb pull /sdcard/myDbName.db /Users/User/Desktop/myDbName.db"
do shell script getLocalDb

Hoffe das hilft jemandem.


Es hat bei mir funktioniert. Außer Sie müssen den 'Benutzer' in Ihren MacBook-Benutzernamen im Ausgabeverzeichnis /Users/User/Desktop/myDbName.db
Kenny Dabiri

1

Ich weiß, dass die Frage ziemlich alt ist, aber ich glaube, dass dieses Problem immer noch vorhanden ist.

Anzeigen von Datenbanken in Ihrem Browser

Ich habe ein Entwicklungstool erstellt, das Sie als Bibliothek in Ihr Android-App-Projekt integrieren können. Das Tool öffnet einen Server-Socket in Ihrer App, um über einen Webbrowser zu kommunizieren. Sie können Ihre gesamte Datenbank durchsuchen und die Datenbankdatei direkt über den Browser herunterladen.

Geben Sie hier die Bildbeschreibung ein

Die Integration kann über jitpack.io erfolgen:

Projekt build.gradle:

//...
allprojects {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}
//...

App build.gradle:

//...
dependencies {
    //...
    debugCompile 'com.github.sanidgmbh:debugghost:v1.1'
    //...
}
//...

Anwendungsklasse einrichten

Um DebugGhostLib nur in bestimmten Build-Typen oder Produkt-Varianten zu kompilieren, benötigen wir eine abstrakte Anwendungsklasse, die in den speziellen Varianten abgeleitet wird. Legen Sie die folgende Klasse in Ihren mainOrdner (unter java> your.app.package):

public class AbstractDebugGhostExampleApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // Do your general application stuff
    }
}

Nun fügen Sie für Ihren Release-Build-Typ (oder Ihre Produktvariante) die folgende Anwendungsklasse zu Ihrem releaseOrdner (oder Ihrer Produktvariante) hinzu (auch unter java> your.app.package):

public class MyApp extends AbstractDebugGhostExampleApplication {
    @Override
    public void onCreate() {
        super.onCreate();
    }
}

Dies ist die Anwendungsklasse, die dies nicht tut auf DebugGhostLib verweist.

Sagen Sie auch, AndroidManifest.xmldass Sie Ihre eigene Anwendungsklasse verwenden. Dies erfolgt in Ihrem mainOrdner:

<manifest package="demo.app.android.sanid.com.debugghostexample" xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- permissions go here -->
    <application android:name=".MyApp"> <!-- register your own application class -->
        <!-- your activities go here -->
    </application>
</manifest>

Nun fügen Sie für Ihren Debug-Build-Typ (oder Ihre Produktvariante) die folgende Anwendungsklasse zu Ihrem debugOrdner (oder Ihrer Produktvariante) hinzu (auch unter java> your.app.package):

public class MyApp extends AbstractDebugGhostExampleApplication {
    private DebugGhostBridge mDebugGhostBridge;

    @Override
    public void onCreate() {
        super.onCreate();

        mDebugGhostBridge = new DebugGhostBridge(this, MyDatabaseHelper.DATABASE_NAME, MyDatabaseHelper.DATABASE_VERSION);
        mDebugGhostBridge.startDebugGhost();
    }
}

Das Tool erhalten Sie hier .


Dies ist ein gutes Werkzeug, speziell nachdem Stetho aufgehört hat, in neuerem Chrom zu arbeiten
Homayoun Behzadian


1

Öffnen Sie das Gerätedatei-Erkundungsterminal unten im Android Studio.

Öffnen Sie den Ordner Daten , dann innen wieder Daten öffnen Sie den Ordner Daten .

Öffnen Sie die Ordnerdaten

Scrollen Sie in der Liste der Ordner nach unten und suchen Sie den Ordner mit Ihrem Paketnamen. Öffnen Sie den Ordner your.package.name > Database . Sie erhalten Ihren.Datenbanknamen . Klicken Sie mit der rechten Maustaste auf your.databaseName und speichern Sie unter C: / your / Computer / Directory.

Gehen Sie zu C: / your / Computer / Directory und öffnen Sie your.databaseName mit DB SQLite

Geben Sie hier die Bildbeschreibung ein


1

Für Android Studio 3.X.

  1. Ansicht -> Tool Windows -> Gerätedateie-Explorer
  2. Im Datei-Explorer Daten-> Daten-> Kom. (Ihr Anwendungspaket) -> Datenbanken
  3. Klicken Sie mit der rechten Maustaste auf die Datenbank und speichern Sie sie auf Ihrem lokalen Computer. Zum Öffnen der Datei können Sie SQLite Studio verwenden, indem Sie einfach die Datenbankdatei darauf ziehen.

Hier ist der Link zu SQLite Studio: https://sqlitestudio.pl/index.rvt?act=download


1

Mit der Veröffentlichung von Android Studio 4.1 Canary und Dev Preview können Sie ein neues Tool namens verwenden

Datenbankinspektor

DB-Inspektor

Installieren Sie AS 4.1+, führen Sie die App aus, öffnen Sie den Datenbankinspektor. Jetzt können Sie Ihre Datenbankdateien auf der linken Seite des Datenbankinspektorfensters anzeigen und dann die Tabelle auswählen, um den Inhalt anzuzeigen.

Live-Abfragen

Entweder können Sie Ihre Abfragen mit der Option SQL ausführen ausführen, oder wenn Sie Room verwenden , den Datenbankinspektor öffnen und die App ausführen, können Sie die DAO-Abfragen in Ihrer Benutzeroberfläche ausführen, indem Sie auf die Schaltfläche Ausführen links neben der @QueryAnmerkung klicken .

Live-Abfragen


1

Verwenden Sie Android SQLite wie die serverseitige Datenbank

Führen Sie die folgenden Schritte aus:

  1. Suchen Sie das Datenbank- Tool-Fenster und klicken Sie darauf wie unten abgebildet

Geben Sie hier die Bildbeschreibung ein

  1. Klicken Sie auf das Plus- Symbol und wählen Sie Android SQLite wie unten abgebildet aus

Geben Sie hier die Bildbeschreibung ein

  1. Verbinden Sie Ihr Android-Gerät mit Ihrem Computer

  2. Wählen Sie das gewünschte Paket aus und wählen Sie die Datenbank wie im folgenden Bild aus Geben Sie hier die Bildbeschreibung ein

  3. Vor all diesen Schritten müssen Sie sicherstellen, dass Sie die richtige Berechtigung zum Zugriff auf die Datei haben: /data/data//database/databasefile.db

Nach all diesen Schritten sehen Sie den Datenbankinhalt wie folgt:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Das letzte wichtige ist

Sie müssen jedes Mal auf das Aktualisierungssymbol klicken, wenn Datenbankdaten aktualisiert wurden.

Geben Sie hier die Bildbeschreibung ein

Hoffe das ist Arbeit für dich! Danke !


0

Dies ist möglicherweise nicht die Antwort, nach der Sie suchen, aber ich habe keine bessere Möglichkeit, DB vom Telefon herunterzuladen. Ich werde vorschlagen, dass Sie dieses Mini-DDMS verwenden. Es wird jedoch super versteckt sein, wenn Sie nicht auf das sehr kleine Tarnfeld ganz unten links im Programm klicken. (Ich habe versucht, darüber zu schweben, sonst könnte es fehlen.)

Auch das Dropdown-Menü ohne Filter (oben rechts). Es gibt buchstäblich eine Menge verschiedener Möglichkeiten, wie Sie verschiedene Prozesse / Apps anhand von PPID, Namen und vielem mehr überwachen können. Ich habe dies immer verwendet, um das Telefon zu überwachen, aber denken Sie daran, dass ich nicht die Art von Entwicklungsarbeit mache, die zu 120% positiv sein muss. Die Datenbank macht nichts Ungewöhnliches.

Ich hoffe es hilft

Geben Sie hier die Bildbeschreibung ein


0

Ich habe eine Unix-Befehlszeilenautomatisierung dieses Prozesses zusammengestellt und den Code hier eingefügt:

https://github.com/elliptic1/Android-Sqlite3-Monitor

Es ist ein Shell-Skript, das den Paketnamen und den Datenbanknamen als Parameter verwendet, die Datenbankdatei vom angeschlossenen Android-Gerät herunterlädt und das benutzerdefinierte Skript für die heruntergeladene Datei ausführt. Mit einem Unix-Tool wie 'watch' können Sie dann ein Terminalfenster mit einer regelmäßig aktualisierten Ansicht Ihrer Datenbankskriptausgabe öffnen.


0

Ich verwende Windows 7, mein Gerät ist eine emulierte Android-Geräte-API 23. Ich nehme an, es ist für jedes echte Gerät dasselbe, solange es gerootet ist und die API nicht über 23 liegt

Gehen Sie zu Extras -> Android -> Android-Gerätemonitor. Gehen Sie zum Datei-Explorer. In meinem Fall befindet es sich in data / data // app_webview / database / file_0 / 1

Ich muss manuell .db am Ende der Datei mit dem Namen "1" hinzufügen.


0

Es ist eine Kombination aus anderen Antworten mit einem Plus

  1. Installieren Sie den DB Browser für SQLite
  2. Den genauen Speicherort im Gerätedateiexplorer für MyBase.db erhalten Sie beispielsweise "/data/data/com.whatever.myapp/databases/MyBase.db".
  3. Stellen Sie das Projektfenster von Android auf Projekt ein, damit Sie die Dateien sehen können (build.gradle, gradle.properties, ... usw.)
  4. Klicken Sie im Projektfenster mit der rechten Maustaste und wählen Sie Im Terminal öffnen
  5. Im Terminal befinden Sie sich jetzt im Root-Director Ihrer Anwendung von der Festplatte. Führen Sie also Folgendes aus: adb pull /data/data/com.whatever.myapp/databases/MyBase.db
  6. Jetzt haben Sie im Projektfenster Ihres Android Studio eine Datei "MyBase.db"
  7. Doppelklicken Sie in Project auf Ihre Datenbankdatei, und Sie können Ihre Datenbanken jetzt im DB-Browser durchsuchen / bearbeiten
  8. Wenn Sie bereit sind, schreiben Sie einfach Änderungen in den DB-Browser, damit die Datenbanken auf der Festplatte gespeichert werden
  9. Im Terminal mit dem Befehl: adb push MyBase.db /data/data/com.whatever.myapp/databases/MyBase.db senden Sie einfach von der Festplatte an das Gerät der bearbeiteten Datenbank.

0

Befolgen Sie die obigen Schritte, um den Datenbankordner Ihrer App im Android-Geräte-Explorer zu öffnen. Dort sehen Sie sechs Dateien. Die ersten drei werden als Android und die letzten drei als Datenbankname bezeichnet. Sie müssen nur mit den letzten drei Dateien arbeiten und diese drei Dateien an Ihrem bevorzugten Speicherort speichern. Sie können diese Dateien speichern, indem Sie mit der rechten Maustaste auf die Datei klicken und auf die Schaltfläche Speichern unter klicken (so wie ich meine Datenbank als room_database bezeichnet habe und daher drei Dateien als room_database, room_database-shm und room_database-wal bezeichnet werden. Benennen Sie die entsprechende Datei wie folgt um : -

1) room_database to room_database.db 2) room_database-shm to room_database.db-shm 3) room_database-wal to room_database.db-wal

Öffnen Sie nun die erste Datei in einem beliebigen SQLite-Browser und alle drei Dateien werden im Browser ausgefüllt.


0

Schließlich unterstützt Android Studio diese Funktionalität mit der Registerkarte Datenbankinspektor. Sie können Ansichts-, Aktualisierungs- und Abfragevorgänge einfach anwenden. Es befindet sich derzeit nicht im stabilen Kanal, aber Sie können es mit Android Studio 4.1 Canary 5 und höher ausprobieren.

Sie können sehen, wie der Datenbankinspektor aussieht hier

Und die entsprechende Version können Sie hier herunterladen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.