Android:数据库文件存储在哪里?

Nik*_*lin 44 database sqlite android

我在Android设备上创建了一个SQLite数据库.程序可以读/写数据库,因此显然已经创建了数据库文件.SQLiteDatabase.mPath设置为

db.mPath = "/data/data/dev.client.android/databases/clientDB.db"
Run Code Online (Sandbox Code Playgroud)

但是当我浏览设备上的目录时,我找不到文件clientDB.db.我查看了数据目录,但似乎是空的.

有谁知道这里有什么不对吗?

bro*_*wep 33

在ContextWrapper上尝试getDatabasePath(http://developer.android.com/reference/android/content/ContextWrapper.html).如果您在Activity或Application类中,请尝试:

File dbFile = getDatabasePath(MY_DB_NAME);
Log.i(dbFile.getAbsolutePath());
Run Code Online (Sandbox Code Playgroud)

只是假设它/data/data/my.package.name/databases/是坏的,因为不能保证数据没有被移动到SD卡或者设备/ OS刚刚决定在不同的数据目录上.


Com*_*are 28

如果你的意思是你访问过/data并且没有发现任何内容,并且你正在检查一块普通的Android硬件,那就是预期的.DDMS无权浏览/data.

但是,至少如果您的应用程序是在调试模式下编译的,您可以使用adb pull控制台上的命令直接下载您的文件.

  • @VivekWarde:最简单的解决方案是在模拟器上运行一些测试,你可以*浏览`/ data`. (2认同)

kue*_*000 6

在调试模式下,您可以使用adb shell并浏览目录内容.在shell中,您可以调用sqlite3 /data/data/dev.client.android/databases/clientDB.db来分析数据库.