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

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


当前回答

如果你的手机是根,这真的很简单。

从Google Play下载终端模拟器(有很多是免费的)。确保您的Android设备已连接到Wi-Fi,并获取Wi-Fi IP地址。打开终端程序并键入:

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

现在转到您的计算机(假设您使用的是Windows),在桌面上为“cmd.exe”创建一个快捷方式(不带引号)。

右键单击cmd快捷方式并选择“以管理员身份运行”

更改到android sdk windows\tools文件夹

类型:

adb connect ***wifi.ip.address***:5555

(example: adb connect 192.168.0.105:5555)

adb现在应该说您已连接。

注意:如果速度太快,无法发出connect命令,则可能会失败。所以,在你说这不起作用之前,至少间隔5秒试两次。

其他回答

如果你的手机是根,这真的很简单。

从Google Play下载终端模拟器(有很多是免费的)。确保您的Android设备已连接到Wi-Fi,并获取Wi-Fi IP地址。打开终端程序并键入:

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

现在转到您的计算机(假设您使用的是Windows),在桌面上为“cmd.exe”创建一个快捷方式(不带引号)。

右键单击cmd快捷方式并选择“以管理员身份运行”

更改到android sdk windows\tools文件夹

类型:

adb connect ***wifi.ip.address***:5555

(example: adb connect 192.168.0.105:5555)

adb现在应该说您已连接。

注意:如果速度太快,无法发出connect命令,则可能会失败。所以,在你说这不起作用之前,至少间隔5秒试两次。

我发现其他答案令人困惑。使用adbWireless要简单得多:

http://ppareit.github.com/AdbConnect/

只需在手机上安装一个应用程序,通过wifi切换调试,安装一个eclipse插件,就完成了。

来自adb--帮助:

connect <host>:<port>         - Connect to a device via TCP/IP

顺便说一下,这是一个命令行选项。

您应该尝试将手机连接到Wi-Fi,然后从路由器获取其IP地址。它在蜂窝网络上不起作用。

端口是5554。

我创建了一个批处理文件,用于通过TCP自动启用ADB并将其连接到通过USB连接的设备。有了它,您不必手动输入IP。

@echo off
setlocal

REM Use a default env variable to find adb if possible
if NOT "%AndroidSDK%" == "" set PATH=%PATH%;%AndroidSDK%\platform-tools

REM If off is first parameter then we turn off the tcp connection.
if "%1%" == "off" goto off

REM Set vars
set port=%1
set int=%2
if "%port%" == "" set port=5557
if "%int%" == "" set int=wlan0

REM Enable TCP
adb -d wait-for-device tcpip %port%

REM Get IP Address from device
set shellCmd="ip addr show %int% | grep 'inet [0-9]{1,3}(\.[0-9]{1,3}){3}' -oE | grep '[0-9]{1,3}(\.[0-9]{1,3}){3}' -oE"
for /f %%i in ('adb wait-for-device shell %shellCmd%') do set IP=%%i

REM Connect ADB to device
adb connect %IP%:%port%

goto end

:fail
echo adbWifi [port] [interface]
echo adbWifi off
goto end

:off
adb wait-for-device usb

:end

步骤1。

确保adb主机和Android设备都在同一个Wifi网络上。

步骤2。

使用USB电缆将Android设备与计算机连接。一旦你这样做,你的主机将检测到你的设备,adb将开始在电脑上以USB模式运行。您可以使用adb设备检查连接的设备,同时通过执行adb-USB确保adb在USB模式下运行。

$ adb usb
restarting in USB mode
$ adb devices
List of devices attached
ZX1D63HX9R  device

步骤3。

使用以下命令在tcpip模式下重新启动adb:

$ adb tcpip 5556
restarting in TCP mode port: 5556

步骤4。

查找Android设备的IP地址。有几种方法可以做到这一点:

方式:1转到设置->关于手机/平板电脑->状态->IP地址。方式:2转到可用的Wi-fi网络列表。你连接的那个,点击它并了解你的IP。方法:3尝试$adb-shell netcfg。

现在您知道了设备的IP地址,请将adb主机连接到它。

$ adb connect 192.168.0.102:5556
already connected to 192.168.0.102:5556
$ adb devices
List of devices attached
ZX1D63HX9R  device
192.168.0.102:5556  device

步骤5。

拔下USB电缆,您应该已连接到设备。如果在adb设备中看不到它,只需使用上一步的命令重新连接:

$ adb connect 192.168.0.102:5556
connected to 192.168.0.102:5556
$ adb devices
List of devices attached
192.168.0.102:5556  device

要么你现在就可以走了,要么你需要通过执行adb-kill服务器来杀死你的adb服务器,然后再次完成所有步骤。

希望这有帮助!参考:

http://developer.android.com/tools/help/adb.html#wirelesshttp://codetheory.in/android-debug-bridge-adb-wireless-debugging-over-wi-fi/