我正在尝试调试摩托罗拉Droid上的应用程序,但通过USB连接到设备时遇到一些困难。我的开发服务器是一个在Hyper-V中运行的Windows 7 64位虚拟机,因此我无法在来宾或主机中通过USB直接连接。

我安装了两种不同的USB over TCP解决方案,但连接似乎有问题,因为ADB监视器反复报告“devicemonitor failed to start monitoring”。是否有一种方法可以直接从开发机器上的客户端连接到设备上的守护程序,使用网络而不是USB连接或其他可行的选项?


当前回答

要仅使用一个命令在TCP和USB模式之间切换,可以将其添加到/init.rc:

on property:service.adb.tcp.port=*
    restart adbd

on property:service.adb.tcp.enable=1
    setprop service.adb.tcp.port 5555

on property:service.adb.tcp.enable=0
    setprop service.adb.tcp.port -1

现在,您可以使用属性service.adb.tcp.enable启用或禁用端口5555上的侦听。运行netstat检查它是否正在侦听。如您所见,如果您确实希望手动更改service.adb.tcp.port,它也会触发。

其他回答

Bash util函数:

function adb-connect-to-wifi {
    ip="$(adb shell ip route | awk '{print $9}')"
    port=5555
    adb tcpip ${port}
    adb connect ${ip}:${port}
}

首先,您必须通过USB连接设备

然后将设备连接到WIFI并获取IP地址。当仍然通过usb连接时,在命令行或通过Android Studio终端键入

adb tcpip 5555
adb connect <device IP>:5555

您将看到以下消息:

restarting in TCP mode port: 5555
connected to 172.11.0.16:5555

现在卸下USB电缆,您仍会看到logcat正常

完成。享受

通过USB连接设备并确保调试正常,然后运行:adb tcpip 5555adb connect<DEVICE_IP_ADRESS>:5555断开USB并继续进行无线调试。完成并想切换回USB调试后,运行:adb-s<设备_IP_ADDRESS>:5555

要查找设备的IP地址,请转到设备上的“设置”>“Wi-Fi”>“高级”>“IP地址”,或运行adb shell netcfg。

不需要根。一次只能调试一个设备。

请参阅此XDA帖子。

adb命令位于Android SDK的平台工具文件夹中。

如果您想在按钮上执行此操作,请单击:

在Android Studio中->设置/首选项->插件->浏览存储库搜索“ADB wifi”安装并重新启动android studio使用USB将设备(启用USB调试)连接到计算机(每个会话只需执行一次)工具->Android->ADB WIFI->ADB USB TO WIFI(或使用上述组合键。对于MacOS:ctrl+shift+w)

注意:如果不起作用:

您的wifi路由器防火墙可能正在阻止连接。您的计算机上可能未安装ABD。

您还可以使用SSH本地端口转发。但它仍然需要USB电缆。使用USB将手机连接到运行sshd的计算机(主机)。在远程(来宾)pc上启动能够端口转发/隧道的SSH客户端。例子:

plink -L 5037:localhost:5037 <host_IP_address>

我使用这种构造将设备连接到虚拟机。Eltima USB转以太网不够稳定(调试期间超时)。

SSH隧道免费工作,更可靠。