说明
- adb是Android Debug Bridge(安卓调试桥) tools,是一个命令行工具,用于对通过USB与电脑连接的安卓设备进行调试。
- 不仅仅是安卓设备,在嵌入式开发中,很多Linux设备当前也支持adb调试工具,例如:MTK平台。
架构
- 运行在pc端的adb client:
- 命令行程序”adb”用于从shell或脚本中运行adb命令。首先,“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。接下来,当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求;
- 运行在pc端的adb server:
- ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上;
- 运行在设备端的常驻进程adb demon (adbd):
- 程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务。
基本操作
windows操作工具
- 在windows上使用adb调试时,临时操作一般会使用 cmd,但是使用cmd调试有很多不方便,例如:不方便对调试信息复制,无法保存log等等。
- 为解决这些不便,可以使用xshell来操作adb,xshell默认窗口(本地shell)像是一个对cmd封装后的窗口,可以非常方便的复制信息和保存log。
显示设备
[C:\~]$ adb devices
xxxxx device
进入设备
adb shell //只有1个设备
adb -s xxxxx shell //进入设备名为xxxxx的设备
异常
多个设备的名称相同处理方法
- 若电脑连接了多个设备,并且设备名是一样的,adb区分不了单个设备,无法进入想要进入的设备。
- 手动修改设备名;设备断电后失效
adb shell //进入该设备
echo 123321234 >/sys/class/android_usb/android0/iSerial //设置设备名
exit //退出shell
adb kill-server //重新打开adb server
adb start-server
adb devices
windows上设备每次连接都需要网络安装驱动
- 原因是:设备在adb devices 中显示的名字不是固定的,每次都会变化,固定死后就不会更新驱动了。