A CLI do Android é uma interface de linha de comando que permite criar para Android com mais facilidade e eficiência usando qualquer ferramenta de sua escolha. Ele padroniza as competências principais de desenvolvimento para fluxos de trabalho com priorização de agentes, oferecendo um ponto de entrada para as ferramentas, habilidades e conhecimentos oficiais necessários para desenvolver de forma mais eficaz. Ele também pode simplificar a CI, a manutenção e qualquer outra automação programada para a natureza cada vez mais distribuída do desenvolvimento do Android.
Por exemplo, um agente ou script pode usar a CLI para automatizar a configuração do ambiente, criar novos projetos com base em modelos e gerenciar dispositivos virtuais diretamente do terminal. Ele também dá aos seus agentes acesso a habilidades do Android e à base de conhecimento do Android especializada para ajudar a garantir que seus projetos apliquem padrões e práticas recomendadas do Android.
Instalar a CLI do Android
Para instalar a CLI do Android, siga estas etapas:
Para garantir que você está usando a versão mais recente, atualize a CLI do Android:
android update
Para verificar se a CLI do Android já está instalada na sua máquina, execute
which android ou command -v android: se ela retornar um caminho, significa que está
instalada.
Configurar para agentes
Para ajudar os agentes a entender e usar a CLI do Android, execute init para instalar a
skill android-cli:
android init
Problemas conhecidos
- O comando
android emulatorpara Windows está desativado no momento.
Opções globais
Essas são flags opcionais que podem ser usadas com outros comandos da CLI do Android.
-h, --help
Uso:android <command> -h
Descrição:mostra o manual de ajuda da ferramenta ou do comando específico em questão.
Exemplos:
android -handroid create -h
--sdk
Uso:android --sdk=<path-to-sdk> <command>
Descrição:o caminho para o SDK do Android que você quer usar no
comando a seguir. Você pode usar a configuração --sdk para substituir temporariamente o SDK do Android padrão em vez de mudar as variáveis de ambiente globais sempre que quiser alternar. Para verificar qual SDK do Android você está usando por padrão, execute
android info.
Exemplo: android --sdk=<path/to/sdk> sdk list
Comandos
Esta seção lista todos os comandos da CLI do Android e descreve o que eles fazem.
Todos esses comandos precisam ser precedidos por android, por exemplo
android create, android run e assim por diante. Os modificadores opcionais são incluídos entre colchetes [], e os argumentos obrigatórios não são.
create
Uso:android create [--dry-run] [--verbose] [--name=<application-name>] [--output=<dest-path>] [<template-name>]
Descrição:inicializa um novo projeto com base em um modelo. Para conferir as opções de modelo, execute android create -h.
Argumentos (obrigatórios):
-o, --output: o caminho do diretório do projeto de destino.
Opções:
--dry-run: simula todo o processo de criação do projeto sem salvar nenhum arquivo. Por exemplo, você pode fazer uma simulação para ver o que os diferentes modelos fazem antes de escolher um.--verbose: ativa a saída detalhada, incluindo informações como quais arquivos estão sendo copiados do modelo.--name=<application-name>: o nome do diretório do projeto. Se omitido, o diretório de saída será usado.<template-name>: o nome do modelo para criar um novo projeto. Se omitido,empty-activity-agp-9será usado.
Exemplo: android create --dry-run --verbose empty-activity-agp-9
create list
Uso:android create list
Descrição:lista todos os modelos disponíveis para criar um novo projeto.
describe
Uso:android describe [--project_dir=<project-directory>]
Descrição:analisa um projeto do Android para gerar metadados descritivos. Esse comando identifica e gera os caminhos para arquivos JSON que detalham a estrutura do projeto, incluindo destinos de build e os locais dos artefatos de saída correspondentes (por exemplo, arquivos APK). Essa informação permite que outras ferramentas e comandos localizem artefatos de build com eficiência.
Opções:
--project_dir: o diretório do projeto a ser descrito. Se omitido, o diretório atual será usado.
Exemplo: android describe --project_dir=/path/to/your/project
docs
Uso:
android docs search <query>android docs fetch <kb-url>
Descrição:o comando android docs é um processo de duas etapas para
acessar a base de conhecimento do Android diretamente da CLI.
Primeiro, pesquise a documentação relacionada à sua consulta usando o comando search. Os resultados da pesquisa vão incluir URLs especiais que começam com kb://. Depois, você pode usar esses URLs com o comando fetch para gerar os comandos de documentação no terminal.
Exemplos:
android docs search 'How do I improve my app performance?'android docs fetch kb://android/topic/performance/overview
emulator create
Uso:android emulator create [--list-profiles] [--profile=<profile-name>]
Descrição:crie um dispositivo virtual.
Opções:
--list-profiles: lista os perfis de dispositivo que podem ser usados para criar um dispositivo.--profile=<profile-name>: crie um dispositivo com o perfil especificado. Se isso for omitido, o perfilmedium_phoneserá criado.
emulator list
Uso:android emulator list
Descrição:lista os dispositivos virtuais disponíveis.
emulator start
Uso:android emulator start <device-name>
Descrição:inicia o dispositivo virtual especificado.
Argumentos (obrigatórios):
<device-name>: o nome do dispositivo para iniciar (por exemplo,medium_phone). Useandroid emulator listpara ver os dispositivos disponíveis.
Exemplo: android emulator start medium_phone
emulator stop
Uso:android emulator stop <device-serial-number>
Descrição:interrompe o dispositivo virtual especificado.
Argumentos (obrigatórios):
<device-serial-number>: o número de série do dispositivo a ser interrompido.
Exemplo: android emulator stop emulator-5554
info
Uso:android info
Descrição:mostra o caminho para o SDK do Android padrão usado. Para mudar o SDK do Android usado, use --sdk.
init
Uso:android init
Descrição:configure seu ambiente para agentes instalando a
skill android-cli.
layout
Uso:android layout [--pretty] [--output] [--diff]
Descrição:retorna o layout da interface do app Android ativo (conectado por um dispositivo físico ou emulador) no formato JSON.
Opções:
-p, --pretty: formata a saída JSON com recuo e quebras de linha para facilitar a leitura.-o, --output: especifica um local de arquivo para salvar a árvore de layout. Se omitido, o JSON será impresso diretamente em stdout.-d, --diff: retorna uma lista apenas dos elementos de layout que mudaram desde o último snapshot interno (a última vez que o layout foi executado), em vez da árvore de layout completa.
Exemplo: android layout --output=./hierarchy.json
skills add
As habilidades do Android são instruções especiais projetadas para ajudar os agentes a entender e executar melhor padrões específicos que seguem as práticas recomendadas e orientações sobre o desenvolvimento do Android. Para saber mais, consulte Introdução às habilidades do Android.
Uso:android skills add [--all] [--agent=<agent-name>] [--skill=<skill-name>]
Descrição:instala habilidades do Android nos diretórios de habilidades de todos os agentes detectados. Se você não tiver diretórios de agentes e não especificar agentes específicos, as habilidades serão instaladas para o Gemini e o Antigravity em ~/.gemini/antigravity/skills.
Opções:
--all: adicione todas as habilidades do Android de uma só vez. Se for omitido (e--skillnão for especificado), apenas a habilidadeandroid-cliserá instalada.--agent: uma lista separada por vírgulas de agentes em que a skill será instalada. Se for omitido, a habilidade será instalada para todos os agentes detectados.--skill: o nome da skill que você quer instalar. Se for omitido (e--allnão for especificado), apenas a skillandroid-cliserá instalada.
Exemplo: android skills add --agent='gemini' edge-to-edge
skills find
Uso:android skills find <string>
Descrição:encontra habilidades que correspondem a uma determinada string.
Argumentos (obrigatórios):
string: string que corresponde a uma descrição de habilidade.
Exemplo: android skills find 'performance'
skills list
Uso:android skills list [--long]
Descrição:lista as habilidades disponíveis.
Opções:
--long- Mostra mais informações sobre cada habilidade, incluindo a descrição dela e para quais agentes ela já está instalada.
skills remove
Uso:android skills remove [--agent] --skill=<skill-name>
Descrição:remove uma habilidade. Se você não especificar agentes específicos, a habilidade será removida de todos eles.
Argumentos (obrigatórios):
--skill: o nome da habilidade a ser removida.
Opções:
--agent: uma lista separada por vírgulas de agentes para remover a habilidade. Se omitido, a habilidade será removida de todos os agentes.
Exemplo: android skills remove --agent='gemini' --skill=edge-to-edge
screen capture
Uso:android screen capture [--output] [--annotate]
Descrição:captura uma captura de tela do dispositivo conectado.
Opções:
-o, --output: especifica um local de arquivo para salvar a captura de tela. Se omitido, os dados PNG brutos serão impressos diretamente em stdout.-a, --annotate: desenha caixas delimitadoras rotuladas ao redor de todos os elementos da interface detectados na imagem para usar com o comandoresolve.
Exemplo: android screen capture --output=ui.png
screen resolve
Uso:android screen resolve --screenshot=<path> --string=<string>
Descrição:traduz os rótulos visuais de uma captura de tela anotada, capturada usando screen capture, em coordenadas de tela reais (x, y).
Útil para criar scripts de cliques em elementos sem precisar calcular manualmente as posições deles.
Sinalizações:
--screenshot: o caminho para a captura de tela anotada.--string: uma string que inclui pelo menos um marcador de posição correspondente a um rótulo de elemento da interface no formato#<number>. A parte#<number>será substituída pelas coordenadas da tela.
Exemplo:
Se o marcador 5 estiver nas coordenadas (500, 1000), o comando
android screen resolve --screenshot=ui.png --string="input tap #5"
retorna a saída
input tap 500 1000
sdk install
Uso:android sdk install <package[@version]> [--beta] [--canary] [--force]
Descrição:instala os pacotes do SDK especificados.
Argumentos (obrigatórios):
package[@version]: uma lista de pacotes a serem instalados separada por espaços. Se uma versão não for especificada, a mais recente do pacote no canal (por padrão, o canal estável) será instalada.
Opções:
--beta: inclui pacotes Beta.--canary: inclui pacotes canary.--force: força o downgrade para uma versão mais antiga.
Exemplos:
android sdk install platforms/android-34 build-tools/34.0.0: instale as versões mais recentes dos pacotes SDK do Android Platform 34 e SDK Built Tools 34.0.0 do canal estável.android sdk install platforms/android-34@2- Instale a versão 2 do pacote SDK do Android Platform 34.android sdk install --canary system-images/android-35/google_apis/x86_6- Instale a versão mais recente da imagem do sistema Android 35 no canal canary.android sdk install --force platforms/android-33@1: reverta para a versão 1 do pacote SDK do Android Platform 33 do canal estável.
sdk list
Uso:android sdk list <package-pattern>
Descrição:lista os pacotes do SDK instalados e disponíveis.
Argumentos (obrigatórios):
<package-pattern>: filtra pacotes por padrão. Compatível com expressões regulares.
Opções:
--all: mostra todos os pacotes instalados e disponíveis.--all-versions: mostra todas as versões de cada pacote.--beta: inclui pacotes Beta.--canary: inclui pacotes canary.
sdk remove
Uso:android sdk remove <package-name>
Descrição:remove um pacote do SDK.
Argumentos (obrigatórios):
<package-name>: o nome do pacote a ser removido.
Exemplo: android sdk remove build-tools/36.1.0
run
Uso:android run [--debug] [--activity=<activity-name>] [--device=<serial-number>] [--type=<param>] --apks=<apk-paths>
Descrição:implante um app Android em um dispositivo conectado ou emulador. Ele não executa nenhuma etapa de build. Você precisa fornecer os caminhos para os arquivos APK que quer instalar.
Argumentos (obrigatórios):
--apks: uma lista separada por vírgulas de caminhos para os arquivos APK que você quer instalar. O caminho é relativo ao local em que você está no sistema de arquivos.
Opções:
--activity: o nome da atividade a ser iniciada assim que o APK for instalado. Se houver várias atividades, especifique uma para iniciar.--debug: implanta o app no modo de depuração. Depois de executar o app no modo de depuração, conecte o depurador em uma IDE, como o Android Studio, ou uma ferramenta de linha de comando para iniciar a depuração.--device: o número de série do dispositivo de destino ou emulador. Só é necessário se vários dispositivos estiverem conectados. Para encontrar os números de série dos dispositivos, executeadb devices.--type: o tipo de componente a ser iniciado. Use isso se quiser iniciar um serviço em segundo plano diretamente em vez de uma atividade de UI. Tipos compatíveis:ACTIVITYWATCH_FACETILECOMPLICATIONDECLARATIVE_WATCH_FACE
Exemplos:
android run --apks=app/build/outputs/apk/debug/app-debug.apk: implanta um único APK no dispositivo padrão.android run --apks=base.apk,density-hdpi.apk,lang-en.apk: implanta vários APKs no dispositivo padrão.android run --apks=app-debug.apk --type=SERVICE --activity=.sync.DataSyncService: teste um serviço sem uma atividade.android run --apks=app-debug.apk --device=emulator-5554: implanta o APK em um dispositivo específico.
sdk update
Uso:android sdk update [--beta] [--canary] [<package-name>]
Descrição:atualiza um ou todos os pacotes para a versão mais recente no canal (por padrão, o canal estável). Se você não especificar um pacote, todos serão atualizados.
Opções:
<package-name>: o nome do pacote a ser atualizado.--beta: inclui pacotes Beta.--canary: inclui pacotes canary.--force: força o downgrade para uma versão mais antiga.
Exemplos:
android sdk update: verifica e instala atualizações para tudo no seu SDK.android sdk update build-tools/34.0.0- Atualize o pacote SDK do Android Build Tools 34.0.0 para a versão mais recente no canal estável.android sdk update --canary platforms/android-35: atualize o pacote Android SDK Platforms 35 para a versão mais recente no canal canary.
update
Uso:android update
Descrição:atualize a CLI do Android.
-V, --version
Descrição:mostra a versão atual da CLI do Android.