2009-07-09 63 views
43

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

db.mPath = "/data/data/dev.client.android/databases/clientDB.db" 

但是当我浏览器上的目录,我不能找到该文件clientDB.db。我查看了数据目录,但它看起来是空的。

有没有人知道这里会出现什么问题?

回答

28

如果您的意思是您访问了/data,但没有发现任何内容,并且您正在检查一个普通的Android硬件,这是预期的。 DDMS无权浏览/data

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

+0

在我的设备文件管理器中我搜索`filename.sqlite`,但我没有得到任何结果?你能说出原因吗? – 2014-07-25 08:51:21

+0

@VivekWarde:您无法浏览生产设备上的内部存储。 – CommonsWare 2014-07-25 10:08:07

6

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

33

尝试ContextWrapper上的getDatabasePath(http://developer.android.com/reference/android/content/ContextWrapper.html)。如果你是在一个活动或应用程序级的尝试:

File dbFile = getDatabasePath(MY_DB_NAME); 
Log.i(dbFile.getAbsolutePath()); 

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