我正在尝试调试摩托罗拉Droid上的应用程序,但通过USB连接到设备时遇到一些困难。我的开发服务器是一个在Hyper-V中运行的Windows 7 64位虚拟机,因此我无法在来宾或主机中通过USB直接连接。
我安装了两种不同的USB over TCP解决方案,但连接似乎有问题,因为ADB监视器反复报告“devicemonitor failed to start monitoring”。是否有一种方法可以直接从开发机器上的客户端连接到设备上的守护程序,使用网络而不是USB连接或其他可行的选项?
我正在尝试调试摩托罗拉Droid上的应用程序,但通过USB连接到设备时遇到一些困难。我的开发服务器是一个在Hyper-V中运行的Windows 7 64位虚拟机,因此我无法在来宾或主机中通过USB直接连接。
我安装了两种不同的USB over TCP解决方案,但连接似乎有问题,因为ADB监视器反复报告“devicemonitor failed to start monitoring”。是否有一种方法可以直接从开发机器上的客户端连接到设备上的守护程序,使用网络而不是USB连接或其他可行的选项?
当前回答
在我的系统中,情况如下:
在我的Linux shell中的Android设备上,一个简单的“ifconfig”没有给我IP地址。我必须键入:
如果配置eth0
-or-
网络配置文件
获取我的IP地址。(我知道eth0已配置,因为我在dmesg中看到了它。)然后我执行了以下操作:
setprop服务.adb.tcp.port-1
停止adbd
启动adbd
然后在我的Win7盒子(运行Eclipse3.7.1的盒子)上
\android sdk\平台工具>
而不以管理员身份运行。然后我做了一个
adb连接12.345.678.90
我从来没有放过端口
adb tcpip 5555
它说找不到该设备,然后我的“adb设备”列表中没有任何内容。也就是说,只有当我不执行上面的tcpip命令时,它才有效。
我可以做一个“adb外壳”,并破坏我的Android设备。但我的Android设备现在没有出现在我的运行->运行配置->目标选项卡中。另一方面,如果我将目标选项卡设置为自动。然后,当我通过run->run运行我的应用程序时,它确实会在我的Android设备上运行,即使我的安卓设备甚至没有被列为我的目标之一。
其他回答
要仅使用一个命令在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,它也会触发。
假设您已将adb路径保存到Windows环境路径中
在Android中激活调试模式通过USB连接到PC打开命令提示符类型:adb-tcpip 5555断开平板电脑或智能手机与电脑的连接打开命令提示符类型:adb connect IPADDRESS(IPADDRESS是平板电脑或智能手机的DHCP/IP地址,可以通过Wi-Fi->当前连接的网络找到)
现在在命令提示符中,您应该看到这样的结果:connected to xxx.xxx.xxx.xxxx:55555
如果您想通过WiFi轻松连接设备以运行、调试或部署Android应用程序,可以使用我开发的开源IntelliJ插件。这里是代码,这里是可以使用的插件。
用法很简单。这里有一张gif图:
Bash util函数:
function adb-connect-to-wifi {
ip="$(adb shell ip route | awk '{print $9}')"
port=5555
adb tcpip ${port}
adb connect ${ip}:${port}
}
手动流程
从你的设备,如果它是根
根据xda开发人员的一篇帖子,您可以通过以下命令从设备通过Wi-Fi启用ADB:
su
setprop service.adb.tcp.port 5555
stop adbd
start adbd
您可以禁用它,并使用
setprop service.adb.tcp.port -1
stop adbd
start adbd
从计算机,如果您已经有USB访问权限(不需要root)
如果你已经有了USB,切换到使用Wi-Fi更容易。通过USB连接设备的计算机上的命令行发出命令
adb tcpip 5555
adb connect 192.168.0.101:5555
确保将192.168.0.101替换为实际分配给设备的IP地址。完成后,可以通过运行以下命令断开与adb-tcp会话的连接:
adb disconnect 192.168.0.101:5555
您可以通过两种方式查找平板电脑的IP地址:
手动IP发现:
进入Android的WiFi设置,单击操作栏中的菜单按钮(垂直省略号),点击高级,然后在屏幕底部看到IP地址。
使用ADB发现IP:
通过adb执行以下命令:
adb shell ip -f inet addr show wlan0
告诉ADB守护程序返回USB监听
adb usb
自动化流程的应用程序
Google Play上还有几个应用程序可以自动完成这一过程。快速搜索可以找到adbWireless、WiFi ADB和ADB WiFi。所有这些都需要root访问权限,但adbWireless需要更少的权限。