我正在尝试调试摩托罗拉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和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,它也会触发。
其他回答
如果你的手机是根,这真的很简单。
从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秒试两次。
以下是Brian使用蓝牙回答的扩展:
在Linux上,使用Blueman通过蓝牙与设备共享PC互联网:$sudo apt-get安装blueman$blueman经理配对:启用蓝牙后搜索设备并使其可见$blueman服务网络>[X]网络接入点(NAP)您的手机>设置>蓝牙>配对设备>[X]Internet访问使用蓝牙网络执行ADB命令:$adb tcpip 5555$adb connect$(adb shell ip-f inet addr show bt pan | egrep-o'[0-9]+\.[0-9]+\.[0-10]+\.[0-9]'| head-n1):5555
完成后返回USB模式:
$ adb disconnect
$ adb usb
注意:蓝牙3.0和4.0最高可达24 Mbit/s。
我找到了一个方便的方法,我想与大家分享。
对于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,它可能已更改。
我不知道如何在没有任何USB连接的情况下连接设备,但如果您设法在另一台计算机上连接,您可以通过发出以下命令将adbd切换到TCP模式
adb tcpip <port>
通过以下方式从终端连接到您的设备:
adb connect <ip>:<port>
也许也可以从设备上的终端切换到TCP模式。
要仅使用一个命令在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,它也会触发。