一 adb 的工作原理
当您启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它会启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。
然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接。请注意,每个模拟器都使用一对按顺序排列的端口 - 用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口。例如:
模拟器 1,控制台:5554
模拟器 1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557
依此类推
如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。
服务器与所有设备均建立连接后,您便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此您可以从任意客户端(或从某个脚本)控制任意设备。
故: 可以通过设置指定设备 在 【5555-5585】之间的 奇数端口号 来建立 多个设备的链接
二第一台设备建立链接步骤:
1. 确保 电脑和手机处在同一WLAN
2. 建立连接前 使用 USB 线将设备连接到主机 打开usb调试
3. 设置目标设备以监听端口 5555 上的 TCP/IP 连接。
adb tcpip 5555
4. 拔掉连接目标设备的 USB 线。
5. 找到 Android 设备的 IP 地址。例如,对于 Nexus 设备,您可以在设置 > 关于平板电脑(或关于手机)> 状态 > IP 地址下找到 IP 地址。或者,对于 Wear OS 设备,您可以在设置 > WLAN 设置 > 高级 > IP 地址下找到 IP 地址。
6. 通过 IP 地址连接到设备 【默认端口是5555】 device_ip_address 手机连接到wlan上的ip
adb connect device_ip_address
7. 查看主机已连接到目标设备:
adb devices
会列出来已连接的设备 如下
List of devices attached
LKN5T19327002713 device
10.252.232.89:5555 offline
8.如果 adb 连接断开:
- 确保主机仍与 Android 设备连接到同一个 WLAN 网络。
- 通过再次执行
adb connect
步骤重新连接。 - 如果上述操作未解决问题,重置 adb 主机
adb kill-server
重复 1-8 步骤
三 非第一台设备 配置指定设备的端口号
3-1. 与上边步骤3不一样的是 需要指定配置哪个设备的端口号
比如给新设备 配置5557 端口号
adb tcpip 5557
会报如下错误:
error: more than one device/emulator
那么先通过
adb devices
查看当前 当前连接的设备 【包括通过线的 和 通过WLAN连接的】
List of devices attached
LKN5T19327002713 device
10.252.232.89:5555 offline
前边是ip:port 的是 通过 WLAN连接的 LKN5T19327002713是通过USB线连接的设备名
3-1-1 通过设备名配置端口号
adb -s LKN5T19327002713 tcpip 5557
restarting in TCP mode port: 5557
3-2 连接到指定设备
adb connect 10.252.213.52:5557
connected to 10.252.213.52:5557
adb devices
List of devices attached
LKN5T19327002713 device
10.252.213.52:5557 device