Android 之通过adb 指令查看并且修改手机中数据库的内容

425 阅读1分钟

通过ADB指令查询数据:

这里先介绍一下: cd 是进入到指定目录 ls 是列出当前目录下的文件与文件夹

第一步: 使用adb shell 的指令访问设备

F:\new_betatec\coder\LearnDemo>adb shell
root@generic_x86_64:/ #

注意: 如果有多个设备可以这样做:

F:\new_betatec\coder\LearnDemo>adb shell

error: more than one device/emulator

F:\new_betatec\coder\LearnDemo>adb devices

List of devices attached

emulator-5554 device

emulator-5556 device

F:\new_betatec\coder\LearnDemo>adb -s emulator-5556 shell

root@generic_x86_64:/ #

第二步: 一直使用 ls 指令到达具体的目录

root@generic_x86_64:/ # ls
acct
 ......
TL8
demo
 ......
root@generic_x86_64:/sdcard # cd demo
root@generic_x86_64:/sdcard/demo # ls
db
root@generic_x86_64:/sdcard/demo # cd db
root@generic_x86_64:/sdcard/demo/db # ls
database
root@generic_x86_64:/sdcard/demo/db # cd database/
root@generic_x86_64:/sdcard/demo/db/database # ls
DemoDateBase.db
DemoDateBase.db-journal

第三步: 使用 qlite3 访问数据库

qlite3 DemoDateBase.db                                                        <
SQLite version 3.8.10.2 2015-05-20 18:17:19
Enter ".help" for usage hints.
sqlite> .table
android_metadata  demobean          table_schema
sqlite> select * from demobean
   ...> ;
1|10|jack0
2|11|jack1

21|30|jack20
sqlite>
sqlite>
sqlite> .header on
sqlite>
sqlite>
sqlite> select * from demobean;
id|age|name
1|10|jack0
 ......
21|30|jack20
sqlite>
sqlite>
sqlite> update demobean set age='888' where name='jack20';
sqlite>
sqlite>
sqlite> select * from demobean;
id|age|name
 ......
21|888|jack20
sqlite>
sqlite>
sqlite>

这里介绍一下上面的操作:

  • .table 指令会列出当前数据库中所有的表
  • select * from demobean; 是一个 sql 语句,表示查询啊demobean 这个表中的所有的数据
  • .header on 是给数据库中的表添加表头然后进行显示
  • update demobean set age='888' where name='jack20'; 是一个修改的sql 语句,表示将jack20这条数据的age 修改为 888, 之后进行查询后发现修改完成