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

Fat*_*tie 5 android android-emulator android-studio android-device-monitor

我在Mac上使用Android Studio,所有内容都在最新版本上.说我这样做:

SQLiteDatabase db;
db = yourAppContext.openOrCreateDatabase("db.sqlite3", Context.MODE_PRIVATE, null);
Run Code Online (Sandbox Code Playgroud)

感谢此链接:

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

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

在此输入图像描述

好东西.

接下来,您可以单击"拉"按钮,然后拉出该文件以在Mac上说出您的桌面.真棒.

但是,你如何在Mac上实际找到文件夹(示例中的"数据库")

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

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

l'L*_*L'l 12

adb(Android Debug Bridge)需要通过命令行访问仿真器设备的文件系统.如果您尚未安装它,可以在此处下载.

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

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

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

列出模拟器设备:

$ adb devices
List of devices attached
emulator-5554  device
Run Code Online (Sandbox Code Playgroud)

连接到设备adb shell:

$ adb -s emulator-5554 shell
Run Code Online (Sandbox Code Playgroud)

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

adb shell
$ cd /data/data/<your app package name>/databases/
Run Code Online (Sandbox Code Playgroud)

列出目录中的文件databases:

adb shell
$ ls
db.sqlite3
Run Code Online (Sandbox Code Playgroud)

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

adb pull /data/data/com.yourpackagename.app/databases/db.sqlite3 /local/save/path
Run Code Online (Sandbox Code Playgroud)

如果拒绝权限,则以root模式运行ADB:

adb root
Run Code Online (Sandbox Code Playgroud)

更多信息: