我在Android设备上创建了一个SQLite数据库。该程序可以读/写数据库,因此数据库文件显然已经创建。该SQLiteDatabase.mPath设置为Android:数据库文件存储在哪里?
db.mPath = "/data/data/dev.client.android/databases/clientDB.db"
但是当我浏览器上的目录,我不能找到该文件clientDB.db。我查看了数据目录,但它看起来是空的。
有没有人知道这里会出现什么问题?
我在Android设备上创建了一个SQLite数据库。该程序可以读/写数据库,因此数据库文件显然已经创建。该SQLiteDatabase.mPath设置为Android:数据库文件存储在哪里?
db.mPath = "/data/data/dev.client.android/databases/clientDB.db"
但是当我浏览器上的目录,我不能找到该文件clientDB.db。我查看了数据目录,但它看起来是空的。
有没有人知道这里会出现什么问题?
如果您的意思是您访问了/data
,但没有发现任何内容,并且您正在检查一个普通的Android硬件,这是预期的。 DDMS无权浏览/data
。
但是,至少如果您的应用程序是在调试模式下编译的,则可以在控制台上使用adb pull
命令直接下载文件。
在调试模式下,您可以使用adb shell并浏览目录内容。在shell中,您可以调用sqlite3 /data/data/dev.client.android/databases/clientDB.db来分析数据库。
尝试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刚刚决定在不同的数据目录。
在我的设备文件管理器中我搜索`filename.sqlite`,但我没有得到任何结果?你能说出原因吗? – 2014-07-25 08:51:21
@VivekWarde:您无法浏览生产设备上的内部存储。 – CommonsWare 2014-07-25 10:08:07