297 votes

Afficher le contenu d'un fichier de base de données dans Android Studio

J'ai utilisé Android Studio pour développer mon application depuis sa sortie.

Tout fonctionne bien jusqu'à ce que, récemment, je doive déboguer et vérifier le fichier de la base de données. Comme je ne sais pas comment voir la base de données directement, lorsque j'ai débogué pour générer le fichier de base de données, je dois exporter le fichier de base de données de mon téléphone vers le PC.

Pour ce faire, je dois ouvrir DDMS > File Explorer . Une fois que j'ai ouvert le DDMS, je dois reconnecter l'USB, et je perds mon fil de débogage. Après avoir vérifié le fichier de base de données, je dois fermer le DDMS et reconnecter l'USB pour revenir au mode de débogage.

C'est tout simplement trop compliqué. Est-ce que quelqu'un a une meilleure façon de faire cela dans Android Studio (je sais que c'est plus facile dans Eclipse) ?

338voto

ojonugwa ochalifu Points 14742

Visualisation des bases de données à partir d'Android Studio :

Option 1 :

  1. Télécharger et installer SQLiteBrowser .

  2. Copiez la base de données de l'appareil sur votre PC :

    • Versions d'Android Studio < 3.0 :

      • Ouvrir DDMS vía Tools > Android > Android Device Monitor

      • Cliquez sur votre appareil à gauche.
        Vous devriez voir votre candidature : enter image description here

      • Aller à Explorateur de fichiers (l'un des onglets à droite), allez à /data/data/databases enter image description here

      • Sélectionner la base de données en cliquant dessus.

      • Allez dans le coin supérieur droit de la fenêtre Android Device Monitor. Cliquez sur l'icône extraire un fichier de l'appareil Le bouton '' : enter image description here

      • Une fenêtre s'ouvre pour vous demander où vous souhaitez enregistrer votre fichier de base de données. Sauvegarde n'importe où sur votre PC.

    • Versions d'Android Studio >= 3.0 :

      • Ouvrir Explorateur de fichiers de l'appareil vía View > Tool Windows > Device File Explorer

      • Aller à data > data > PACKAGE_NAME > database où NOM_PACHE est le nom de votre paquet (il est com.Movie dans l'exemple ci-dessus)

      • Cliquez avec le bouton droit de la souris sur la base de données et sélectionnez Save As... . Sauvegardez-le n'importe où sur votre PC.

  3. Maintenant, ouvrez le SQLiteBrowser que vous avez installé. Cliquez sur ' base de données ouverte ', naviguez jusqu'à l'emplacement où vous avez enregistré le fichier de la base de données, et ouvert . Vous pouvez maintenant visualiser le contenu de votre base de données.


Option 2 :

Aller à este Github et suivez les instructions du fichier readme pour pouvoir visualiser votre base de données sur votre appareil. Vous obtiendrez quelque chose comme ceci :

enter image description here

C'est tout. Il va sans dire que vous devriez annuler toutes ces étapes avant de publier votre application.

207voto

Distwo Points 7079

Connexion à Sqlite3 via ADB Shell

Je n'ai pas trouvé de moyen de le faire dans Android Studio, mais j'accède à la base de données avec un shell distant au lieu de tirer le fichier à chaque fois.

Toutes les informations sont disponibles ici : http://developer.Android.com/tools/help/adb.html#sqlite

1- Allez dans le dossier platform-tools dans une invite de commande

2- Entrer la commande adb devices pour obtenir la liste de vos appareils

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

3- Connectez une coque à votre appareil :

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

4- Naviguez jusqu'au dossier contenant votre fichier db :

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

5- lancez sqlite3 pour vous connecter à votre base de données :

sqlite3 <your-db-name>.db

6- lancez les commandes sqlite3 que vous souhaitez, par exemple :

Select * from table1 where ...;

Remarque : Vous trouverez ci-dessous d'autres commandes à exécuter.

Fiche de contrôle SQLite

Il y a quelques étapes à suivre pour voir les tables d'une base de données SQLite :

  1. Dressez la liste des tables de votre base de données :

    .tables
  2. Dressez la liste de l'aspect de la table :

    .schema tablename
  3. Imprimer l'ensemble du tableau :

    SELECT * FROM tablename;
  4. Liste de toutes les commandes SQLite disponibles :

    .help

85voto

w3bshark Points 1695

Je suis en fait très surpris que personne n'ait proposé cette solution :

Jetez un coup d'œil à Stetho .

J'ai utilisé Stetho à plusieurs reprises pour différentes raisons (notamment pour l'inspection de bases de données). En ce qui concerne l'inspection de la base de données, j'ai utilisé Stetho à plusieurs reprises. site web Ils abordent également les fonctions d'inspection du réseau et de visualisation de la hiérarchie des vues.

Il suffit d'un peu d'installation : 1 ajout de dépendance gradle (que vous pouvez commenter pour les builds de production), quelques lignes de code pour instancier Stetho, et un navigateur Chrome (parce qu'il utilise Chrome devtools pour tout).

Mise à jour : Vous pouvez maintenant utiliser Stetho pour visualiser les fichiers Realm (si vous utilisez Realm au lieu d'une base de données SQLite) : https://github.com/uPhyca/stetho-realm

Mise à jour n°2 : Vous pouvez maintenant utiliser Stetho pour visualiser les documents Couchbase : https://github.com/RobotPajamas/Stetho-Couchbase

Mise à jour n° 3 : Facebook concentre ses efforts sur l'ajout de toutes les fonctionnalités de Stetho dans son nouvel outil, Flipper. Flipper possède déjà de nombreuses fonctionnalités de Stetho. C'est donc peut-être le bon moment pour passer à l'autre outil. https://fbflipper.com/docs/stetho.html

74voto

diedthreetimes Points 2382

Méthode la plus simple lorsque l'on n'utilise pas d'émulateur

$ 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

Mises en garde :

Je n'ai pas testé cela depuis un certain temps. Il se peut que cela ne fonctionne pas sur API>=25. Si la commande cp ne fonctionne pas, essayez plutôt l'une des commandes suivantes :

# 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

Explication :

Le premier bloc configure les autorisations de lecture de votre base de données. Il s'appuie sur run-as qui vous permet de vous faire passer pour l'utilisateur de votre paquet pour effectuer le changement.

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

Ensuite, nous copions la base de données dans un répertoire lisible/écrivable par le monde entier. Cela permet à l'utilisateur adb pull d'accéder à la base de données.

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

Remplacez ensuite les privilèges de lecture/écriture existants. Ceci est important pour la sécurité de votre application, cependant les privilèges seront remplacés lors de la prochaine installation.

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

Enfin, copiez la base de données sur le disque local.

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

68voto

Ali Zeynali Points 733

En Android Studio 3 et au-dessus Vous pouvez voir un "Explorateur de fichiers de l'appareil" Section en bas à droite d'Android Studio.

Ouvrez-la, vous verrez alors l'arborescence des fichiers et vous trouverez une base de données d'application dans ce chemin :

/data/data/{package_name}/databases/

enter image description here

Cliquez avec le bouton droit de la souris sur le fichier db et enregistrez sous... (puis enregistrez sur votre bureau).

Ensuite, en utilisant SQLite sqlitebrowser.org (téléchargez et installez d'abord), cliquez sur Open Database, sélectionnez le fichier *.db sauvegardé, puis sélectionnez l'onglet Browse Data et sélectionnez la table pour voir son contenu. enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X