【问题标题】:pull a database from genymotion emulator on to local disk将数据库从 genymotion 模拟器拉到本地磁盘
【发布时间】:2013-12-02 11:57:08
【问题描述】:

我正在为我的开发使用 genymotion,当我创建数据库时,我在 genymotion 模拟器的 DDMS 文件夹中看不到它。

在谷歌上搜索时,我可以在 adb shell 上看到数据库,但不知道如何将数据库拉到本地磁盘以查看数据。

谁能告诉我这个过程。

提前致谢

【问题讨论】:

    标签: android sqlite adb genymotion


    【解决方案1】:

    试用 Genymotion 2.3:

    adb shell su -c cp /data/data/<package.name>/databases/<database.name> /sdcard/
    

    以及其他版本:

    adb shell su 0 cp /data/data/<package.name>/databases/<database.name> /sdcard/
    

    然后从设备中拉出来

    adb pull /sdcard/<database.name>
    

    (已编辑,2.3 和 4.3 中 su 的表述不一样)

    【讨论】:

    • 感谢您的回复 slvn 而不是 pull 命令我可以直接进入我硬盘上的文件夹并可以选择文件。我觉得这是更简单的方法....
    • 取决于你是否喜欢共享文件夹:)
    【解决方案2】:

    您可以(也)通过将数据复制到共享文件夹来将数据从设备中提取到主机:

    adb shell su 0 cp /data/data/<package.name>/databases/<database.name> /mnt/shared/
    

    Here is如何设置共享文件夹:

    • 转到您的 VirtualBox VM 设置/共享文件夹选项卡
    • 将共享文件夹添加到您要共享的文件夹中,并勾选“自动挂载”选项
    • 像往常一样从 Genymotion 软件启动虚拟机
    • 您的共享文件夹在 /mnt/shared 目录中可用(支持多个共享文件夹)

    【讨论】:

    • 感谢 eyal 的回复...您的解决方案有效,但我们需要稍作改动,删除 -c,其余一切都很好。
    • 我已经编辑了帖子,实际上您需要将超级用户(O)的ID放在su字后才能使其工作。
    • 经过几次测试,根据您的Genymotion模板版本,su命令似乎不一样。所以,有时你必须使用adb shell su cp...adb shell su -c cp...adb shell su 0 cp...
    • Np eyal... 我会记下您的建议并在需要时使用它。
    【解决方案3】:

    使用 adb 命令拉取数据库

     adb pull /data/data/com.android.packagename/databases.datebase.db
    

    数据库将被拉到终端指向的当前位置

    然后使用 sqliteman 打开数据库

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 2020-11-27
      相关资源
      最近更新 更多