2

大家好,我知道如何在模拟器上使用 sqlite3 来监控应用程序的数据。可以在真机上使用吗?
当我在我的设备上尝试时,我的设备是 Nexus S,它说找不到 sqlite3。sqlite 3设备必须是root设备吗?我的设备不是根设备。

我知道其他查找数据的机制,例如在 SD 卡中转储 db 文件,然后使用第三方 SQL 浏览器查看数据。

4

2 回答 2

2

你不能使用 Sqlite3 而不是你可以这样做。以下解决方案仅适用于可调试的应用程序。它可能无法在所有设备上正常运行,因为 run-as 命令在某些设备上不起作用,尤其是在 Jelly Bean 上。

  1. ​创建*.bat或*.sh文件并复制以下脚本​​​​</p>

    adb shell run-as [package] chmod 777 /data/data/[package]/databases/

    adb shell run-as [package] chmod 777 data/data/[package]/databases/[db_file_name]

    adb shell cp /data/data/[package]/databases/[db_file_name] /sdcard/

    adb pull /sdcard/[db_file_name]

  2. ​将 [package] 更改为所需的应用程序包

  3. 将 [db_file_name] 更改为所需的数据库名称 运行 bat 文件,您应该会在 bat 文件所在的文件夹中看到复制的数据库

于 2015-05-21T15:10:10.590 回答
1

如果您询问在 shell(终端)上使用 sqlite3,那么不——首先,由于权限,您无法访问应用程序中的数据库文件夹。其次,您的非root手机中可能没有安装sqlite3。

幸运的是,你的 nexus 作为一个 nexus 设备,是最容易 root 的设备之一。甚至还创建了一个工具来根植任何 nexus 设备 - 在这里获取。

生根后,按照这里第三篇文章的说明安装sqlite。

于 2014-04-11T11:48:05.990 回答