我正在尝试调试摩托罗拉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连接或其他可行的选项?
当前回答
在最终放弃了通过TCP直接连接到设备的可能性之后,我最终让Eltima USB转以太网软件开始工作。我几乎已经决定,仅通过仿真器不可能通过网络连接到设备。
其他回答
有两种方法可以通过TCP将Android设备与ADB连接?
第一种方式
遵循以下步骤
首先使用以下命令获取您的设备IP地址
adb shell ifconfig
以上命令的OUTPUT
wlan0 Link encap:UNSPEC Driver icnss
inet addr:XXX.XXX.X.XX Bcast:XXX.XXX.X.XXX
通过上述命令的帮助,您将找到所连接设备的IP地址
现在使用下面的命令
adb tcpip 5555
上述命令将重新启动此TCP端口:5555
现在使用以下命令连接您的设备
adb connect XXX.XXX.X.XXX:5555
^^^ ^^^ ^ ^^^
IP Address of device
第二种方式
你可以在ADB中使用Android Studio插件Android设备
Android WiFi ADB-IntelliJ/Android Studio插件
IntelliJ和Android Studio插件创建用于通过WiFi快速连接您的Android设备,以便在没有USB连接的情况下安装、运行和调试应用程序。按下一个按钮,忘记USB电缆
请查看本文了解更多信息
在Android Studio中连接Android设备与Wifi
来自adb--帮助:
connect <host>:<port> - Connect to a device via TCP/IP
顺便说一下,这是一个命令行选项。
您应该尝试将手机连接到Wi-Fi,然后从路由器获取其IP地址。它在蜂窝网络上不起作用。
端口是5554。
为了以防万一,我写了一个.bat文件来帮我做这项工作。
我使用的是Visual Studio/Xamarin-只需将手机连接到USB,运行批处理文件,选择“C”进行连接,完成后,断开手机与USB电缆的连接。您将从那里通过Wifi连接。
注意:将脚本中的目录更改为电脑上adb.exe所在的位置,并编辑手机的IP地址。
@echo off
cls
c:
cd\
cd C:\Program Files (x86)\Android\android-sdk\platform-tools\
:choice
set /P c=Do you want to connect or disconnect[C/D]?
if /I "%c%" EQU "C" goto :connect
if /I "%c%" EQU "D" goto :disconnect
goto :choice
:connect
echo plug phone in via USB. Make sure emulator is switched off
pause
adb tcpip 5555
adb connect 192.168.0.32:5555
echo finished - unplug USB
pause
exit
:disconnect
adb usb
echo finished - ADB is reset to USB mode
pause
希望它能帮助到某人!
我在同一个问题上是结构化的,但一个简单的破解adb反向tcp:<PORT>tcp:<PORT>对我有效。它允许系统接受tcp请求。
感谢您的阅读
从非根设备上的计算机
(请注意,这也可以使用根设备完成,但您可以在不需要USB连接的根设备上使用外壳)
首先,打开命令提示符(CMD)。如果您使用Android Studio或IntelliJ,您可以使用其中包含的控制台。
如果路径中添加了adb,则可以跳过cd部分。
如果可能,请打开SDK位置,右键单击,然后按“此处启动命令提示符”。并非所有人都有此选项,因此您也必须执行以下命令:
Windows:更换驱动器(如果适用)
D:
并访问sdk和平台工具。将此路径替换为SDK位置:
cd /sdk/path/here/platform-tools
现在您可以访问Android调试桥。
将设备连接到计算机后,请执行以下操作:
adb tcpip <port>
adb connect <ip>:<port>
其中,<port>是您要连接的端口(默认值为5555),<ip>是您想要连接的设备的ip。
请注意:5555是默认端口,只需写入IP地址即可连接。如果您使用自定义端口,至少可以稍微提高安全性。通过Wi-Fi进行USB调试可能被滥用,但前提是设备连接到想要滥用设备的计算机。使用非默认端口至少会使连接有点困难。
如果使用自定义端口,请确保将其添加到IP之后。没有端口连接到5555,如果不使用,连接将失败。
您可以通过两种方式查找设备的IP地址:
具体名称可能因设备而异。打开设置并转到关于设备->状态->IP地址使用ADB获取IP
在控制台上,执行以下操作:
adb shell ip -f inet addr show wlan0
完成连接后,您可以通过以下操作断开设备与计算机的连接:
adb disconnect <ip>:<port>
或者没有IP来断开所有设备。如果使用自定义端口,则必须指定要断开连接的端口。这里的默认值也是5555。
要禁用端口(如果您想这样做),请在连接设备的情况下执行以下命令:
adb usb
或者您可以重新启动设备以删除tcpip连接
从根设备上的计算机
首先,您需要访问外壳。您可以使用usb电缆连接设备并使用adb外壳,也可以从Google Play、FDroid或其他来源下载应用程序。
然后你会:
su
setprop service.adb.tcp.port <port>
stop adbd
start adbd
要连接设备,您可以像在非根版本中一样,通过adb connect<ip>:<port>。
如果您想禁用端口并返回USB监听:
setprop service.adb.tcp.port -1
stop adbd
start adbd
你也可以使用Android Studio插件为你做这件事(现在不要记住这个名字),对于root用户,还可以下载Android应用程序来设置电话连接(adb connect可能仍然需要)。
一些手机在开发者选项中有一个设置(这适用于一些未登录的手机,但可能也适用于一些根手机),允许在没有根用户或计算机连接的情况下通过设备本身的Wi-Fi切换ADB