87 votes

Comment utiliser ADB dans Android Studio pour visualiser une base de données SQLite ?

J'ai besoin de visualiser ma base de données SQLite mais je ne sais pas comment faire. Je suis allé sur http://www.sqlite.org/download.html et téléchargé le shell de ligne de commande pour mon système d'exploitation, mais lorsque je lance le programme et que je tape adb ... Je reçois des erreurs.

Remarque : j'utilise Android Studio, donc je suppose que je n'ai pas besoin d'installer quoi que ce soit d'autre, car je me souviens qu'Android Studio disait avoir tous les outils SDK nécessaires.

169voto

Dheeraj Bhaskar Points 5244

Le moyen le plus simple : Se connecter à 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.

Retrouvez toutes les informations ici : http://developer.Android.com/tools/help/sqlite3.html

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

2- Entrez 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 un shell à votre appareil :

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

4a- Vous pouvez contourner cette étape sur un appareil enraciné.

run-as <your-package-name> 

4b- Naviguez vers le dossier contenant votre fichier db :

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

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

sqlite3 <your-db-name>.db

6- Exécutez les commandes sqlite3 que vous aimez, par exemple :

Select * from table1 where ...;

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

Aide-mémoire SQLite

Il y a quelques étapes pour voir les tables dans une base de données SQLite :

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

    .tables
  2. Indiquez à quoi ressemble la table :

    .schema tablename
  3. Imprimer le tableau entier :

    SELECT * FROM tablename;
  4. Liste de toutes les commandes SQLite disponibles à l'invite :

    .help

76voto

aknay Points 121

Le moyen le plus simple pour moi est d'utiliser Android Device Monitor pour obtenir le fichier de base de données et SQLite DataBase Browser pour visualiser le fichier tout en utilisant Android Studio pour programmer Android.

1) Exécuter et lancer l'application de la base de données avec l'émulateur Android depuis Android Studio. (J'ai inséré quelques données dans l'application base de données pour vérifier)

2) Exécutez Android Device Monitor. Comment l'exécuter ? [your_folder] > sdk >tools . Vous pouvez voir monitor.bat dans ce dossier. shift + right click dans le dossier et sélectionnez " Open command window here ". Cette action lancera l'invite de commande. tapez monitor et Android Device Monitor sera lancé.

3) Sélectionnez l'émulateur que vous utilisez actuellement. Puis allez à data>data>[your_app_name]>databases

4) Cliquez sur l'icône (située dans le coin supérieur droit) (survolez l'icône et vous verrez "tirer un fichier de l'appareil") et enregistrez où vous voulez

5) Lancez SQLite DataBase Browser. Faites glisser et déposez le fichier que vous venez d'enregistrer dans ce navigateur.

6) Allez sur Browse Data et sélectionnez votre tableau à afficher.

enter image description hereenter image description here

15voto

hoss Points 1125

Le problème que vous rencontrez est courant et n'est pas bien expliqué dans la documentation. Les appareils normaux n'incluent pas le binaire de la base de données sqlite3, ce qui explique l'erreur que vous obtenez. L'Emeulator Android, OSX, Linux (s'il est installé) et Windows (une fois installé) contiennent le binaire qui vous permet d'ouvrir une base de données localement sur votre machine.

La solution de contournement consiste à copier la base de données de votre appareil sur votre machine locale. Ceci peut être réalisé avec ADB mais nécessite un certain nombre d'étapes.

Avant de commencer, vous aurez besoin de quelques informations :

  • chemin du SDK (s'il n'est pas inclus dans votre environnement OS)
  • votre <package name> par exemple, com.example.application
  • a <local path> pour placer votre base de données, par exemple ~/Desktop o %userprofile%\Desktop

Ensuite, vous devrez comprendre dans quel terminal chaque commande est écrite. Le premier caractère dans les exemples ci-dessous n'est pas tapé mais vous permet de savoir dans quel shell nous sommes :

  • > = l'invite de commande de votre système d'exploitation
  • $ = Commande shell ADB Prompt
  • ! = shell ADB comme invite de commande de l'administrateur
  • %

Ensuite, entrez les commandes suivantes à partir du terminal ou de la commande (n'entrez pas le premier caractère ou le texte dans le champ () )

> adb shell
$ su
! cp /data/data/<package name>/Databases/<database name> /sdcard
! exit
$ exit
> adb pull /sdcard/<database name> <local path>
> sqlite3 <local db path>
% .dump
% .exit  (to exit sqldb)

Il s'agit d'un moyen très détourné de copier la base de données sur votre machine locale et de lire localement la base de données. Il existe des SO et d'autres ressources expliquant comment installer le binaire sqlite3 sur votre appareil à partir d'un émulateur, mais pour un accès unique, ce processus fonctionne.

Si vous avez besoin d'accéder à la base de données de manière interactive, je vous suggère d'exécuter votre application dans un émulateur (qui possède déjà sqlite3) ou installation de sqlite sur vos périphériques /xbin path .

11voto

Willi Mentzel Points 7681
  1. Ouvrez un terminal
  2. cd <ANDROID_SDK_PATH> (pour moi, sous Windows cd C:\Users\Willi\AppData\Local\Android\sdk )
  3. cd platform-tools
  4. adb shell (cela ne fonctionne que si un seul émulateur est en cours d'exécution)
  5. cd data/data
  6. su (obtenir des privilèges de super utilisateur)
  7. cd <PACKAGE_NAME>/databases
  8. sqlite3 <DB_NAME>
  9. émettre des instructions SQL ( important : les terminer avec ; sinon l'instruction n'est pas émise et elle passe à une nouvelle ligne).

Note : Utilisez ls (Linux) ou dir (Windows) si vous avez besoin de lister le contenu des répertoires.

8voto

log1000 Points 185

Ce qu'il mentionne lorsque vous tapez adb ?

step1. >adb shell
step2. >cd data/data
step3. >ls -l|grep "your app package here"
step4. >cd "your app package here"
step5. >sqlite3 xx.db

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