ADB WLAN连接中尝试运行'adb reboot'时ADB进程挂起

3
这是我的步骤:

adb connect '我的安卓IP地址'

连接成功

adb reboot //在这一步中,我的手机正在重启,进程挂起。

问题可能出在哪里?是否有解决方法或变通之道?
我使用USB电缆时,ADB能够正常工作。
谢谢。

我发现@chris-stratton的答案在这里非常准确;连接从未关闭。假设您正在运行Linux,我一直在使用类似adb -s 192.168.2.51:5555 reboot & ( sleep 5 && adb disconnect 192.168.2.51 )的解决方法进行调试,它会触发重启并允许一些时间流逝,然后强制终止与该特定设备的连接。 - dherman
1个回答

4
有一些猜测,但是adb reboot可能会突然关闭手机,这样手机上的ADBD就无法正确关闭与开发机器上ADB服务器之间的TCP连接。这很像从网络电缆中拔出而导致"挂起"的TCP连接,TCP设计成可以在断断续续的通信故障中存活,因此不会轻易放弃对另一端回应的可能性,直到相当长时间(以人类的标准)过去。
完全有可能ADB服务器没有考虑到两个特性的组合,这两个特性甚至都有点偏向晦涩-带有TCP连接并且重启。
如果情况是这样的话,你实际上的选择是,在发出重启命令后立即有一些东西杀死ADB服务器,或者修改ADB(毕竟是开源的),更智能地处理它,例如,在经过1或2秒的无响应后自动断开连接,如果已经发出了重置命令。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接