Por que o ADB parece estar usando a rede?

1

Eu estava usando o ADB no Windows 10 para atualizar o firmware para um dispositivo Android por meio de um cabo USB. Durante o processo, eu estava procurando no Monitor de Recursos e notei que o ADB estava aparecendo para receber 3,5 megabytes por segundo pela rede.

Agora, minha conexão com a Internet normalmente é de cerca de 200 kilobytes por segundo e nunca ultrapassa um megabyte por segundo. Então, claramente, esse tráfego não era o tráfego real da Internet.

Na verdade, isso me lembra o que acontece quando eu uso aplicativos como Airdroid, Shareit, transferência de arquivos VLC, etc. Números similares aparecem no Monitor de Recursos, porque os dados estão sendo transferidos através da rede local. No entanto, nesse caso, o ADB está listado como enviando e recebendo os dados no mesmo dispositivo.

O que me intriga aqui é:

  1. Os dados estavam sendo transmitidos para o dispositivo Android por meio de um cabo USB, não da rede. Por que isso é exibido no traffick de rede?
  2. Por que o ADB está listado como enviando e recebendo os dados no Windows?

Estou assumindo que isso é simplesmente como o ADB é feito. Mas estou curioso para saber exatamente o que o ADB está fazendo. Eu não tenho nenhum problema técnico com isso, estou apenas pedindo por curiosidade e para saber mais sobre o ADB.

    
por Revetahw 06.12.2016 / 07:16

1 resposta

1

adb usa uma arquitetura cliente-servidor para acessar seu dispositivo. Digamos que você queira adb shell em um dispositivo. Você precisa de instâncias de adb .

  • Um servidor adb ( adb start-server ) que se conecta ao USB e ouve clientes em um link de rede
  • Um cliente adb ( adb shell ) que se conecta ao servidor por meio da rede de loopback para fornecer acesso ao shell.

Esta arquitetura é útil de várias maneiras:

  1. Apenas um programa usa o link USB. Ele pode arbitrar comunicações com um dispositivo mesmo quando vários clientes quiserem usá-lo (shell e push concorrentes, por exemplo).
  2. O acesso ao link USB pode exigir privilégios específicos. Você pode iniciar o servidor como root para que o servidor conecte com sucesso o link USB que ainda está executando o cliente sem privilégios elevados.
  3. Você pode até pensar em acessar um dispositivo remotamente, conectando o servidor de outro computador em sua rede local.
por 30.12.2016 / 14:01