我正在尝试调试摩托罗拉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连接或其他可行的选项?
当前回答
如果您想通过WiFi轻松连接设备以运行、调试或部署Android应用程序,可以使用我开发的开源IntelliJ插件。这里是代码,这里是可以使用的插件。
用法很简单。这里有一张gif图:
其他回答
我不知道如何在没有任何USB连接的情况下连接设备,但如果您设法在另一台计算机上连接,您可以通过发出以下命令将adbd切换到TCP模式
adb tcpip <port>
通过以下方式从终端连接到您的设备:
adb connect <ip>:<port>
也许也可以从设备上的终端切换到TCP模式。
Bash util函数:
function adb-connect-to-wifi {
ip="$(adb shell ip route | awk '{print $9}')"
port=5555
adb tcpip ${port}
adb connect ${ip}:${port}
}
我只是遵循以下步骤,它开始工作,这样我就可以连接到我的android设备。
步骤1:在Android设备中打开终端窗口并执行以下命令。
su——切换到超级用户。setprop service.adb.tcp.port 5555-指定tcp端口-5555是此处的端口号stop adbd-停止adbb服务。start adbd-启动adbd服务。
步骤2:通过ADB,执行以下命令。(从配置ADB的路径)
adb connect 10.10.10.50:555-这里10.10.10.50是android设备的IP地址,5555是端口号。
使用TCP端口连接平板电脑。确保您的系统和设备连接到同一网络。
打开控制台cmd.exeadb-tcpip 5555型转到系统->开发选项->USB调试->取消选中TCPIP连接键入adb connect 192.168.1.2这是您的设备IP地址连接到192.168.1.2
使用端口转发连接尝试进行端口转发,
adb转发tcp:<PC端口>tcp:<设备端口>
如:
adb转发tcp/ip:5555 tcp:5555。C: \Users\abc>adb转发tcp:7612 tcp:7612C: \Users\abc>adb-tcpip 7612在TCP模式下重新启动端口:7612C: \Users\abc>adb连接10.0.0.1:7612连接至10.0.0.1:7612
若您收到错误消息:找不到设备,请将usb设备连接到系统,然后执行相同的步骤。对于根设备
setprop service.adb.tcp.port 5555
stop adbd
start adbd
adb可以通过tcp套接字与adb服务器通信。您可以通过telnet进行验证。
$ telnet 127.0.0.1 5037
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
000chost:version
OKAY00040020
通常,命令的格式为%04x%s,带有<message.length><msg>以下是ruby命令witch针对tcp套接字套接字发送adb命令cmd
def send_to_adb(socket, cmd)
socket.printf("%04x%s", cmd.length, cmd)
end
第一个示例发送命令host:version,其长度为12(十六进制为000c)。您可以享受像framebuffer这样更令人兴奋的命令:它从framebuffer中获取屏幕截图,您可以从其名称中猜到。