未root的安卓真机使用sqlite3查看data目录下的数据库

本文介绍如何在未root的Android手机上通过ADB命令查看安装应用的数据库文件,并演示了具体步骤及命令,包括使用sqlite3工具查询表结构和数据。

没有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> .table

6、使用pragma table_info(TABLE_NAME)命令来查看表的数据结构。可以看到表中有2个字段。

7、查询:select * from person;。可以看到表中有三条记录。

完整的操作截图如下:
这里写图片描述

说明:本文所有的$符号 后为输入命令。

参考:
1、Android 数据库高手秘籍(一)——SQLite 命令
2、sqlite3: not found 解决办法
3、sqlite3 文件下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值