连接到 ADB 服务器的最大设备数量

问题描述 投票:0回答:3

根据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 服务器是不可能的。

android adb
3个回答
7
投票

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 服务器。


4
投票

您可以使用环境变量

ANDROID_ADB_SERVER_PORT
在同一台计算机上运行多个 adb 实例。请参阅此答案的更多详细信息。

使用模拟器上的 -ports 选项,您可以指定任何端口,然后执行以下操作:

$ adb connect localhost:PORT

如果您的手机已root,您可以在另一个端口上重新启动adbd(请参阅另一个答案),然后:

$ adb connect IP_OF_DEVICE:PORT

设备即可通过 WiFi 使用,无需插入电源。 请注意,您的 WiFi 网络上的任何人都可以通过这种方式访问您的手机!


0
投票

我购买了一个在 LAN 网络上虚拟化 USB 的程序,我有 100 个设备通过集线器连接到 PC,我想获取这 100 个设备并虚拟化 USB,但不幸的是,当我这样做时,所有设备都出现在设备管理器,但在ADB中只出现了15个,谁能管理它?通过支付咨询费来帮助我

© www.soinside.com 2019 - 2024. All rights reserved.