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:
- 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).
- 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.
- Você pode até pensar em acessar um dispositivo remotamente, conectando o servidor de outro computador em sua rede local.