2009-06-25 6 views
3

Mon plan est de préremplir une base de données sur un périphérique virtuel, puis d'inclure la base de données dans la distribution de mon application.Comment trouver le fichier de base de données sur un périphérique virtuel Android?

Cependant, je ne trouve pas le fichier de base de données.

Est-ce que c'est sur mon disque dur où? Comment l'obtenir?

J'ai essayé connecter en utilisant adb, je l'ai fait un "ls" et se sont vraiment effrayé par cette liste obscure des répertoires:

sqlite_stmt_journals 
cache 
sdcard 
etc 
system 
sys 
sbin 
proc 
init.rc 
init.goldfish.rc 
init 
default.prop 
data 
root 
dev 

Même quand je cd vers/data/data/votre .package.here/databases Je n'ai toujours pas accès au fichier de base de données actuel. Je ne peux pas utiliser sqlite3 ou tirer dessus. Y a-t-il un moyen de changer les permissions?

Cela fonctionne très bien sur mon émulateur, mais échoue sur le périphérique réel adb pull /data/data//databases/mydb.db.

Répondre

4

Il devrait être dans /data/data/your.package.here/databases, où your.package.here représente le package associé à votre application, tel que défini dans votre fichier AndroidManifest.xml.

+0

-je avoir accès refusé lorsque je tente d'accéder à ce avec adb. Comment accéder au fichier? – gregm

+0

Si votre application est compilée en mode débogage, AFAIK, vous pouvez faire un ADB directement sur le chemin de votre fichier de base de données. Cependant, vous ne pouvez pas afficher les répertoires intermédiaires (par exemple,/data) via ls. Et, si vous êtes compilé en mode production, je suppose que vous ne pouvez même pas accéder à la base de données. – CommonsWare

1

Si vous souhaitez accéder à votre base de données (qui se trouve dans /data/data/your.package.here/databases), assurez-vous que vous êtes un utilisateur root lorsque vous naviguez dans le shell. Pour ce faire, tapez "su" une fois que vous entrez dans l'invite de commande. Lorsque vous êtes un utilisateur root, vous pouvez naviguer où vous le souhaitez.

Questions connexes