1

I was using ADB on Windows 10 to flash firmware to an Android device via a USB cable. During the process, I was looking through the Resource Monitor, and I noticed that ADB was appearing to recieve 3.5 megabytes per second over the network.

enter image description here

Now, my Internet connection is typically at around 200 kilobytes per second and never goes above one megabyte per second. So, clearly this traffic was not actual Internet traffic.

Actually, this reminds me of what happens when I use apps like Airdroid, Shareit, VLC file transfer, etc. Similar numbers show up in Resource Monitor, because the data is being transfered through the local network. However, in this case, ADB is listed as both sending and recieving the data on the same device.

What puzzles me here is:

  1. The data was being transmitted to the Android device through a USB cable, not the network. Why is this showing up under network traffick?
  2. Why is ADB listed as both sending and recieving the data on Windows?

I'm assuming that this is simply how ADB is made. But I'm curious to know what exactly ADB is doing. I don't have any technical problems with this, I'm merely asking out of curiosity and to learn more about ADB.

1 Answer 1

1

adb uses a client-server architecture to access your device. Let's say you want to adb shell into a device. You need to instances of adb.

  • An adb server (adb start-server) which connect to the USB and listen for clients on a network link
  • An adb client (adb shell) which connect to the server through the loopback network to provide shell access.

This architecture is useful in several ways:

  1. Only one program uses the USB link. It can arbitrate communications with a device even when several clients want to use it (concurrent shell and push for example).
  2. Accessing USB link might require specific privileges. You can start server as root for the server to successfully connect the USB link still running the client without elevated privileges.
  3. You can even think about accessing a device remotely by connecting the server from another computer on your local network.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .