如何查看端口号
输入命令:adb devices
即可查看运行中的模拟器端口/设备号。
该命令会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接。
每个模拟器都使用一对按顺序排列的端口:一个用于控制台连接的偶数号端口,另一个用于 adb 连接的奇数号端口。例如:
模拟器 1,控制台:5554 (emulator-5554 )
模拟器 1,adb:5555 (127.0.0.1:5555)
模拟器 2,控制台:5556 (emulator-5556 )
模拟器 2,adb:5557 (127.0.0.1:5557)
依此类推。
比如:雷电的adb端口是有规律的,规律就是 (5555 + index * 2)
如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。
服务器与所有设备均建立连接后,您便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此您可以从任意客户端或从某个脚本控制任意设备。
雷电多开器:(点击模拟器屏幕右侧的多开器按钮或双击桌面的雷电多开器)
模拟器编号从0开始,设备号从5554开始。模拟器编号每+1,设备号+2.
emulator-5554 对应编号0的模拟器
emulator-5556 对应编号1的模拟器
emulator-5558 对应编号2的模拟器
根据对应模拟器的设备号,输入连接命令:adb -s emulator-xxxx shell
,进行连接。
查询设备
在发出 adb 命令之前,了解哪些设备实例已连接到 adb 服务器会很有帮助。您可以使用以下 devices 命令生成已连接设备的列表:
adb devices -l
作为响应,adb 会针对每个设备输出以下状态信息:
- 序列号:adb 会创建一个字符串,用于通过端口号唯一标识设备。下面是一个序列号示例:emulator-5554
- 状态:设备的连接状态可以是以下几项之一:
- offline:设备未连接到 adb 或没有响应。
- device:设备已连接到 adb 服务器。请注意,此状态并不表示 Android 系统已完全启动并可正常运行,因为在设备连接到 adb 时系统仍在启动。系统完成启动后,设备通常处于此运行状态。
- no device:未连接任何设备。
- 说明:如果您加入 -l 选项,devices 命令会告知您设备是什么。当您连接了多个设备时,此信息会很有用,方便您区分这些设备。
以下示例展示了 devices 命令及其输出。有三个设备正在运行。列表中的前两行表示模拟器,第三行表示连接到计算机的硬件设备。
$ adb devices
List of devices attached
emulator-5556 device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64
emulator-5554 device product:sdk_google_phone_x86 model:Android_SDK_built_for_x86 device:generic_x86
0a388e93 device usb:1-1 product:razor model:Nexus_7 device:flo
设备连接异常的情况
请尝试重启adb服务后,再查看adb设备列表:
# (device:正常连接 、 offline:连接异常)
结束adb服务:adb kill-server
启动adb服务:adb start-server