5

我在 Mac 上使用 Android Studio,一切都在最新版本上。说我这样做:

SQLiteDatabase db;
db = yourAppContext.openOrCreateDatabase("db.sqlite3", Context.MODE_PRIVATE, null);

感谢这个链接:

http://www.c-sharpcorner.com/UploadFile/e14021/know-where-database-is-stored-in-android-studio/

在模拟器运行时,可以准确地找到保存实际 SQLite3 数据库的目录:

在此处输入图像描述

好东西。

接下来,您可以单击“拉动”按钮,然后拉动该文件以说出您在 Mac 上的桌面。惊人的。

但是,您如何在 Mac 上真正找到该文件夹​​(示例中的“数据库”) ?

即,使用普通的 shell 终端,我想“cd”到那里。

在Mac主机的普通'nix文件结构中,那个文件夹在哪里?

4

2 回答 2

13

adb(Android 调试桥)需要通过命令行访问模拟器设备的文件系统。如果您还没有安装它,您可以在这里下载

安装后,只需使用一些命令即可查看/访问文件:

  1. 打开Terminal.app.
  2. 执行adb devices(这应该列出您当前的模拟器设备)。
  3. 使用 连接到仿真器设备adb shell
  4. 将目录更改cd为您的应用数据库所在的文件夹。
  5. 键入ls以查看存在哪些数据库文件。

在终端中,它看起来像这样

列出模拟器设备:

$ adb devices
List of devices attached
emulator-5554  device

连接到设备adb shell

$ adb -s emulator-5554 shell

将目录( )更改为它的数据库位置(包名称通常为):cdSQLite3com...

adb shell
$ cd /data/data/<your app package name>/databases/

列出目录中的文件databases

adb shell
$ ls
db.sqlite3

这真的是它的基础!也可以push/pull将文件从模拟器(远程)复制到您的(本地)文件系统:

adb pull /data/data/com.yourpackagename.app/databases/db.sqlite3 /local/save/path

如果 Permission 被拒绝,以 root 模式运行 ADB:

adb root

更多信息:

于 2017-01-11T04:33:12.990 回答
2

或者您可以使用此命令提取数据库

adb pull /data/data/com.application/databases/ 例如 adb pull /data/data/com.zameen.propforce/databases/

其次,除非您的设备已植根或您正在使用模拟器,否则该文件夹无法访问

如果您的设备已植根。您通过 adb su 命令获得超级用户访问权限,然后您可以转到此目录

于 2017-01-11T04:41:47.890 回答