10
votes

Comment pouvez-vous accéder au contenu des bases de données d'émulateurs Android?

J'ai lu la réponse à une question sur la manière d'accéder au contenu des bases de données, mais je ne peux pas sembler le faire fonctionner sur ma machine. Voici le journal shell:

C:\android-sdk-windows\tools>adb -s emulator-5554 shell
# sqlite3 /data/data/com.android.demo.notepad2/databases/notes
sqlite3 /data/data/com.android.demo.notepad2/databases/notes
SQLite version 3.5.9
Enter ".help" for instructions
sqlite> .tables
.tables
sqlite> ^C
C:\android-sdk-windows\tools>


2 commentaires

"SQLite fait simplement écho à mes commandes, même si le navigateur de fichier Eclipse me dit qu'il existe. Si j'utilise l'outil SQLITE3 et utilisez" .tables "Les commandes sont acceptées." Ces deux phrases semblent dire les choses exactes exactes: elle fonctionne simultanément et ne fonctionne pas. Pourriez-vous s'il vous plaît clarifier ce que vous voulez dire ici? De plus, si vous formatez votre code source et vos listes de sortie à l'aide de l'icône "Échantillon de code" dans la barre d'outils (101 010), ils nous seront un peu plus faciles à lire.


Je veux dire, si j'exécute le code ci-dessus (dans la coquille Android), il est en échographie, cependant, si j'exécute l'outil SQLITE3 de la ligne de commande Windows et créez une base de données, toutes les commandes fonctionnent comme prévu. Merci beaucoup :)


4 Réponses :


13
votes

Je peux vous dire que cela fonctionne bien pour moi sur Android 2.0.1:

$ adb shell
# cd /data/data/apt.tutorial   
# ls
lib
databases
shared_prefs
# cd databases
# ls
lunchlist.db
# sqlite3 lunchlist.db
SQLite version 3.5.9
Enter ".help" for instructions
sqlite> .tables
android_metadata  restaurants     
sqlite> .exit
# exit


0 commentaires

3
votes

Si vous souhaitez émettre des instructions SQLITE3 de la ligne de commande, utilisez quelque chose comme xxx

Les avantages évidents sont que vous pouvez compter sur votre historique de shell et vous pouvez l'utiliser dans des scripts.


0 commentaires

1
votes

J'ai eu le même problème et j'ai découvert que contrairement à la documentation que vous ne devriez pas mettre l'extension "db" sur le nom du fichier de base de données.

Remarque: J'utilise Win7 et 2.1 Emulator.


0 commentaires

0
votes

J'avais le même problème, j'ai passé presque une heure, en affectant ici de manière à ce que cela enregistre le temps de quelqu'un d'autre, vérifiez si vous avez donné le nom de fichier correct avec l'extension, il existe deux fichiers dans le dossier de bases de données MYDB.DB et mydb.db-journal et quand j'ai couru
"sqlite3 /data/data/com.my.package/databases/mydb"
et
.Table

Indice Nothing, SQLite3 a créé un nouveau DB avec le nom MyDB, il n'a pas ouvert MyDB.DB


0 commentaires