Programa Android Debug Bridge (ADB)
-
Índice
- O que é ADB?
- Como instalar ADB e suas dependência?
- Como o pacote ADB funciona?
- Ative a depuração do ADB no seu dispositivo?
- Consulte os dispositivos
- Comando: adb devices
- Comando: adb -s
- Comando:
adb -e
- Comando: adb -d
- Comando: adb install
- Comando: adb kill-server
- Referencias
-
O Linux Debian possui em seu repositório padrão os programas do androide necessários para acessar o celular em um ambiente Debian. A instalação dos programas abaixo podem ser instalados com auxilio do gerenciador de pacotes SYNAPTIC ou pelo terminal de comandos modo root.
- Programas necessários para formatar um cartão de memória no modo de memória interna
em celulares com androide com versões 6.00 ou superior.
- O Android Debug Bridge (adb) é uma ferramenta de linha de comando versátil que permite a comunicação com uma instância de emulador ou com um dispositivo Android conectado. Ele facilita uma variedade de ações de dispositivo, como instalar e depurar aplicativos, e fornece acesso a um shell Unix que pode ser usado para executar diversos comandos em um emulador ou dispositivo conectado. Ele é um programa cliente-servidor com três componentes:
- Um cliente, que envia comandos. Obs: O cliente é executado no computador de desenvolvimento e você pode emitir um comando adb para invocar o cliente de um terminal de linha de comando.
- Um daemon, que executa comandos em um dispositivo. Obs: Um daemon é executado como um processo de segundo plano em cada instância de emulador ou dispositivo.
- Um servidor, que gerencia a comunicação entre o cliente e o daemon. Obs: O servidor é executado como um processo de segundo plano em seu computador de desenvolvimento.
- A ferramenta adb se localiza em android_sdk/platform-tools/.
- Instalação do pacote adb e suas dependências::
- # su
- # apt-get update
- # apt-get install android-libbase android-libutils
- # apt-get install android-Liblog
- # apt-get install android-sdk-platform-tools-common
- # apt-get install adb
- Como o pacote adb funciona:
- Quando você inicia um cliente do adb, ele primeiro verifica se há um processo de servidor do adb em execução. Se não houver, ele inicia esse processo. Quando o servidor é iniciado, ele é vinculado à porta TCP 5037 local e escuta comandos enviados de clientes do adb — todos os clientes do adb usam a porta 5037 para se comunicar com o servidor do adb.
- Em seguida, o servidor configura conexões com todas as instâncias de emulador/dispositivo em execução. Ele localiza as instâncias de emulador/dispositivo com uma varredura pelas portas ímpares no intervalo de 5555 a 5585, que é utilizado por emuladores/dispositivos. Onde o servidor encontrar um daemon do adb, ele configura uma conexão com a porta em questão. Observe que cada instância de emulador/dispositivo adquire um par de portas sequenciais — uma porta par para conexões de console e uma porta ímpar para conexões do adb. Por exemplo:
- Emulador 1, console: 5554
- Emulador 1, adb: 5555
- Emulador 2, console: 5556
- Emulador 2, adb: 5557
- e assim por diante.
- Conforme foi mostrado, a instância de emulador conectada ao adb pela porta 5555 é a mesma instância cujo console escuta na porta 5554.
- Quando o servidor configurar as conexões de todas as instâncias de emulador, será possível usar comandos do adb para acessar essas instâncias.
- Como o servidor gerencia as conexões com as instâncias de emulador/dispositivo e gerencia todos os comandos de vários clientes do adb, é possível controlar qualquer instância de emulador/dispositivo de qualquer cliente (ou de um script).
- Ative a depuração do adb no seu dispositivo
- Para usar o adb com um dispositivo conectado por USB, você deve ativar a opção USB debugging nas configurações do sistema do dispositivo, em Developer options.
- No Android 4.2 e superior, a tela Developer options normalmente fica oculta por padrão. Para exibi-la, acesse Settings > About phone e toque em Build number sete vezes. Retorne à tela anterior — Developer options estará na parte inferior.
- Em alguns dispositivos, a tela Developer options pode ter uma localização ou um nome diferente.
- A partir de então será possível conectar o dispositivo por USB. Para verificar se o dispositivo está conectado, execute adb devices do diretório android_sdk/platform-tools/. Se ele estiver conectado, o nome do dispositivo estará listado como “device”.
- Observação: ao conectar um dispositivo com Android 4.2.2 ou posterior, o sistema mostrará uma caixa de diálogo perguntando se o usuário deseja aceitar uma chave RSA que permite a depuração por meio do computador. Esse mecanismo de segurança protege dispositivos de usuários, garantindo que a depuração de USB e outros comandos do adb não sejam executados a não ser que o usuário desbloqueie o dispositivo e confirme a caixa de diálogo.
- Para saber mais sobre a conexão com um dispositivo por USB, leia Execute aplicativos em um dispositivo de hardware.
- Configure seu sistema para detectar o dispositivo.
- Deve-se adicionar um arquivo de regras udev que contém uma configuração de USB para cada tipo de dispositivo que queira usar para desenvolvimento. No arquivo de regras, cada fabricante de dispositivo é identificado por um ID de fornecedor exclusivo, conforme especificado pela propriedade ATTR{idVendor}. Para obter uma lista de IDs de fornecedor, consulte IDs de fornecedores de USB em IDs de fornecedores de USB para configurar a detecção de dispositivos no Linux Ubuntu e Debian:
- Faça login como superusuário e crie este arquivo:
/etc/udev/rules.d/51-android.rules
- Use este formato para adicionar cada fornecedor ao arquivo:
-
SUBSYSTEM=="usb", ATTR{idVendor}=="número do fabricante", MODE="0666", GROUP="plugdev" - Exemplo :
- Fabricante LG:
-
SUBSYSTEM=="usb", ATTR{ idVendor}=="1004", MODE="0666", GROUP="plugdev" - Fabricante Motorola:
-
SUBSYSTEM=="usb", ATTR{ idVendor}=="22b8", MODE="0666", GROUP="plugdev" - neste exemplo, o ID de fornecedor é da LG e Motorola respectivamente. A atribuição MODE especifica as permissões de leitura/gravação e GROUP define qual grupo Unix é proprietário do nó do dispositivo.
- Observação: a sintaxe das regras pode variar ligeiramente dependendo do ambiente. Consulte a documentação de udev para seu sistema conforme a necessidade. Para obter uma visão geral da sintaxe das regras, consulte este guia sobre como criar regras de udev.
- Agora, execute:
- # chmod a+r /etc/udev/rules.d/51-android.rules
- Observação: quando conectar um dispositivo com Android 4.2.2 ou superior ao seu computador, o sistema mostrará uma caixa de diálogo perguntando se você deseja aceitar uma chave RSA que permite a depuração no computador. Esse mecanismo de segurança protege dispositivos de usuários, garantindo que a depuração de USB e outros comandos do ADB não possam ser executados a não ser que você possa desbloquear o dispositivo e confirmar a caixa de diálogo. Isso exige que você tenha o ADB versão 1.0.31 (dispositivo com o SDK Platform-tools r16.0.1 e posteriores) para depurar em um dispositivo com Android 4.2.2 ou posterior.
- Quando estiver conectado por USB, você poderá verificar se o dispositivo está conectado executando adb devices no diretório platform-tools/ do SDK. Se estiver conectado, você verá o nome do dispositivo listado como “device”.
- Se estiver usando o Android Studio, execute ou depure seu aplicativo normalmente. Será exibida uma caixa de diálogo Device Chooser que lista os emuladores disponíveis e dispositivos conectados. Selecione o dispositivo no qual deseja instalar e executar o aplicativo.
- Se estiver usando o Android Debug Bridge (ADB), você poderá
executar comandos com o sinalizador -d para direcioná-los ao dispositivo
conectado.
- Consulte os dispositivos
- Comando: adb devices. Antes de emitir comandos do adb, é útil saber quais instâncias de emulador/dispositivo estão conectadas ao servidor do adb. Para gerar uma lista de emuladores/dispositivos conectados, use o comando devices:
-
# adb devices - Obs:Na primeira execução apareceu
erro adb: malloc.c:3760: _int_malloc: Assertion `(unsigned long)
(size) >= (unsigned long) (nb)' failed.
para solucionar executei o comando:
- # adb kill-server
- Observação: Ao conectar o celular na USB é necessário confirmar no celular a conexão do computador. Do contrário a execução do comando adb devices aparecerá a mensagem:unauthorized
- Em resposta, o ADB exibe as seguintes informações de status para cada instância:
- Número de série — string gerada pelo ADB para identificar uma instância de emulador/dispositivo de forma exclusiva utilizando o número da porta do seu console. O formato do número de série é type-console-port. Veja um exemplo de número de série: emulator-5554.
- Status — O status da conexão da instância pode ser um dos seguintes:
- offline — a instância não está conectada ao adb ou não está respondendo.
- device — a instância está conectada ao servidor do adb. Observe que esse estado não implica que o sistema Android está totalmente inicializado, pois a instância se conecta ao adb enquanto o sistema está sendo inicializado. Entretanto, após a inicialização, esse é o estado operacional normal de uma instância de emulador/dispositivo.
- no device — não há uma instância de emulador/dispositivo conectada.
- Exemplo que mostra o comando devices e sua saída:
- $ adb devices
- $ List of devices attached
- $ emulator-5554 device
- $ emulator-5556 device
- $ 0037157968 device
- Comando adb -s (Envie comandos a um dispositivo
específico)
- Se várias instâncias de emulador/dispositivo estiverem em execução, especifique uma instância de destino ao emitir comandos do ADB. Para fazer isso, use a opção -s nos comandos. O uso da opção -s é o seguinte:
- $ adb -s serial_number command
- .
- Conforme foi mostrado, você deve especificar a instância de um comando usando o número de série atribuído pelo adb. Você pode usar o comando devices novamente para obter os números de séries de instâncias de emulador/dispositivo em execução. Por exemplo:
- $ adb -s emulator-5556 install helloWorld.apk
- Observe que, se você emitir um comando sem especificar uma instância de emulador/dispositivo de destino enquanto vários dispositivos estiverem disponíveis, o adb gerará um erro.
- .
- Comando adb -e
- Se você tiver vários dispositivos disponíveis (hardware ou emulados), mas apenas um for um emulador, use a opção -e para enviar comandos ao emulador.
- .
- Comando adb -d
- Se houver vários dispositivos, mas apenas um dispositivo de hardware conectado, use a opção -d para enviar comandos ao dispositivo de hardware.
- .
- Comando: adb install
- Você pode usar o ADB para copiar um aplicativo do seu computador de desenvolvimento e instalá-lo em uma instância de emulador/dispositivo. Para fazer isso, use o comando install. Com esse comando, você deve especificar o caminho do arquivo de APK que deseja instalar:
- $ adb install path_to_apk
- Para saber mais sobre a criação de um arquivo de APK que possa ser instalado em uma instância de emulador/dispositivo, consulte Compile e execute seu aplicativo.
- Observe que, se você estiver usando o Android Studio, não será preciso usar o adb (ou aapt) diretamente para instalar seu aplicativo no emulador/dispositivo. Em vez disso, o Android Studio realizará o empacotamento e a instalação do aplicativo.
- .
- Comando: adb kill-server:
- Em alguns casos, é preciso encerrar o processo do servidor do ADB e reiniciá-lo para solucionar um problema (por exemplo, se o ADB não responder a um comando).
- Para interromper o servidor do ADB, use o comando adb kill-server. Em seguida, é possível emitir qualquer outro comando do ADB para reiniciar o servidor.
- $ adb kill-server
- .
- .
- .
- .
Comentários
Postar um comentário