根据Android调试桥:
服务器然后建立与所有正在运行的模拟器/设备的连接 实例。它通过扫描来定位模拟器/设备实例 5555 到 5585 范围内的奇数端口,该范围由 模拟器/设备。当服务器找到 adb 守护进程时,它会设置一个 连接到该端口。请注意,每个模拟器/设备实例 获取一对连续端口 - 偶数端口 控制台连接和用于 adb 连接的奇数端口。为了 示例:
模拟器1,控制台:5554
模拟器1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557 ...
ADB 服务器仅通过扫描 5555 到 5585 范围内的奇数端口(总共 30 个端口)来检查设备,并为每个设备分配 2 个端口。 ADB 是否能够接受超过 15 个 Android 设备(15x2 端口),或者我可以在同一台计算机上连接更多设备吗?我认为在同一台机器上运行多个 ADB 服务器是不可能的。
adb 使用的最大端口数可以通过设置
ADB_LOCAL_TRANSPORT_MAX_PORT
环境变量来更改。您只需看一下 adb 代码(它是开源的,因为它是 Android 的一部分)。您可以看到 adb 端口的最大数量设置如下:
static int adb_local_transport_max_port = DEFAULT_ADB_LOCAL_TRANSPORT_PORT + 16 * 2 - 1;
其中
DEFAULT_ADB_LOCAL_TRANSPORT_PORT
是5555。每个设备需要2个端口(控制台连接+adb连接)。因此,请使用以下公式来计算您的最大端口:max_port = 5555 + 2 * N + 1
阅读此处如何在 Windows 上设置环境变量。对于 Linux/macOS,只需编辑主目录中的
.bash_profile
(或 .profile
)文件即可完成。因此,实际上不需要像 Ashley 在另一个答案中建议的那样额外的 adb 服务器。
我购买了一个在 LAN 网络上虚拟化 USB 的程序,我有 100 个设备通过集线器连接到 PC,我想获取这 100 个设备并虚拟化 USB,但不幸的是,当我这样做时,所有设备都出现在设备管理器,但在ADB中只出现了15个,谁能管理它?通过支付咨询费来帮助我