我的计划是在虚拟设备上预填充数据库,然后在我的应用程序的分发中包含数据库。
但是,我找不到数据库文件。
它在我的硬盘上有哪些地方? 我怎么得到它?
我尝试使用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。
答案 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/