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.