118 votes

Où l'émulateur Android stocke-t-il la base de données SQLite ?

Je travaille sur une application Android qui stocke des données dans une base de données SQLite. Ma question est la suivante : où ce fichier de base de données est-il stocké sur le système de fichiers lorsque vous utilisez un émulateur ?

J'ai vu qu'il est stocké dans

/data/data/package_name/databases

mais j'ai besoin de savoir à quel endroit du disque dur de ma machine locale il se trouve. La base de données persiste lors de plusieurs exécutions de l'émulateur, même après avoir éteint la machine, donc elle ne peut pas simplement résider dans la RAM...

123voto

rogcg Points 4325

Une mise à jour mentionnée dans les commentaires ci-dessous :

Vous n'avez plus besoin d'être dans la perspective DDMS, il vous suffit d'ouvrir l'explorateur de fichiers depuis Eclipse. Fenêtre > Afficher la vue > Autre... Il semble que l'application n'ait pas besoin d'être en cours d'exécution, je peux naviguer dans le contenu des fichiers des différentes applications. J'utilise la version 1.0.29 de l'ADB. ADB version 1.0.29


Vous pouvez aussi essayer l'ancienne approche :

Ouvrez la perspective DDMS dans votre IDE Eclipse

( Fenêtre > Open Perspective > Autres > DDMS )

et le plus important :

VOTRE APPLICATION DOIT ÊTRE EN COURS D'EXÉCUTION POUR QUE VOUS PUISSIEZ VOIR LA HIÉRARCHIE DES DOSSIERS ET DES FICHIERS .

Ensuite, dans le Onglet Explorateur de fichiers vous suivrez le chemin :

data > data > your-package-name > databases > your-database-file .

Sélectionnez ensuite le fichier, cliquez sur le bouton icône de disquette dans le coin droit de l'écran pour télécharger l'application .db fichier. Si vous souhaitez télécharger un fichier de base de données vers l'émulateur, vous pouvez cliquer sur le bouton icône du téléphone (à côté de l'icône du disque) et choisissez le fichier à télécharger.

Si vous voulez voir le contenu du .db Je vous conseille d'utiliser SQLite Database Browser, que vous pouvez télécharger. aquí .

PS : Si vous voulez voir la base de données à partir d'un appareil réel, vous devez Rooter votre téléphone.

5 votes

Si quelqu'un se pose la question, il faut cliquer sur l'onglet "Explorateur de fichiers".

0 votes

Bonjour cyberrog, j'ai trouvé le fichier de la base de données mais pouvez-vous me dire comment ouvrir ce fichier ? ou comment voir son contenu ?

4 votes

@NileshNikumbh Sélectionnez le fichier, puis cliquez sur l'icône de la disquette et sélectionnez l'endroit où vous souhaitez le stocker. Vous devez également télécharger le navigateur SQLite. sourceforge.net/projets/sqlitebrowser Après l'avoir installé, il suffit d'ouvrir le fichier .db, de choisir l'onglet Parcourir les données et la colonne que vous voulez voir.

58voto

Konklone Points 1744

Le système de fichiers de l'émulateur ne correspond pas à un répertoire de votre disque dur. L'image disque de l'émulateur est stockée sous la forme d'un fichier image, que vous pouvez gérer via Eclipse (recherchez l'icône ressemblant à G1 dans la barre d'outils), ou via le binaire de l'émulateur lui-même (exécutez "emulator -help" pour une description des options).

Il est préférable d'utiliser adb à partir de la ligne de commande pour se connecter à un émulateur en cours d'exécution. Si vous pouvez obtenir le répertoire et le nom de fichier spécifiques, vous pouvez faire un "adb pull" pour extraire le fichier de base de données de l'émulateur et le transférer sur votre disque dur normal.

Editer : Suppression de la suggestion que cela fonctionne aussi pour les appareils non rootés - cela ne fonctionne que pour les émulateurs, et les appareils pour lesquels vous utilisez adb en tant que Root.

6 votes

J'ai récupéré la base de données via ddms depuis Eclipse. J'ai fait mes changements, puis j'ai repoussé. Cela a fonctionné comme un charme.

0 votes

@I82Ça a beaucoup marché pour moi aussi, changez la perspective d'eclipse en ddms et vous pourrez alors obtenir le fichier de données de là.Merci.

0 votes

Mise à jour 2013 : Sur un appareil Jelly Bean, vous ne pouvez pas adb pull (même avec la exacto ), si vous n'êtes pas Racine .

7voto

Tadas Valaitis Points 310

J'ai écrit un simple script bash script, qui extrait la base de données de l'appareil Android vers votre ordinateur (utilisateurs Linux, Mac).

nom de fichier:android_db_move.sh utilisation : android_db_move.sh com.example.app nom_du_db.db

#!/bin/bash

REQUIRED_ARGS=2
ADB_PATH=/Users/Tadas/Library/sdk/platform-tools/adb
PULL_DIR="~/"

if [ $# -ne $REQUIRED_ARGS ]
    then
        echo ""
        echo "Usage:"
        echo "android_db_move.sh [package_name] [db_name]"
        echo "eg. android_db_move.sh lt.appcamp.impuls impuls.db"
        echo ""
    exit 1
fi;

echo""

cmd1="$ADB_PATH -d shell 'run-as $1 cat /data/data/$1/databases/$2 > /sdcard/$2' "
cmd2="$ADB_PATH pull /sdcard/$2 $PULL_DIR"

echo $cmd1
eval $cmd1
if [ $? -eq 0 ]
    then
    echo ".........OK"
fi;

echo $cmd2
eval $cmd2

if [ $? -eq 0 ]
    then
    echo ".........OK"
fi;

exit 0

4voto

caligari Points 897

Les bases de données sont stockées sous forme de fichiers SQLite dans /data/data/PACKAGE/databases/DATABASEFILE où :

Vous pouvez voir (copier de/vers le système de fichiers) le fichier de la base de données dans l'émulateur en sélectionnant La perspective DDMS dans l'onglet Explorateur de fichiers.

0voto

Techrefresh Points 23

Vous pouvez visiter ce site, où vous pouvez voir la description étape par étape.

mais vous pouvez télécharger le fichier *.jar à partir d'ici :

com.questoid.sqlitemanager_1.0.0.jar Fichier ici

puis suivre les autres étapes indiquées dans le premier lien

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