这两天在开发过程中,需要使用sqlite数据库,在代码中创建数据库后,发现不知道如何查看代码中创建的数据库及表,更不用说对里面数据进行核对校验了。通过网上搜索有两种方案,一种是使用可视化工具,有eclipse的,但android studio的教程不全,难得找到一个还要key。另外一个就是本文中将的adb工具了。
下面将进行使用描述:
一、找到sdk安装目录,进入platform-tools中,会发现里面有个adb.exe,首先要做的是在cmd中CD到该目录,并允许adb shell 命令
二、通过su提升权限
三、到你要查看的数据库里面,路径是/data/data +"你的应用包名(一般是com.xxx.xxx.xx)" +/databases
四、使用sqlite3工具查看你想查看的数据库,sqlite3 xxx
这就可以进入了sqlite3 查看数据库的详细信息,并通过命令进行管理。
但在这个过程中,我遇到了一个坑,就是在使用adb shell进入命令后,使用sqlite3,提示sqlite3: not found,这是因为在system/xbin目录下没有sqlite3的可执行脚本,
1、可以通过DDMSDDMS窗口的File Explorer面板下展开system > xbin,将其中的sqlite3 pull out 到本机环境中,
2、回到adb的目录下,使用命令adb push sqlite3 /system/xbin
3、在push时提示:adb push permission denied 是因为没有对/system/xbin的写入权限,默认是只读的,网上其他有说通过mount命令使其可读,但这个我使用时因没有完全root,会提示失败。
4、我解决adb push permission denied的方式是adb shell 进入adb,然后提升权限 su,直接变更/system/xbin 该文件夹得读写权限 chmod 777 system/xbin,因为mount的目的本质是为了获取system/xbin 的写入权限。