Skip to content

Most visited

Recently visited

navigation

Android Debug Bridge

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:

A ferramenta adb se localiza em android_sdk/platform-tools/.

Como o 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.

Conecte-se a um dispositivo por Wi-Fi

O adb geralmente é usado por USB. Entretanto, também é possível usá-lo por Wi-Fi conforme descrito aqui.

  1. Conecte o dispositivo Android e o computador host do adb a uma rede Wi-Fi acessível de ambos os dispositivos. Esteja ciente de que nem todos os pontos de acesso são adequados: pode ser necessário usar um ponto de acesso cujo firewall esteja corretamente configurado para que haja compatibilidade com adb.

    Observação: se você estiver tentando conectar-se a um dispositivo Android Wear, force-o a se conectar ao Wi-Fi desativando o Bluetooth no celular conectado a ele.

  2. Conecte o dispositivo ao computador host usando um cabo USB.
  3. Configure o dispositivo de destino para ouvir uma conexão TCP/IP na porta 5555.
    $ adb tcpip 5555
    
  4. Desconecte a porta USB do dispositivo de destino.
  5. Encontre o endereço IP do dispositivo Android. Por exemplo: em um dispositivo Nexus, o endereço IP se encontra em Settings > About tablet (ou About phone) > Status > IP address. Ou, em um dispositivo Android Wear, o endereço IP se encontra em Settings > Wi-Fi Settings > Advanced > IP address.
  6. Identifique o dispositivo pelo endereço IP e conecte-o.
    $ adb connect device_ip_address
    
  7. Confirme se seu computador host está conectado ao dispositivo de destino:
    $ adb devices
    List of devices attached
    device_ip_address:5555 device
    

Pronto!

Se perder a conexão com o adb:

  1. Verifique se o host ainda está conectado à mesma rede Wi-Fi que o dispositivo Android.
  2. Execute comando adb connect novamente para reconectar.
  3. Se isso não funcionar, redefina o host do adb:
    adb kill-server
    

    Em seguida, reinicie o processo.

Consulte dispositivos

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

Em resposta, o adb exibe as seguintes informações de status para cada instância:

A saída tem o seguinte formato:

List of devices attached
serial_number state

Veja um exemplo que mostra o comando devices e sua saída:

adb devices
List of devices attached
emulator-5554  device
emulator-5556  device
emulator-5558  device

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.

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. Da mesma forma, se houver vários dispositivos, mas apenas um dispositivo de hardware conectado, use a opção -d para enviar comandos ao dispositivo de hardware.

Instale um aplicativo

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.

Configure o encaminhamento de portas

O comando forward pode configurar o encaminhamento de portas arbitrário — ou seja, o encaminhamento de solicitações em uma porta de host específica para uma porta diferente em uma instância de emulador/dispositivo. Eis como configurar o encaminhamento da porta de host 6100 para a porta 7100 do emulador/dispositivo:

adb forward tcp:6100 tcp:7100

Também é possível usar o adb para configurar o encaminhamento para soquetes de domínio UNIX abstratos nomeados, conforme o exemplo a seguir:

adb forward tcp:6100 local:logd 

Copie arquivos de/para um dispositivo

Os comandos pull e push do adb permitem copiar arquivos de e para uma instância de emulador/dispositivo. Diferentemente do comando install, que apenas copia um arquivo de APK para um local específico, os comandos pull e push permitem copiar diretórios e arquivos arbitrários para qualquer local de uma instância de emulador/dispositivo.

Para copiar um arquivo ou diretório (e seus subdiretórios) do emulador ou dispositivo, use

adb pull remote local

Para copiar um arquivo ou diretório (e seus subdiretórios) para o emulador ou dispositivo, use

adb push local remote

Nos comandos, local e remote se referem aos caminhos para os arquivos/diretórios no computador de desenvolvimento (local) e na instância de emulador/dispositivo (remoto). Por exemplo:

adb push foo.txt /sdcard/foo.txt

Interrompa o servidor do adb

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.

Referência de comandos do adb

É possível emitir comandos do adb de uma linha de comando em seu computador de desenvolvimento ou de um script. O uso é o seguinte:

adb [-d|-e|-s serial_number] command

Se houver apenas um emulador em execução ou um dispositivo conectado, o comando do adb será enviado para essa instância por padrão. Se houver vários emuladores em execução e/ou vários dispositivos conectados, será necessário usar a opção -d, -e ou -s para especificar o dispositivo de destino ao qual o comando deve ser direcionado.

A tabela a seguir lista todos os comandos do adb permitidos e explica seu significado e uso.

Tabela 1. Comandos do adb disponíveis

Categoria Comando Descrição Comentários
Dispositivo de destino -d Direciona um comando do adb ao único dispositivo USB conectado. Retorna um erro caso mais de um dispositivo USB esteja conectado.
-e Direciona um comando do adb à única instância de emulador em execução. Retorna um erro se houver mais de uma instância de emulador em execução.
-s serial_number Direciona um comando do adb a uma instância especifica de emulador/dispositivo, referenciada pelo número de série atribuído pelo adb (por exemplo, “emulator-5556”). Consulte Como direcionar comandos a uma instância específica de emulador/dispositivo.
Geral devices Exibe uma lista de todas as instâncias de emulador/dispositivo conectadas. Consulte Como fazer consultas para instâncias de emulador/dispositivo para saber mais.
help Exibe uma lista de comandos do adb compatíveis.  
version Exibe o número da versão do adb.  
Depuração logcat [option] [filter-specs] Exibe dados de registro na tela.  
bugreport Exibe dados de dumpsys, dumpstate e logcat na tela para gerar um relatório de bugs.  
jdwp Exibe uma lista de processos do JDWP disponíveis em um determinado dispositivo. Você pode usar a especificação de encaminhamento de portas forward jdwp:pid para conectar-se a um processo de JDWP específico. Por exemplo:
adb forward tcp:8000 jdwp:472
jdb -attach localhost:8000
Dados install path_to_apk Envia um aplicativo Android (especificado como um caminho completo para um arquivo de APK) para um emulador/dispositivo.  
pull remote local Copia um arquivo especificado de uma instância de emulador/dispositivo para seu computador de desenvolvimento.  
push local remote Copia um arquivo especificado do seu computador de desenvolvimento para uma instância de emulador/dispositivo.  
Portas e rede forward local remote Encaminha conexões de soquete de uma porta local especificada para uma porta remota especificada na instância de emulador/dispositivo. As especificações de portas podem usar os seguintes esquemas:
  • tcp:port_number
  • local:unix_domain_socket_name
  • dev:character_device_name
  • jdwp:pid
ppp tty [parm]... Executa PPP sobre USB.
  • tty — o tty para o stream PPP. Por exemplo: dev:/dev/omap_csmi_ttyl.
  • [parm]... — zero ou mais opções de PPP/PPPD, como as defaultroute, local, notty etc.

Observe que não se deve iniciar uma conexão de PPP automaticamente.

Script get-serialno Exibe a string do número de série da instância do adb. Consulte Como fazer consultas para instâncias de emulador/dispositivo para saber mais.
get-state Exibe o estado do adb de uma instância de emulador/dispositivo.
wait-for-device Bloqueia a execução até que o dispositivo esteja online — ou seja, até que o estado da instância seja device. Você pode usar esse comando como prefixo de outros comandos do adb, assim o adb aguardará até que a instância de emulador/dispositivo esteja conectada antes de emitir outros comandos. Veja um exemplo:
adb wait-for-device shell getprop
Observe que esse comando não faz com que o adb aguarde até que todo o sistema tenha sido totalmente inicializado. Por esse motivo, não use esse comando como prefixo de outros comandos que exijam um sistema totalmente inicializado. Por exemplo, o comando install exige o gerenciador de pacotes do Android, que é disponibilizado apenas depois da inicialização completa do sistema. Um comando do tipo
adb wait-for-device install app.apk
emitiria o comando install assim que a instância de emulador/dispositivo se conectasse conectada ao servidor do adb, mas antes da inicialização completa do sistema Android, o que resultaria em erro.
Servidor start-server Verifica se o processo do servidor do adb está em execução e, se não estiver, inicia-o.  
kill-server Encerra o processo do servidor do adb.  
Shell shell Inicia um shell remoto na instância de emulador/dispositivo de destino. Para saber mais, consulte Emita comandos do shell.
shell shell_command Emite um comando do shell na instância do emulador/dispositivo de destino e sai do shell remoto.

Emita comandos do shell

O comando shell é útil para emitir comandos de dispositivo pelo adb, entrando ou não no shell remoto do adb no emulador/dispositivo. Para emitir um só comando sem entrar em um shell remoto, use o comando shell da seguinte maneira:

adb [-d|-e|-s serial_number] shell shell_command

Ou entre em um shell remoto em um emulador/dispositivo da seguinte maneira:

adb [-d|-e|-s serial_number] shell

Quando estiver pronto para sair do shell remoto, pressione as teclas Ctrl + D ou digite exit.

Os binários do comando do shell ficam armazenados no sistema de arquivos do emulador/dispositivo, em /system/bin/.

Chame o gerenciador de atividades (am)

Em um shell do adb, é possível emitir comandos com a ferramenta gerenciador de atividades (am) para executar diversas ações do sistema, como iniciar uma atividade, forçar a parada de um processo, transmitir um intent, modificar as propriedades da tela do dispositivo e muito mais. Em um shell, a sintaxe é a seguinte:

am command

Também é possível emitir um comando do gerenciador de atividades diretamente do adb sem entrar em um shell remoto. Por exemplo:

adb shell am start -a android.intent.action.VIEW

Tabela 2. Comandos do gerenciador de atividades disponíveis

Comando Descrição
start [options] intent Inicia uma Activity especificada pelo intent.

Consulte Especificação para argumentos de intent.

As opções são as seguintes:

  • -D: ativa a depuração.
  • -W: aguarda a conclusão da inicialização.
  • --start-profiler file: inicia o criador de perfis e envia os resultados para file.
  • -P file: semelhante a --start-profiler, mas a criação de perfil é interrompida quando o aplicativo fica ocioso.
  • -R count: repete a inicialização de atividades count vezes. Antes de cada repetição, a primeira atividade será concluída.
  • -S: força a parada do aplicativo de destino antes de iniciar a atividade.
  • --opengl-trace: ativa o rastreamento de funções OpenGL.
  • --user user_id | current: especifica em que nome de usuário executar; se a opção não for especificada, executa como o usuário atual.
startservice [options] intent Inicia o Service especificado pelo intent.

Consulte Especificação para argumentos de intent.

As opções são as seguintes:

  • --user user_id | current: especifica em que nome de usuário executar; se a opção não for especificada, executa como o usuário atual.
force-stop package Força a parada de todos os elementos associados a package (o nome do pacote do aplicativo).
kill [options] package Encerra todos os processos associados a package (o nome do pacote do aplicativo). Esse comando encerra apenas processos que podem ser encerrados com segurança e que não afetarão a experiência do usuário.

As opções são as seguintes:

  • --user user_id | all | current: especifica o usuário cujos processos devem ser encerrados; se a opção não for especificada, encerra os processos de todos os usuários.
kill-all Encerra todos os processos em segundo plano.
broadcast [options] intent Emite um intent de transmissão.

Consulte Especificação para argumentos de intent.

As opções são as seguintes:

  • [--user user_id | all | current]: especifica a qual usuário enviar; se a opção não for especificada, envia para todos os usuários.
instrument [options] component Começa a monitorar com uma instância de Instrumentation. Geralmente, o component de destino segue o formato test_package/runner_class.

As opções são as seguintes:

  • -r: exibe resultados brutos (caso contrário, decodifica report_key_streamresult). Use com [-e perf true] para gerar uma saída bruta para as medições de desempenho.
  • -e name value: define o argumento name como value. Para testes, um formato comum é -e testrunner_flag value[,value...].
  • -p file: grava dados de perfis em file.
  • -w: aguarda a conclusão da instrumentação antes de retornar. Obrigatório para testes.
  • --no-window-animation: desativa animações de janela durante a execução.
  • --user user_id | current: especifica em nome de qual usuário a instrumentação deve ser executada; se a opção não for especificada, executa a instrumentação em nome do usuário atual.
profile start process file Inicia o criador de perfis em process, grava os resultados em file.
profile stop process Interrompe o criador de perfis em process.
dumpheap [options] process file Despeja a pilha de process, grava em file.

As opções são as seguintes:

  • --user [user_id|current]: ao fornecer um nome de processo, especifica o usuário do processo a ser despejado; se a opção não for especificada, usa o usuário atual.
  • -n: despeja a pilha nativa em vez da gerenciada.
set-debug-app [options] package Configura o package do aplicativo para depuração.

As opções são as seguintes:

  • -w: espera pelo depurador quando o aplicativo for iniciado.
  • --persistent: mantém esse valor.
clear-debug-app Limpa o pacote configurado para depuração com set-debug-app.
monitor [options] Começa a monitorar falhas ou ANRs.

As opções são as seguintes:

  • --gdb: inicia gdbserv na porta em questão na falha/ANR.
screen-compat {on|off} package Controla o modo de compatibilidade de tela do package.
display-size [reset|widthxheight] Modifica o tamanho da tela do emulador/dispositivo. Esse comando é útil para testar seu aplicativo em diferentes tamanhos de tela, pois ele imita a resolução de telas pequenas usando um dispositivo com uma tela maior, e vice-versa.

Exemplo:
am display-size 1280x800

display-density dpi Modifica a densidade da tela do emulador/dispositivo. Esse comando é útil para testar seu aplicativo em diferentes densidades de tela, pois ele imita telas de alta densidade usando uma tela de baixa densidade, e vice-versa.

Exemplo:
am display-density 480

to-uri intent Exibe a especificação de intent fornecida como um URI.

Consulte Especificação para argumentos de intent.

to-intent-uri intent Exibe a especificação de intent fornecida como intent: URI.

Consulte Especificação para argumentos de intent.

Chame o gerenciador de pacotes (pm)

Em um shell do adb, você pode emitir comandos com a ferramenta gerenciador de pacotes (pm) para executar ações e consultas em pacotes de aplicativos instalados no dispositivo. Em um shell, a sintaxe é a seguinte:

pm command

Você também pode emitir um comando do gerenciador de pacotes diretamente do adb sem entrar em um shell remoto. Por exemplo:

adb shell pm uninstall com.example.MyApp

Tabela 3. Comandos do gerenciador de pacotes disponíveis.

Comando Descrição
list packages [options] filter Exibe todos os pacotes ou, opcionalmente, apenas os pacotes cujos nomes estiverem incluídos no texto de filter.

Opções:

  • -f: visualizar o arquivo associado.
  • -d: filtrar para mostrar apenas pacotes desativados.
  • -e: filtrar para mostrar apenas pacotes ativados.
  • -s: filtrar para mostrar apenas pacotes do sistema.
  • -3: filtrar para mostrar apenas pacotes de terceiros.
  • -i: visualizar o instalador dos pacotes.
  • -u: também incluir pacotes não instalados.
  • --user user_id: o espaço do usuário a consultar.
list permission-groups Exibe todos os grupos de permissões conhecidos.
list permissions [options] group Exibe todas as permissões conhecidas ou, opcionalmente, apenas as que estiverem em group.

Opções:

  • -g: organiza por grupo.
  • -f: exibe todas as informações.
  • -s: resumo breve.
  • -d: lista apenas permissões perigosas.
  • -u: lista apenas as permissões que o usuário visualizará.
list instrumentation [options] Lista todos os pacotes de teste.

Opções:

  • -f: lista o arquivo de APK do pacote de teste.
  • target_package: lista os pacotes de teste apenas deste aplicativo.
list features Exibe todos os recursos do sistema.
list libraries Exibe todas as bibliotecas compatíveis com o dispositivo atual.
list users Exibe todos os usuários no sistema.
path package Exibe o caminho para o APK do package em questão.
install [options] path Instala um pacote (especificado por path) no sistema.

Opções:

  • -l: instala o pacote com um bloqueio de encaminhamento.
  • -r: reinstala um aplicativo existente, mantendo seus dados.
  • -t: permite que APKs de teste sejam instalados.
  • -i installer_package_name: especifica o nome do pacote do instalador.
  • -s: instala o pacote no armazenamento em massa compartilhado (como sdcard).
  • -f: instala o pacote na memória interna do sistema.
  • -d: permite o downgrade do código de versão.
  • -g: concede todas as permissões listadas no manifesto do aplicativo.
uninstall [options] package Remove um pacote do sistema.

Opções:

  • -k: mantém os dados e os diretórios de cache após a remoção do pacote.
clear package Exclui todos os dados associados a um pacote.
enable package_or_component Ativa o pacote ou componente em questão (gravado como "package/class").
disable package_or_component Desativa o pacote ou componente em questão (gravado como "package/class").
disable-user [options] package_or_component

Opções:

  • --user user_id: o usuário a ser desativado.
grant package_name permission Concede uma permissão a um aplicativo. Em dispositivos com o Android 6.0 (nível de API 23) e posteriores, essa permissão pode ser qualquer uma que tenha sido declarada no manifesto do aplicativo. Em dispositivo com o Android 5.1 (nível de API 22) e anteriores, essa permissão deve ser uma permissão opcional definida pelo aplicativo.
revoke package_name permission Revoga uma permissão de um aplicativo. Em dispositivos com o Android 6.0 (nível de API 23) e posteriores, essa permissão pode ser qualquer uma que tenha sido declarada no manifesto do aplicativo. Em dispositivo com o Android 5.1 (nível de API 22) e anteriores, essa permissão deve ser uma permissão opcional definida pelo aplicativo.
set-install-location location Altera o local de instalação padrão. Valores de local:
  • 0: Automático — permite que o sistema defina o melhor local.
  • 1: Interno — instala no armazenamento interno do dispositivo.
  • 2: Externo — instala em uma mídia externa.

Observação: essa opção é destinada apenas à depuração; seu uso pode causar falhas de aplicativo e outros comportamentos indesejáveis.

get-install-location Retorna o local de instalação atual. Valores de retorno:
  • 0 [auto]: permite que o sistema defina o melhor local
  • 1 [internal]: instala no armazenamento interno do dispositivo
  • 2 [external]: instala em uma mídia externa
set-permission-enforced permission [true|false] Especifica se a permissão deve ser aplicada.
trim-caches desired_free_space Reduz arquivos em cache para alcançar o espaço livre fornecido.
create-user user_name Cria um novo usuário com o user_name fornecido, exibindo o identificador de novo usuário do usuário.
remove-user user_id Remove o usuário com o user_id fornecido, excluindo todos os dados associados a esse usuário.
get-max-users Exibe o número máximo de usuários permitido pelo dispositivo.

Registre uma captura de tela

O comando screencap é um utilitário do shell para registrar uma captura de tela de um dispositivo. Em um shell, a sintaxe é a seguinte:

screencap filename

Para usar o screencap na linha de comando, digite o seguinte:

$ adb shell screencap /sdcard/screen.png

Eis um exemplo de uma sessão de captura de tela fita com o shell do adb para registrar a captura e o comando pull para baixar o arquivo do dispositivo:

$ adb shell
shell@ $ screencap /sdcard/screen.png
shell@ $ exit
$ adb pull /sdcard/screen.png

Grave um vídeo

O comando screenrecord é um utilitário do shell para gravar a tela de dispositivos com o Android 4.4 (nível de API 19) e versões posteriores. O utilitário grava as atividades na tela em um arquivo MPEG-4.

Observação: o áudio não é gravado nesse arquivo de vídeo.

Um desenvolvedor pode usar esse arquivo para criar vídeos promocionais ou de treinamento. Em um shell, a sintaxe é a seguinte:

screenrecord [options] filename

Para usar o screenrecord na linha de comando, digite o seguinte:

$ adb shell screenrecord /sdcard/demo.mp4

Para parar a gravação da tela, pressione Ctrl + C, senão a gravação parará automaticamente após três minutos ou depois do limite de tempo definido por --time-limit.

Para começar a gravar a tela do seu dispositivo, execute o screenrecord para gravar o vídeo. Em seguida, execute o comando pull para baixar o vídeo do dispositivo para o computador host. Veja um exemplo de sessão de gravação:

$ adb shell
shell@ $ screenrecord --verbose /sdcard/demo.mp4
(press Control + C to stop)
shell@ $ exit
$ adb pull /sdcard/demo.mp4

O utilitário screenrecord pode gravar em qualquer resolução e taxa de bits compatível que você solicitar, manando a taxa de proporção da tela do dispositivo. O utilitário grava na resolução e orientação nativa da tela por padrão, com uma duração máxima de três minutos.

O utilitário screenrecord tem algumas limitações das quais você deve estar ciente ao usá-lo:

Tabela 4. Opções do screenrecord

Opções Descrição
--help Exibe a sintaxe e as opções do comando
--size widthxheight Define o tamanho do vídeo: 1280x720. O valor padrão é a resolução nativa da tela do dispositivo se ela for compatível ou 1280x720 se não for. Para obter os melhores resultados, use um tamanho compatível com o codificador de Advanced Video Coding (AVC) do seu dispositivo.
--bit-rate rate Define a taxa de bits do vídeo em megabits por segundo. O valor padrão é 4 Mbps. É possível aumentar a taxa de bits para melhorar a qualidade do vídeo, mas isso resultará em arquivos de filme mais pesados. O exemplo a seguir define a taxa de bits da gravação para 6 Mbps:
screenrecord --bit-rate 6000000 /sdcard/demo.mp4
--time-limit time Define o tempo máximo de gravação em segundos. O valor padrão e máximo é 180 (3 minutos).
--rotate Gira a saída em 90°. Esse recurso é experimental.
--verbose Exibe informações de registro na tela da linha de comando. Se você não definir essa opção, o utilitário não exibirá informações durante a execução.

Leia perfis do ART para aplicativos

A partir do Android 7.0 (nível de API 24), o Android Runtime (ART) coleta perfis dos aplicativos instalados, usados para otimizar o desempenho dos aplicativos. É recomendável verificar os perfis coletados para entender quais métodos são executados com mais frequência e quais classes são usadas durante a inicialização do aplicativo.

Para produzir as informações de perfil em forma de texto, use o seguinte comando:

$ adb shell cmd package dump-profiles package

Para recuperar o arquivo produzido, use este comando:

$ adb pull /data/misc/profman/package.txt

Outros comandos do shell

Para obter uma lista de todos os programas de shell disponíveis, use o seguinte comando:

adb shell ls /system/bin

Há ajuda disponível para a maioria dos comandos.

A tabela 5 lista alguns dos comandos do shell do adb mais comuns.

Tabela 5. Outros comandos do shell do adb

Comando do shell Descrição Comentários
dumpsys Exibe os dados do sistema na tela. A ferramenta Dalvik Debug Monitor Server (DDMS) oferece um ambiente de depuração integrado que pode ser mais fácil de usar.
dumpstate Despeja o estado em um arquivo.
logcat [option]... [filter-spec]... Ativa o registro do sistema e do aplicativo e exibe a saída na tela.
dmesg Exibe as mensagens de depuração do kernel na tela.
start Inicia (reinicia) uma instância de emulador/dispositivo.  
stop Interrompe a execução de uma instância de emulador/dispositivo.  
This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)