大家好,我知道如何在模拟器上使用sqlite3来监控应用程序的数据。是否可以在真实设备上使用?
当我尝试使用我的设备时,我的设备是Nexus S,它说没有找到sqlite3。 sqlite 3设备是否必须是root用户?我的设备不是root设备。
我知道在SD卡中查找转储数据库文件的数据的其他机制,然后使用第三方SQL浏览器查看数据。
答案 0 :(得分:1)
如果您要求在shell(终端)上使用sqlite3,则不会 - 首先由于权限,您无法访问应用中的数据库文件夹。第二,你的非根电话中可能没有安装sqlite3。
幸运的是,你的nexus是一个nexus设备,是最简单的root设备之一。甚至还有一个工具可以根据任何nexus设备创建 - 获取它here。
生根后,按照第三篇文章here上的说明安装sqlite。
答案 1 :(得分:1)
你不能使用Sqlite3代替你可以这样做。 以下解决方案仅适用于可调试的应用程序。它可能无法在所有设备上正常工作,因为run-as命令在某些设备上不起作用,尤其是对于Jelly Bean。
创建* .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]
将[package]更改为所需的应用程序包
将[db_file_name]更改为所需的数据库名称运行bat文件和 您应该在与bat相同的文件夹中看到复制的数据库 文件