我正在尝试调试摩托罗拉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连接或其他可行的选项?
当前回答
通过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的平台工具文件夹中。
其他回答
手动流程
从你的设备,如果它是根
根据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需要更少的权限。
Bash util函数:
function adb-connect-to-wifi {
ip="$(adb shell ip route | awk '{print $9}')"
port=5555
adb tcpip ${port}
adb connect ${ip}:${port}
}
您还可以使用SSH本地端口转发。但它仍然需要USB电缆。使用USB将手机连接到运行sshd的计算机(主机)。在远程(来宾)pc上启动能够端口转发/隧道的SSH客户端。例子:
plink -L 5037:localhost:5037 <host_IP_address>
我使用这种构造将设备连接到虚拟机。Eltima USB转以太网不够稳定(调试期间超时)。
SSH隧道免费工作,更可靠。
这是Mac/Linux通过Wi-Fi连接到Android设备的单线图,但首先必须通过USB连接到设备。
# sleep 5 is to wait for the device to restart listening.
adb kill-server && adb tcpip 5555 && sleep 5 && adb shell ip route | awk '{print $9}' | xargs adb connect
我找到了一个方便的方法,我想与大家分享。
对于Windows
USB访问一次
不需要根
将手机和电脑连接到热点,或从手机运行便携式热点并将电脑连接到该热点。
按照brian的指示获取手机的ip(如果你正在使用手机制作热点,则不需要)
adb shell ip -f inet addr show wlan0
打开记事本
写下这些
@echo off
cd C:\android\android-sdk\platform-tools
adb tcpip 5555
adb connect 192.168.43.1:5555
将上面给出的位置更改为电脑包含abd.exe文件的位置
将ip更改为手机ip。
注意:上面给出的IP是android设备成为热点时的基本IP。如果您正在连接到wifi网络,并且设备的IP在每次连接到热点时都在不断变化,您可以通过在wifi设置中进行配置使其保持静态。谷歌搜索。
现在将文件保存为ABD_Connect.bat(MS-DOS批处理文件)。
将其保存在某个位置,并指向“桌面”或“开始”按钮的快捷方式。
通过USB连接一次,然后尝试运行一些应用程序。之后,只要您想无线连接,请双击快捷方式。
注意:有时您需要在每次调试应用程序时打开快捷方式。所以在桌面上为快捷键设置快捷键会更方便。我做了一个快捷键,如Ctrl+Alt+S。所以每当我想调试时,我都会按Shift+F9和Ctrl+Alt+S
注意:如果在cmd窗口中发现device=null错误,请检查您的IP,它可能已更改。