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

Posted

技术标签:

【中文标题】Android:数据库文件存储在哪里?【英文标题】:Android: Where are database files stored? 【发布时间】:2010-11-09 11:10:25 【问题描述】:

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

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

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

有人知道这里出了什么问题吗?

【问题讨论】:

【参考方案1】:

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

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

假设它在 /data/data/my.package.name/databases/ 中是错误的,因为不能保证数据没有被移动到 SD 卡或设备/操作系统刚刚决定使用不同的数据目录。

【讨论】:

【参考方案2】:

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

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

【讨论】:

在我的设备文件管理器中我搜索了filename.sqlite,但没有得到任何结果?你能说出原因吗? @VivekWarde:您无法在生产设备上浏览内部存储。 那么我在哪里可以看到我的 sqlite 数据库而不是 assets 文件夹 @VivekWarde:最简单的解决方案是在模拟器上运行一些测试,您可以浏览/data【参考方案3】:

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

【讨论】:

我尝试在调试应用程序时在 Android Studio 的终端选项卡中键入此命令,但它无法识别该命令。我计算机上的应用程序目录是控制台中的路径。这是我应该输入的地方吗?

以上是关于Android:数据库文件存储在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

在Android上,我在哪里存储将在卸载应用时自行删除的文件

Android 类似浏览器的实现,我在哪里缓存图像

将 PWA 应用程序数据存储在 OneDrive 上的哪里,用户无法访问?

Unity存储数据的各种路径

android studio 配置文件在哪里

把我的 php 文件放在哪里?