如何在Android虚拟设备上找到数据库文件?

时间:2009-06-25 00:38:08

标签: database android

我的计划是在虚拟设备上预填充数据库,然后在我的应用程序的分发中包含数据库。

但是,我找不到数据库文件。

它在我的硬盘上有哪些地方? 我怎么得到它?

我尝试使用adb连接,我做了一个“ls”然后被这个不起眼的目录列表吓到了:

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

即使我转到/data/data/your.package.here/databases,我仍然无法访问实际的数据库文件。我不能使用sqlite3或拉它。有没有办法改变权限?

这在我的模拟器上工作正常,但在实际设备上失败了 adb pull /data/data//databases/mydb.db。

3 个答案:

答案 0 :(得分:4)

应该在/data/data/your.package.here/databases中,其中your.package.here表示与您的应用相关联的包,如AndroidManifest.xml文件中所定义。

答案 1 :(得分:1)

如果要导航到数据库(位于/data/data/your.package.here/databases),请确保在导航shell时是root用户。为此,请在输入命令提示符后键入“su”。当您是root用户时,您可以在任何地方导航。

答案 2 :(得分:1)

下面的博文提供了如何查找和访问数据库的良好解决方案。该文章讨论了如何使用busybox(在命令行中提供有用的实用程序)来查找数据库,并提供了一些有关如何使用sqlite3访问数据库和表的有用示例。

http://davanum.wordpress.com/2007/12/11/android-how-to-poke-around-the-sqlite3-databases/