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

时间:2017-01-06 02:34:36

标签: android android-studio android-emulator android-device-monitor

我在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数据库的目录:

enter image description here

好东西。

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

但是,您如何在Mac上找到字面上的文件夹(示例中为“数据库”),

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

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

2 个答案:

答案 0 :(得分:12)

需要

adb (Android Debug Bridge)才能通过命令行访问仿真器设备的文件系统。如果您尚未安装它,则可以download it here

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

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

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

列出模拟器设备:

$ 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

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

adb root

更多信息:

答案 1 :(得分:2)

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

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

其次,除非您的设备 rooted 使用模拟器

,否则无法访问该文件夹

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