为什么 ADB 看起来正在使用网络?

为什么 ADB 看起来正在使用网络?

我在 Windows 10 上使用 ADB 通过 USB 数据线将固件刷入 Android 设备。在此过程中,我查看了资源监视器,发现 ADB 似乎每秒通过网络接收 3.5 兆字节。

在此处输入图片描述

现在,我的互联网连接速度通常为每秒 200 千字节左右,从未超过每秒 1 兆字节。因此,显然这种流量不是实际的互联网流量。

实际上,这让我想起了我使用 Airdroid、Shareit、VLC 文件传输等应用程序时发生的情况。资源监视器中显示类似的数字,因为数据是通过本地网络传输的。但是,在这种情况下,ADB 被列为在同一设备上发送和接收数据。

令我困惑的是:

  1. 数据是通过 USB 数据线传输到 Android 设备的,而不是通过网络。为什么这会显示在网络流量下?
  2. 为什么 ADB 在 Windows 上被列为发送和接收数据?

我假设 ADB 就是这样制作的。但我很好奇 ADB 到底在做什么。我对此没有任何技术问题,我只是出于好奇并想了解有关 ADB 的更多信息而询问。

答案1

adb使用客户端-服务器架构来访问您的设备。假设您想要adb shell访问某个设备。您需要 的实例adb

  • 一个 adb 服务器 ( adb start-server),连接到 USB 并监听网络链接上的客户端
  • adb 客户端(adb shell),通过环回网络连接到服务器以提供 shell 访问。

这种架构有多种用途:

  1. 只有一个程序使用 USB 链接。即使有多个客户端想要使用某个设备(例如并发 shell 和推送),它也可以仲裁与该设备的通信。
  2. 访问 USB 链接可能需要特定权限。您可以以 root 身份启动服务器,以便服务器成功连接 USB 链接,同时仍在运行客户端,而无需提升权限。
  3. 您甚至可以考虑通过本地网络上的另一台计算机连接服务器来远程访问设备。

相关内容