这个跟 ADB 的 原理 有关
首先 手机上运行了 adbd 服务, 电脑上运行了 adb server ( adb 客户端 server )( adb kill-server, adb start-server )( port 5037 ), 然后 使用 adb 命令( adb client )来和 电脑上的 adb server 通信, 电脑上的 adb server 再和 手机的 adbd 通信
即 一般数据传输路径(使用 usb 连接手机):
adb (client) <--port 5037--> adb server (PC) <---usb---> adbd (phone)
如果 使用 网络 (如 wifi )连接手机 ,如参照
http://lisux.me/lishuai/vimwiki/%E7%BD%91%E7%BB%9C%E8%B0%83%E8%AF%95android.html则 数据传输路径是:
adb (client) <--port 5037--> adb server (PC) <---port 5555---> adbd (phone)
而只有 通过 端口连接 的两端,才能 将 其中一端 放在 服务器上, 然后通过 端口映射的方法 实现。
故 如果是 使用 usb 连接手机: 你只能将 adb (client) 放到服务器上, 然后 在服务器上 使用 端口映射 将 本地机器 的 5037 端口 映射到 服务器上的 127.0.0.1:5037 端口上。数据传输路径:
adb (client)(服务器) <--port 5037--> adb server (PC)(本地机器) <---usb---> adbd (phone)
而如果 使用 网络(一般是 wifi )连接手机: 你就有两种选择:
adb (client)(服务器) <--port 5037--> adb server (PC)(本地机器) <---port 5555---> adbd (phone)
或
adb (client)(服务器) <--port 5037--> adb server (PC)(服务器) <---port 5555---> adbd (phone)
参考:
https://github.com/mzlogin/awesome-adbhttps://github.com/mzlogin/awesome-adb/issues/4