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

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

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

答案

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd
setprop service.adb.tcp.port -1
stop adbd
start adbd
adb tcpip 5555
adb connect 192.168.0.101:5555
adb disconnect 192.168.0.101:5555
adb shell ip -f inet addr show wlan0
adb usb
su
setprop service.adb.tcp.port 5555
stop adbd
start adbd
adb connect ***wifi.ip.address***:5555

(example: adb connect 192.168.0.105:5555)
  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文件夹中。

假设您将 adb 路径保存到 Windows 环境路径中

  1. 在 Android 中激活调试模式

  2. 通过 USB 连接到 PC

  3. 打开命令提示符类型: adb tcpip 5555

  4. 断开平板电脑或智能手机与 PC 的连接

  5. 打开命令提示符类型: adb connect IPADDRESS (IPADDRESS 是平板电脑或智能手机的 DHCP / IP 地址,您可以通过 Wi-Fi-> 当前连接的网络找到该地址)

现在在命令提示符下,您应该看到如下结果:连接到 xxx.xxx.xxx.xxx:5555

adb --help

connect <host>:<port>         - Connect to a device via TCP/IP

顺便说一下,这是一个命令行选项。

您应该尝试将手机连接到 Wi-Fi,然后从路由器获取其 IP 地址。它不能在蜂窝网络上工作。

端口是 5554。

对于 Windows 用户:

第 1 步:
您必须在 Android 手机中启用开发者选项。
您可以使用这种方式启用开发人员选项。
• 打开设置 > 关于 > 软件信息 > 更多。
• 然后点击 “内部版本号” 七次以启用 “开发人员” 选项。
• 返回 “设置” 菜单,现在您将能够在其中看到 “开发人员选项”。
• 点击它,然后从下一个屏幕的菜单中打开 USB 调试。

第 2 步:

打开 cmd 并键入 adb。
如果发现 adb 无效命令,则必须向环境变量添加路径。

• 首先转到您的 SDK 安装文件夹
遵循此路径,此路径仅作为示例。 D:\ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \; D:\ softwares \ Development \ Andoird \ SDK \ sdk \ tools;
• 现在在 Windows 系统高级设置上搜索

在此处输入图片说明

打开环境变量。

在此处输入图片说明

然后打开路径并粘贴以下路径,这是一个示例。
您的 SDK 路径与我的不同,请使用您的。 D:\ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \;
D:\ softwares \ Development \ Andoird \ SDK \ sdk \ tools;

在此处输入图片说明

第三步:

打开 cmd 并键入 adb。如果仍然看到 adb 无效命令,则说明您的路径设置不正确,请按照上述步骤操作。

在此处输入图片说明

现在,您可以将 android 手机连接到 PC 了。

打开 cmd 并键入 adb devices,您可以看到您的设备。 查找您的电话 IP 地址。

在此处输入图片说明

类型:-adb tcpip 5555

在此处输入图片说明

获取手机的 IP 地址

adb shell netcfg

现在,

adb connect "IP address of your phone"

现在运行您的 android 项目,如果看不到您的设备,请再次键入 adb 连接手机的 IP 地址

在此处输入图片说明

在此处输入图片说明

对于 Linux 和 macOS 用户

步骤 1:打开终端并使用安装 ADB

须藤 apt-get install android-tools-adb android-tools-fastboot

通过 USB 电缆将手机连接到 PC。在终端中输入以下命令

adb tcpip 5555

使用 adb,连接您的 android 手机 ip 地址。

取下手机。

我需要得到USB和 TCPIP 的工作ADB (不要问),所以我做了以下(使用方向其他人从 XDA 开发转贴)

使用adb shell

su
#Set the port number for adbd
setprop service.adb.tcp.port 5555

#Run the adbd daemon *again* instead of doing stop/start, so there
#are two instances of adbd running.
adbd &

#Set the port back to USB, so the next time ADB is started it's
#on USB again.
setprop service.adb.tcp.port -1

exit

从非根设备上的计算机

(请注意,也可以使用有根设备来完成此操作,但是您可以在不需要 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 地址

  • 使用亚行获取 IP

在控制台中,执行以下操作:

adb shell ip -f inet addr show wlan0

连接完成后,您可以通过以下操作将设备与计算机断开连接:

adb disconnect <ip>:<port>

或没有 IP 断开所有设备的连接。如果您使用了自定义端口,则必须指定要从断开连接的端口 。默认值也是 5555。

要禁用端口(如果要这样做),请在连接的设备上执行以下命令:

adb usb

或者您可以重新启动设备以删除 tcpip 连接

从有根设备上的计算机

首先,您需要访问外壳。您可以使用 USB 电缆连接设备并使用adb shell也可以从 Google Play,FDroid 或其他来源下载应用程序。

然后,您执行以下操作:

su
setprop service.adb.tcp.port <port>
stop adbd
start adbd

要连接设备,您可以通过执行adb connect <ip>:<port>来执行非 root 用户版本的操作。

如果要禁用端口并返回到 USB 监听,请执行以下操作:

setprop service.adb.tcp.port -1
stop adbd
start adbd

您还可以使用 Android Studio 插件为您完成操作(现在不记得该名称了),对于具有 root 用户的用户,还可以选择下载 Android 应用程序以建立电话连接(可能仍然需要 adb connect )。

某些电话在开发人员选项中进行了设置(这适用于某些非 root 用户的电话,尽管可能也适用于某些 root 用户的电话),该设置允许从设备本身通过 Wi-Fi 切换 ADB,而无需 root 用户或计算机连接来启动它。虽然很少有手机

使用 TCP 端口连接平板电脑。确保您的系统和设备连接到同一网络。

  1. 打开控制台cmd.exe
  2. 键入adb tcpip 5555
  3. 转到系统 -> 开发选项 -> USB 调试 -> 取消选中 TCPIP 连接
  4. 键入adb connect 192.168.1.2这是您的设备 IP 地址
  5. 连接到 192.168.1.2

使用端口转发连接尝试做端口转发,

adb 转发 tcp: <PC port> tcp: <device port>

喜欢:

亚行转发 tcp:5555 tcp:5555。

C:\ Users \ abc> adb 转发 tcp:7612 tcp:7612

C:\ Users \ abc> adb tcpip 7612 在 TCP 模式下重新启动端口:7612

C:\ Users \ abc> adb connect 10.0.0.1:7612

已连接至 10.0.0.1:7612

如果收到消息错误:找不到设备,则将 USB 设备连接到系统,然后执行相同的步骤。
对于有根设备

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

我根本不知道如何在没有任何 USB 连接的情况下连接设备,但是如果您设法在另一台计算机上进行连接,则可以通过发出以下命令将 adbd 切换为 TCP 模式

adb tcpip <port>

从终端,并通过以下方式从网络上的任何 PC 通过 wifi 连接到您的设备:

adb connect <ip>:<port>

也许也可以从设备上的终端切换到 TCP 模式。