Mac、Android Studio、Emulator、SQLite 数据库 - 实际找到目录?

Mac, Android Studio, Emulator, SQLite database - actually find directory?

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

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

多亏了这个link:

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

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

很棒的东西。

接下来您可以单击“拉取”按钮,并将该文件拉取到 Mac 上的桌面。厉害了。

但是,您如何真正找到那个文件夹(示例中的"databases"),在您的Mac上?

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

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

adb (Android Debug Bridge) is needed to access an emulator device's filesystem via the command-line . If you don't already have it installed you can download it here

安装后,只需使用一些命令 view/access 文件即可:

  1. Open Terminal.app.
  2. Execute adb devices (this should list your current emulator devices).
  3. Connect to the emulator device with adb shell .
  4. Change directory cd to the folder where your app databases are.
  5. Type ls to see which database files are present.

在终端中看起来像这样:

列出模拟器设备:

$ adb devices
List of devices attached
emulator-5554  device

连接到设备 adb shell:

$ adb -s emulator-5554 shell

更改目录 (cd) 到它的 SQLite3 数据库位置(包名称通常是 com...):

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

如果权限被拒绝运行 ADB 处于根模式:

adb root

更多信息:

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

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

其次,除非您的设备已 root 权限 或者您正在 使用模拟器

,否则无法访问该文件夹

如果您的设备已获得 root 权限。你通过 adb su 命令获得超级用户访问权限然后你可以去这个目录