我可以在非root设备上使用sqlite 3吗?

时间:2014-04-11 11:22:34

标签: android sqlite root-access

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

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

2 个答案:

答案 0 :(得分:1)

如果您要求在shell(终端)上使用sqlite3,则不会 - 首先由于权限,您无法访问应用中的数据库文件夹。第二,你的非根电话中可能没有安装sqlite3。

幸运的是,你的nexus是一个nexus设备,是最简单的root设备之一。甚至还有一个工具可以根据任何nexus设备创建 - 获取它here

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

答案 1 :(得分:1)

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

  1. 创建* .bat或* .sh文件并复制以下脚本

    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相同的文件夹中看到复制的数据库 文件