O que é o ADB e para que serve?
O Android Debug Bridge (ADB) é uma ferramenta de linha de comando versátil que permite a comunicação entre um computador e um dispositivo Android. Ele funciona em uma arquitetura cliente-servidor, onde o cliente é o seu computador e o servidor é o dispositivo Android conectado.
O ADB é parte do Android SDK e é essencial para desenvolvedores, pois possibilita:
- Executar comandos shell no dispositivo.
- Gerenciar o encaminhamento de portas entre o computador e o dispositivo.
- Transferir arquivos entre o computador e o dispositivo.
- Instalar e desinstalar aplicativos (APKs).
- Capturar logs do sistema e do aplicativo para depuração, como em casos de ANR ou crashes.
Em resumo, o ADB é a ponte de depuração que permite controlar um dispositivo Android a partir de um terminal no computador.
Instalação e Configuração Inicial
É possível instalar apenas as ferramentas de plataforma (incluindo o ADB) sem baixar o SDK completo. Siga os passos abaixo:
1. Obtendo o ADB
Baixe o pacote correspondente ao seu sistema operacional diretamente do repositório oficial:
- Windows:
https://dl.google.com/android/repository/platform-tools-latest-windows.zip - macOS:
https://dl.google.com/android/repository/platform-tools-latest-darwin.zip - Linux:
https://dl.google.com/android/repository/platform-tools-latest-linux.zip
2. Configurando as Variáveis de Ambiente
Após descompactar o arquivo, adicione o caminho da pasta resultante à variável de ambiente PATH do seu sistema. Isso permite executar o comando adb de qualquer local no terminal.
3. Conectando o Dispositivo
Por USB: Conecte o dispositivo Android ao computador via cabo USB. No dispositivo, vá para Configurações > Opções do desenvolvedor e ative a Depuração USB. Se as Opções do desenvolvedor não estiverem visíveis, toque repetidamente no número da versão do build (geralmente 7 vezes) até que sejam ativadas.
Por Emulador: Ao iniciar um AVD (Android Virtual Device) através do Android Studio, ele gearlmente já está configurado para comunicação via ADB.
4. Verificando a Instalação
Abra um terminal (Prompt de Comando, PowerShell, ou Terminal) e execute:
adb version
Se a versão for exibida, a instalação foi bem-sucedida.
Comandos Essenciais do ADB
Comandos Básicos de Gerenciamento
adb help: Exibe a lista de todos os comandos e opções disponíveis.adb devices: Lista todos os dispositivos Android conectados e reconhecidos pelo servidor ADB.adb get-serialno: Exibe o número de série do dispositivo conectado.
Acesso Shell e Permissões
adb shell: Abre uma conexão de shell interativa com o dispositivo, permitindo o uso de comandos Linux padrão (comols,cd,cat).adb root: Reinicia o daemon ADB com permissões de root. Nota: Isso só funciona em dispositivos com root ou builds "userdebug"/"eng".adb remount: Permite o acesso de escrita à partição/system. Requer permissões de root.
Conexão com Múltiplos Dispositivos
Se mais de um dispositivo estiver conectado, especifique o alvo usando o sinalizador -s:
adb -s SERIAL_NUMBER shell
Outros sinalizadores úteis:
adb -d shell: Conecta-se ao único dispositivo físico conectado via USB.adb -e shell: Conecta-se ao único emulador em execução.
Gerenciamento de Aplicativos (APK)
Liste os pacotes instalados com filtros específicos:
adb shell pm list packages -3
Este comando lista apenas aplicativos de terceiros. Use -s para aplicativos do sistema e -d para aplicativos desativados.
Instale um APK com diversas opções:
adb install -r -g "/caminho/local/meuapp.apk"
A opção -r permite reinstalação mantendo dados, e -g concede todas as permissões listadas no manifesto.
Para desinstalar:
adb uninstall com.exemplo.meuapp
Use pm uninstall -k para remover o app mas manter seus dados e cache.
Transferência de Arquivos
Copie um arquivo do computador para o dispositivo:
adb push "./documento_local.pdf" "/sdcard/Documentos/"
Copie um diretório do dispositivo para o computador:
adb pull "/sdcard/DCIM/Camera" "./backup_fotos"
Dica: Se encontrar erros de permissão, execute adb root e adb remount antes de tentar novamente.
Captura de Logs (Logcat)
Para capturar logs do sistema em tempo real:
adb logcat -v threadtime
Salve os logs em um arquivo e filtre por nível de erro:
adb logcat -v time *:E > "./logs_erros.txt"
Limpe o buffer de logs antes de iniciar uma nova captura com adb logcat -c.
Para extrair traces de ANR:
adb pull "/data/anr/traces.txt" "./anr_traces"
Comandos do Sistema e Diagnóstico
Obtenha informações do dispositivo:
adb shell getprop ro.product.model
adb shell getprop ro.build.version.release
adb shell wm size
adb shell cat /proc/meminfo
Capture uma screenshot e salve-a no computador:
adb shell screencap -p "/sdcard/minha_captura.png"
adb pull "/sdcard/minha_captura.png" "./"
Grave a tela do dispositivo por 15 segundos:
adb shell screenrecord --time-limit 15 "/sdcard/gravacao_tela.mp4"
Descubra qual aplicativo está em primeiro plano:
adb shell dumpsys activity activities | grep mResumedActivity
Gerenciamento do Servidor ADB
Se o ADB não estiver respondendo corretamente, reinicie seu daemon:
adb kill-server
adb start-server
Se a porta padrão 5037 estiver em uso, você pode iniciar o servidor em outra porta, mas precisará especificá-la para os comandos subsequentes usando adb -p PORTA.