然后,服务器设置与所有正在运行的仿真器/设备实例的连接.它通过扫描模拟器/设备使用范围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;
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网络上的任何人都可以通过这种方式访问您的手机!
| 归档时间: |
|
| 查看次数: |
6424 次 |
| 最近记录: |