adb方式连接到设备shell操作数据库(使用sqlite3)

加入全栈技术交流群(QQ群号:254842154)

今天在mac下通过adb的方式连接到安卓设备的shell,并使用sqlite3来操作数据库。期间遇到了许多问题,现在在这里跟大家分享一下。

前期准备工作:

1、配置adb环境变量,可以参考我的这篇文章:mac设置adb环境变量

2、 连接到手机端的shell。解释一下3步的含义。

  • 列举出所有的设备 adb devices

  • 连接设备, -s后面跟的是设备id,由①处查询的结果 adb -s xxxxxx shell

  • 取得超级管理员权限

adb图片

3、sqlite的常用命令

sqlite3 dbname.db //打开数据库

.tables  //列举所有表结构

//打开字段名称显示
.mode column
.header on

退出sqlite模式

control+d,(control是fn右边的那个按键)

4、adb shell常用命令,详细参考: http://www.cnblogs.com/devinzhang/archive/2011/12/17/2291396.html

将设备日志输出到屏幕上 详细参考: http://developer.android.com/tools/debugging/debugging-log.html

adb logcat

过滤日志

//tag为HttpUtility
logcat | grep "^..HttpUtility"  
//tag为HttpUtility或GlobalContent
logcat | grep "^..HttpUtility\|^..GlobalContent"        

附,手机上安装sqlite3。默认情况下,会在手机的/system/xbin/目录下有一个叫sqlite3的文件,它就是设备上用来操作数据库的工具。

假如没有这个文件,则需要从别的设备上拷贝一个。我是通过在mac上建一个虚拟设备然后把sqlite拷贝出来,然后再拷到手机。步骤如下。

注意:新建的虚拟设备的api版本需要跟手机的api版本一致,例如都是4.2.2的。否则会出错。

1、在DDMS窗口的File Explorer面板下展开system > xbin,找到sqlite3 ,点击右上角的软盘图标(pull a file from the device) 将其保存到本地电脑其他位置,然后再push到手机的sdcard中。

2、连接到手机的shell,获取管理员权限(#代表有权限,$代表没有管理员权限),使用命令 su,然后输入密码

3、获取手机system目录的读写权限,命令:

#mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system

4、进入手机sdcard,把文件拷贝到/system/xbin/下

#adb push sqlite3 /system/xbin/sqlite3

5、修改sqlite3的权限

#chmod 4755 /system/xbin/sqlite3

6、最后,记得把system目录的权限改回去,还原成只读

# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system

参考:

1、http://blog.chinaunix.net/uid-635442-id-2698555.html

2、http://panxq0809.iteye.com/blog/1264785

3、http://blog.csdn.net/leon90dm/article/details/8913180

4、http://www.jizhuomi.com/android/environment/191.html

标签: none

→ 如果你觉得作者的文章不错,一不小心帮到了你,欢迎打赏作者几包辣条的钱💰