前言
大家都知道一个程序中的数据库等持久化数据是极其重要,大多都存放在手机/data/data/{包名}/databases下,如何查看这些数据库中的表,表中字段,以及数据等信息,方式有大概有两种,第一种是通过在市场上文件浏览器apk直观查阅,第二种通过标题那种方式sqlite3命令来查询,下面分别讲解,以及在过程中遇到的问题。(本人手机oppo 4.4版本,所以也许手机型号,版本不同造成的问题也会有差异,)
必要
无论采用那种方式,手机一定要先获得root权限,说来也奇怪,测试机之前一直root不了,尝试了各种root工具,但都是在pc端进行的root,都失败了,反而root时,自动在手机中安装的root软件,root他么一下就成功了。root 地址 http://www.shuame.com/root/,我是用下载手机版root才成功。
方式
第一种方式
下载文件浏览器的方式更方便,更直观,打开db文件,直接查看,我是用的RE文件管理器,这种方式不用多说,地址http://shouji.baidu.com/software/24114976.html
第二种方式
通过sqlite3命名行的方式能清楚看到表代码结构,字段的类型,以及创建表的sql语句,更够让你深度的了解数据库的结构,接下来讲讲流程、基本的sqlite3命令以及遇到的问题
第一步:通过adb shell cd到手机中数据库的存放路径
第二步:输入命令sqlite3 数据库名.db;
第三步:停下来,喝杯茶,聊聊天。
其实两步已经完成了,本人在第二步sqlite3 数据库名.db 时 结果遇到了sqlite3:not found,经查阅是 sqlite3 为一个可执行脚本程序,在system/xbin/下面,但是有些手机并没有这个执行脚本,所以需要我们手动添加sqlite3脚本文件到system/xbin/ 目录下。
1.sqlite3 的下载地址 https://download.csdn.net/download/johnnycode/8682261
2.将下载后的sqlite3 在DDMS面板中通过右上角手机图标(push a file onto the device) 将文件push到sdcard中,准确的是在/mnt/sdcard下
3.然后在adb shell root#:命令行敲入 cat /mnt/sdcard/sqlite3 > /system/xbin/sqlite3 复制文件。
4.检查手机/system/xbin下多了一个sqlite3文件,不过还不能执行。
5.继续敲入 chmod 4755 /system/xbin/sqlite3,赋予文件权限。
大功告成。
输入命令: sqlite3 数据库名.db (连接到数据库)
sqlite> .table (查看所有表情况)
sqlite> pragma table_info(book); ( 查看指定表详细情况)
sqlite>select * from sqlite_master(隐藏系统表,可以查看所有表的创建sql的语句)
sqlite>select * from sqlite_master where name ='表名'(隐藏系统表,可以查看指定表的创建的sql语句)
最后
这是本人第一次写文章,不好的地方,请大家谅解,最后谢谢大家的支持,端午快乐!