协慌网

登录 贡献 社区

如何使用 ADB 通过 TCP 连接到 Android?

我正在尝试在Motorola Droid上调试应用程序,但是我在通过 USB 连接到设备时遇到了一些困难。我的开发服务器是在Hyper-V 中运行的 Windows 7 64 位 VM,因此无法通过客户端或主机上的 USB 直接连接。

我安装了几个不同的 USB-over-TCP 解决方案,但由于ADB监视器反复报告 “devicemonitor 无法开始监视”,因此连接似乎存在问题。有没有办法使用网络直接从开发机器上的客户端连接到设备上的守护进程,而不是使用 USB 连接或可能的其他可行选项?

答案

手动流程

从您的设备,如果它是 root

根据xda-developers 上的一篇文章 ,您可以使用以下命令从设备启用 Wi-Fi 上的 ADB:

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

你可以禁用它并返回 ADB 来监听 USB

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 上还有一些应用可以自动完成此过程。快速搜索建议adbWirelessWiFi ADBADB WiFi 。所有这些都需要 root 访问权限,但adbWireless需要更少的权限。

如果您的手机已植根,这非常简单。

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

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

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

右键单击 cmd 快捷方式,然后选择"Run as Administrator"

切换到你的android-sdk-windows\tools文件夹

类型:

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

(example: adb connect 192.168.0.105:5555)

adb 现在应该说你已经连接了。

注意:如果您太快而无法提供 connect 命令,则可能会失败。因此,在您说这不起作用之前,至少尝试两次五秒钟。

  1. 通过 USB 连接设备并确保调试正常,然后运行:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
  2. 断开 USB 连接并继续进行无线调试。

  3. 完成后想要切换回 USB 调试,运行:

    adb -s <DEVICE_IP_ADDRESS>:5555

要查找设备的 IP 地址,请转到设备上的Settings > Wi-Fi > Advanced > IP Address ,或运行adb shell netcfg

不需要 root。一次只能调试一个设备。

看到这个 XDA 帖子

adb命令位于 Android SDK 的platform-tools文件夹中。