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

gla*_*kou 4 android adb

根据Android Debug Bridge:

然后,服务器设置与所有正在运行的仿真器/设备实例的连接.它通过扫描模拟器/设备使用范围5555到5585范围内的奇数端口来定位仿真器/设备实例.在服务器找到adb守护程序的位置,它会建立与该端口的连接.请注意,每个仿真器/设备实例都会获取一对顺序端口 - 用于控制台连接的偶数端口和用于adb连接的奇数端口.例如:

模拟器1,控制台:5554

模拟器1,adb:5555

模拟器2,控制台:5556

模拟器2,adb:5557 ...

ADB服务器仅通过扫描5555到5585范围内的奇数端口(总共30个端口)来检查设备,并为每个设备分配2个端口.ADB能够接受超过15个Android设备(15x2端口)还是可以在同一台计算机上连接更多设备?我认为在同一台机器上运行多个ADB服务器是不可能的.

ale*_*al1 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;
Run Code Online (Sandbox Code Playgroud)

其中DEFAULT_ADB_LOCAL_TRANSPORT_PORT5555。每个设备需要 2 个端口(控制台连接 + adb 连接)。因此,请使用以下公式来计算您的最大端口:max_port = 5555 + 2 * N + 1

请阅读此处如何在 Windows 上设置环境变量。.bash_profile对于 Linux/macOS,只需编辑(或.profile)主目录中的文件即可完成。因此,实际上不需要像 Ashley 在另一个答案中建议的那样额外的 adb 服务器。


小智 5

您可以使用环境变量在同一台计算机上运行多个adb实例ANDROID_ADB_SERVER_PORT.看到这个答案的更多细节.

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

$ adb connect localhost:PORT
Run Code Online (Sandbox Code Playgroud)

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

$ adb connect IP_OF_DEVICE:PORT
Run Code Online (Sandbox Code Playgroud)

然后该设备可通过wifi使用,无需插入. 请注意,您的wifi网络上的任何人都可以通过这种方式访问​​您的手机!

  • 是的,您可以使用非root设备通过wifi进行ADB.请参阅http://stackoverflow.com/questions/2604727/how-can-i-connect-to-android-with-adb-over-tcp (3认同)