Android adb 原理简析

adb 即Android调试桥,做Android开发的基本上每天都要和它打交道,以前只是会用adb connect之类的简单命令,最近的项目中有使用adb完成一些功能,所以先了解一下adb的原理。

首先盗用网络图片一张,adb的整体流程基本上一看就懂

Android adb 原理简析

方式一通过wifi连接,方式二就是直接用USB连接

实际上adb应该分为三个部分,PC上的adb server、adb client和Android设备上的adb daemon。

adb client可以指你PC上的Android studio,命令行或者豌豆荚之类应用,这些client本质上还是Shell,发送命令给PC上的adb server。如果client发送命令时PC没有Server,就启动一个Server,然后把命令发送给Server。

adb server启动后会维护一个已连接设备列表,插入和移除Android设备会在列表中执行相同操作,并且该列表会对所有设备标记状态,online、offline、unauthorized等。server会一直在后台循环等待,协调PC与Android设备的通信。Server监听的是PC的5037端口,如果出现adb无法使用、无法启动等问题,先检查一下你的5037端口是否被占用。

adb daemon是运行在Android设备上的一个进程,用来连接adb server,接收和发送信息。