没有root的安卓手机连接电脑直接使用ADB进行查看data目录下的数据库,会显示Permission denied ,即没有权限。通用的查看方式如下:
shell@android:/data $ run-as com.your.package run-as com.your.package shell@android:/data/data/com.your.package $ cd /data/data/com.your.package cd /data/data/com.your.package shell@android:/data/data/com.your.package $ ls ls cache databases lib shared_prefs shell@android:/data/data/com.your.package $ cd databases cd databases shell@android:/data/data/com.your.package/databases $ ls yourpackagename.db本机的具体步骤
C:\Users\hust_twj>adb shell z2_row:/ $ run-as com.example.hust_twj.sqlite z2_row:/data/data/com.example.hust_twj.sqlite $ cd /data/data/com.example.hust_twj.sqlite z2_row:/data/data/com.example.hust_twj.sqlite $ ls cache databases z2_row:/data/data/com.example.hust_twj.sqlite $ cd databases z2_row:/data/data/com.example.hust_twj.sqlite/databases $ ls Info.db Info.db-journal z2_row:/data/data/com.example.hust_twj.sqlite/databases $ sqlite3 Info.db SQLite version 3.9.2 2015-11-02 18:31:45 Enter ".help" for usage hints. sqlite> .table android_metadata person sqlite> pragma table_info(person); 0|id|integer|0||1 1|name|text|0||0 sqlite> select * from person; 1|Tom 2|Lily 3|Joe sqlite>几点说明:
1、com.example.hust_twj.sqlite 为数据库所在的应用程序完整包名;
2、cd为 进入其中一个目录(应用程序),并查看为ls,如下表示进入进入data目录的应用程序所在包中并查看:
z2_row:/data/data/com.example.hust_twj.sqlite $ cd/data/data/com.example.hust_twj.sqlite z2_row:/data/data/com.example.hust_twj.sqlite $ ls然后返回
cache databases其中 cache 是缓存, databases 是用于存放数据库文件的。
3、再cd进入数据库,并ls一下:
z2_row:/data/data/com.example.hust_twj.sqlite $ cd databases z2_row:/data/data/com.example.hust_twj.sqlite/databases $ ls可以看到如下界面(当然每个电脑不一样…):
Info.db Info.db-journal其中后缀名为 journal 的文件是日志文件,可以不用管,Info.db 才是真正所要查看的数据库文件。
4、使用 sqlite3 命令来打开数据库,如下所示:
z2_row:/data/data/com.example.hust_twj.sqlite/databases $ sqlite3 Info.db出现如下界面即表示数据库已经打开:
5、怎么才能知道当前数据库中有哪些表呢?很简单,使用.table命令就行:
sqlite> .table6、使用pragma table_info(TABLE_NAME)命令来查看表的数据结构。可以看到表中有2个字段。
7、查询:select * from person;。可以看到表中有三条记录。
完整的操作截图如下:
说明:本文所有的$符号 后为输入命令。
参考: 1、Android 数据库高手秘籍(一)——SQLite 命令 2、sqlite3: not found 解决办法 3、sqlite3 文件下载
