Dlaczego ADB wydaje się korzystać z sieci?

1

Używałem ADB na Windows 10 do flashowania oprogramowania układowego na urządzeniu z Androidem za pomocą kabla USB. Podczas tego procesu przeglądałem Monitor zasobów i zauważyłem, że ADB wydaje się otrzymywać 3,5 megabajta na sekundę przez sieć.

enter image description here

Teraz moje połączenie z Internetem wynosi zwykle około 200 kilobajtów na sekundę i nigdy nie przekracza jednego megabajta na sekundę. Widać więc, że ten ruch nie był rzeczywistym ruchem internetowym.

W rzeczywistości przypomina mi to, co dzieje się, gdy używam aplikacji takich jak Airdroid, Shareit, transfer plików VLC itp. Podobne liczby pojawiają się w Monitorze zasobów, ponieważ dane są przesyłane przez sieć lokalną. Jednak w tym przypadku ADB jest wymieniony zarówno jako wysyłający, jak i odbierający dane na tym samym urządzeniu.

To, co mnie tu zastanawia, to:

  1. Dane były przesyłane do urządzenia z systemem Android za pomocą kabla USB, a nie sieci. Dlaczego pojawia się w sieciowym traffick'u?
  2. Dlaczego ADB jest wymieniony jako wysyłający i odbierający dane w systemie Windows?

Zakładam, że tak właśnie powstaje ADB. Ale jestem ciekaw, co dokładnie robi ADB. Nie mam z tym żadnych problemów technicznych, pytam tylko z ciekawości i dowiedzieć się więcej o ADB.

Revetahw
źródło

Odpowiedzi:

1

adb używa architektury klient-serwer, aby uzyskać dostęp do urządzenia. Powiedzmy, że chcesz adb shell w urządzenie. Musisz instancje adb.

  • Serwer adb ( adb start-server ), które łączą się z USB i nasłuchują klientów na łączu sieciowym
  • Klient adb ( adb shell ) które łączą się z serwerem za pośrednictwem sieci pętli zwrotnej, aby zapewnić dostęp do powłoki.

Ta architektura jest przydatna na kilka sposobów:

  1. Tylko jeden program korzysta z łącza USB. Może rozstrzygać komunikację z urządzeniem nawet wtedy, gdy kilku klientów chce z niego korzystać (na przykład jednoczesna powłoka i push).
  2. Dostęp do łącza USB może wymagać określonych uprawnień. Możesz uruchomić serwer jako root, aby serwer mógł pomyślnie połączyć się z linkiem USB nadal działającym na kliencie bez podwyższonych uprawnień.
  3. Możesz nawet myśleć o dostępie do urządzenia zdalnie, łącząc serwer z innego komputera w sieci lokalnej.
A. Loiseau
źródło