flutter sqlite数据库存放位置

flutter sqlite database storage location

我想在我的 flutter 应用程序中有一个 SQLite 数据库,所以我遵循了这本 flutter 食谱:https://flutter.dev/docs/cookbook/persistence/sqlite

我使用以下路径打开数据库:join(await getDatabasesPath(), 'doggie_database.db') 与教程完全一样。我 运行 我 Android phone(不是模拟器)上的应用程序。

现在我想在我的 PC 上查看数据库文件,但我在 phone 上找不到该文件。

我调试了上面的语句,它解析为 /data/user/0/*mypackage*.*app-name*/databases/doggie_database.db,但是我找不到文件夹 /data(只有 Android/data)或者我的文件管理器中的文件都没有我的 phone 也不在我的电脑上。

文件在哪里以及如何从我的 phone 中提取它?

我找到了适用于 Android 的解决方案。可以使用 adb 提取数据库文件。

  1. 通过 USB 连接 phone
  2. 使用 adb shell
  3. 输入run-as *mypackage*.*app-name*
  4. 您在 /data/data/*mypackage*.*app-name* 文件夹中
  5. cd 进入数据库文件夹
  6. 复制数据库文件(即cp doggie_database.db /storage/self/primary/Documents

参考这两篇文章:

https://denniskubes.com/2012/09/25/read-android-data-folder-without-rooting/

https://blog.shvetsov.com/2013/02/access-android-app-data-without-root.html