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

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

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

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

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

【问题讨论】:

    标签: database android sqlite


    【解决方案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 的终端选项卡中键入此命令,但它无法识别该命令。我计算机上的应用程序目录是控制台中的路径。这是我应该输入的地方吗?
      猜你喜欢
      • 2011-01-06
      • 1970-01-01
      • 2014-02-16
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      • 2019-08-27
      相关资源
      最近更新 更多