1

Я использовал ADB в Windows 10 для прошивки прошивки на устройство Android через USB-кабель. В ходе этого процесса я просматривал монитор ресурсов и заметил, что ADB, по-видимому, получает по сети 3,5 мегабайта в секунду.

Теперь мое интернет-соединение обычно составляет около 200 килобайт в секунду и никогда не превышает одного мегабайта в секунду. Итак, очевидно, что этот трафик не был фактическим интернет-трафиком.

На самом деле, это напоминает мне о том, что происходит, когда я использую такие приложения, как Airdroid, Shareit, передача файлов VLC и т.д. Аналогичные цифры отображаются в Resource Monitor, поскольку данные передаются через локальную сеть. Однако в этом случае ADB указан как отправляющий и получающий данные на одном устройстве.

Что меня здесь озадачивает:

  1. Данные передавались на устройство Android через USB-кабель, а не по сети. Почему это появляется при сетевом трафике?
  2. Почему АБР указан как отправляющий и получающий данные в Windows?

Я предполагаю, что это просто, как АБР сделан. Но мне любопытно узнать, что именно делает АБР. У меня нет никаких технических проблем с этим, я просто прошу из любопытства и узнать больше об АБР.

1 ответ1

1

adb использует клиент-серверную архитектуру для доступа к вашему устройству. Допустим, вы хотите adb shell в устройство. Вам нужно экземпляры adb .

  • Сервер adb (adb start-server), который подключается к USB и прослушивает клиентов по сетевой ссылке
  • Клиент adb (adb shell), который подключается к серверу через петлевую сеть для обеспечения доступа к оболочке.

Эта архитектура полезна несколькими способами:

  1. Только одна программа использует USB-соединение. Он может обмениваться данными с устройством даже тогда, когда его хотят использовать несколько клиентов (например, одновременная оболочка и push).
  2. Доступ к USB-каналу может потребовать определенных привилегий. Вы можете запустить сервер с правами суперпользователя, чтобы сервер успешно подключился к USB-каналу, на котором все еще работает клиент без повышенных привилегий.
  3. Вы даже можете подумать об удаленном доступе к устройству, подключив сервер с другого компьютера в локальной сети.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .