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

标签 android networking tcp debugging adb

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

我安装了几个不同的 USB-over-TCP 解决方案,但连接似乎从 ADB 开始出现问题。 monitor 重复报告“devicemonitor 无法启动监控”。有没有办法使用网络而不是 USB 连接或其他可行的选项直接从开发机器上的客户端连接到设备上的守护程序?

最佳答案

手动流程

从您的设备中,如果它已 Root

根据a post on 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 session 的连接:

adb disconnect 192.168.0.101:5555

您可以通过两种方式找到平板电脑的 IP 地址:

手动 IP 发现:

进入 Android 的 WiFi 设置,点击操作栏中的菜单按钮(垂直省略号),点击 Advanced 并在屏幕底部查看 IP 地址。

使用 ADB 发现 IP:

通过 adb 执行以下命令:

adb shell ip -f inet addr show wlan0

告诉 ADB 守护程序返回到通过 USB 监听

adb usb

自动化流程的应用

Google Play 上还有几个应用程序可以自动执行此过程。快速搜索建议 adbWireless , WiFi ADBADB WiFi .所有这些都需要 root 访问权限,但 adbWireless 需要的权限较少。

关于android - 如何通过 TCP 使用 ADB 连接到 Android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2604727/

相关文章:

android - 从真实路径获取Uri

java - 在获取应用程序数据使用时满足运行 Jelly bean 以及 Jelly bean 之后版本的设备

python - 在 Python 中处理多个网络接口(interface)

Android:如何通知其他 Activity 完成的 Activity ()

android - monkeyrunner.press 的第三个参数是什么

java - 获取网络上可用计算机的 IP 地址? -java

linux - 在 Linux 平台上如何找出我的 Web 浏览器正在使用哪个端口从 Web 服务器接收数据包?

C# NetworkStream - 在读取时区分关闭的套接字和 0 字节数组

c++ - 提升 asio receive() 与 read()

Java TCP 客户端在 Eclipse 之外工作时无响应