使用ADB命令查看数据库数据·
在开发过程中,我们可能会用到Sqlite数据库作为本地存储,也就需要查看本地数据库中的数据是否是正常的。我们可以在Android studio中找到相应的包名下面的数据库文件,右键选择"Save As"导出到电脑上,然后使用数据库查看到处的数据库文件。但是我们也可以直接使用usb连接设备,使用adb命令来查看数据库文件。
首先,先确认下设备中是否有sqlite3文件,可以在system/xbin目录下查看,是否有sqlite3这个文件;如果有这个文件,则表示可以继续下面的步骤。
操作步骤
- 在命令行中输入adb shell,进入到shell命令中;
- 使用cd data/data进入到目录文件中;
- 可以使用ls命令,来查看应用列表,找到自己要查看的应用;
- 使用cd com.xxx.xxx(要查看的应用包名)命令,进入到该应用的文件夹下;
- 使用ls命令,可以查看到有databases文件夹;
- 使用cd databases进入到该目录下;
- 使用ls命令可以看到databases该目录下的数据库文件;
- 使用sqlite3 xxx.db(数据库文件,可能文件会没有后缀.db),进入到sqlite命令中;
- 在sqlite命令行中输入.table命令,查看数据库中的表;
- 然后便可以执行sql命令了,如select * from xxx(数据表);这个命令查看xxx表中的所有数据;(注意数据库执行命令要以;结尾)
- 退出sqlite指令使用.exit或者.quit,或者使用Ctrl + Z(Windows系统)或者Command + Z(Mac系统);
遇到的问题
- 使用exit命令退出adb shell时,提示you have stopped jobs:
问题原因:一些命令被挂起了, 在后台驻留,需要关闭;
解决方法:在adb shell命令行中,使用jobs -l指令,打印在后台的进程;
如我这边打印出来的是:[1] + 21103 Stopped sqlite3 xxx(某个数据库)
那么,接下来使用kill %1(也就是打印出来的数据行中中括号里面的数字),就可以杀死进程,然后再使用exit指令退出adb shell命令了。