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 提取数据库文件。
- 通过 USB 连接 phone
- 使用 adb shell
- 输入
run-as *mypackage*.*app-name*
- 您在
/data/data/*mypackage*.*app-name*
文件夹中
- cd 进入数据库文件夹
- 复制数据库文件(即
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
我想在我的 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 提取数据库文件。
- 通过 USB 连接 phone
- 使用 adb shell
- 输入
run-as *mypackage*.*app-name*
- 您在
/data/data/*mypackage*.*app-name*
文件夹中 - cd 进入数据库文件夹
- 复制数据库文件(即
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