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. Ela 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 realizar tarefas como as seguintes:
- Automatizar a configuração do ambiente
- Estruturar novos projetos com base em modelos
- Gerenciar dispositivos virtuais diretamente do terminal
- Testar o app com as Jornadas
A CLI do Android também dá aos seus agentes acesso a habilidades do Android e à base de conhecimento especializada do Android 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
Dados coletados
A CLI do Android coleta dados sobre o uso básico da ferramenta. Estes são os dados que coletamos:
- Invocações do comando
androide subcomandos, por exemplo,android runeandroid create. - Nomes de argumentos ou opções não posicionais usados, por exemplo,
--sdkou--version. - Argumentos posicionais e valores de flags que são mapeados para um conjunto fixo e predefinido de
opções do sistema gerenciadas pela CLI do Android. Por exemplo, coletamos nomes de modelos de emulador, como
medium_phoneelarge_desktop, e nomes de agentes, comoGEMINI,CLAUDEouCODEX. - Rastreamentos de pilha e mensagens de exceção, em que as informações de identificação são anonimizadas antes da coleta para garantir a privacidade.
Confira alguns exemplos de dados que não coletamos:
- Não coletamos respostas da CLI quando um comando é executado.
- Não coletamos entradas criadas pelo usuário nem identificadores externos transmitidos
para a CLI, como coordenadas específicas do Maven, caminhos de arquivos locais ou
nomes de projetos personalizados. Por exemplo, se o comando
android create --name=com.company.internal.appfor executado, vamos registrar queandroid createfoi executado usando o argumento--name, mas não armazenamos o valorcom.company.internal.app.
Problemas conhecidos
- O comando
android emulatorpara Windows está desativado no momento. - No momento, não é possível fazer o download da CLI do Android no Windows PowerShell.
Se você encontrar algum problema ou quiser enviar feedback, informe um bug.
Configurar a CLI do Android
Crie um arquivo .androidrc para aplicar automaticamente flags e opções
sempre que você invocar a CLI do Android. Salve o arquivo no seguinte local, dependendo do seu sistema operacional:
- macOS e Linux:
~/.androidrc - Windows:
%USERPROFILE%\.androidrc
Adicione as flags que você quer aplicar automaticamente ao arquivo, uma por linha.
Por exemplo, para fazer com que a CLI do Android use um SDK do Android específico por padrão
sempre, adicione a flag --sdk ao seu arquivo:
--sdk=<path-to-sdk>
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). Essas informações permitem 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: liste 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
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.
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. Aceita 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
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.
skills add
As habilidades do Android são instruções especiais criadas 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. Se você já tiver as habilidades do Android
instaladas, o skills add vai atualizar para a versão mais recente.
Opções:
--all: instale ou atualize 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 para instalar ou atualizar a skill. Se for omitido, a habilidade será instalada para todos os agentes detectados.--skill: o nome da skill que você quer instalar ou atualizar. Se for omitido (e--allnão for especificado), apenas a skillandroid-cliserá instalada ou atualizada.
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
studio check
Os comandos studio permitem que você ou seu agente de IA interajam com
instâncias ativas do Android Studio. Ao se conectar a uma instância em execução, você
pode usar os recursos do ambiente de desenvolvimento integrado para analisar arquivos, encontrar declarações e
usos de símbolos, renderizar prévias do Compose e pesquisar versões de dependências.
Uso:android studio check
Descrição:verifica o status das instâncias do Android Studio em execução e lista os projetos abertos. Execute este comando primeiro para verificar a conexão entre a CLI e a IDE e para selecionar o PID e o projeto a que você quer se conectar, se houver vários.
Exemplo de saída:
Se estiver conectado, a saída vai listar o PID da instância em execução do Android Studio, a versão e o status dos projetos abertos:
pid: 32942
version: Android Studio Quail
Projects:
READY MyApplication /Users/username/AndroidStudioProjects/MyApplication
studio analyze-file
Uso:android studio analyze-file [--pid=<pid>] [--project=<project>] <path>
Descrição:analisa um arquivo no Android Studio em busca de erros, avisos e lints usando o mecanismo de inspeção integrado do ambiente de desenvolvimento integrado.
Argumentos (obrigatórios):
<path>: o caminho do arquivo Kotlin ou Java a ser analisado.
Opções:
--pid=<pid>: o PID da instância específica do Android Studio a ser conectada, se houver várias.--project=<project>: o nome do projeto aberto no Android Studio para consultar, se houver vários. Se você executar o comandoanalyze-fileem um diretório de projeto, esse projeto será usado por padrão.
Exemplo:
android studio analyze-file \
--project=MyApplication \
/Users/username/AndroidStudioProjects/MyApplication/app/src/main/java/com/example/myapp/MainActivity.kt
studio find-declaration
Uso:android studio find-declaration [--short] [--context-file=<path>] [--pid=<pid>] [--project=<project>] <symbol>
Descrição:encontra o local exato da declaração de um símbolo (classe, método, variável, campo, constante ou recurso do Android) em todo o projeto usando a resolução semântica.
Argumentos (obrigatórios):
<symbol>: o nome do símbolo de código para encontrar a declaração.
Opções:
--context-file=<path>: caminho opcional para um arquivo que contém uma referência ao símbolo. Fornecer um arquivo de contexto ajuda a resolver símbolos ambíguos ou sobrecarregados, fornecendo importações e escopo.--short: simplifica a saída para mostrar apenas o local do arquivo e a correspondência de linha.--pid=<pid>: o PID da instância específica do Android Studio a ser conectada, se houver várias.--project=<project>: o nome do projeto aberto no Android Studio para consultar, se houver vários. Se você executar o comandofind-declarationem um diretório de projeto, esse projeto será usado por padrão.
Exemplo:
android studio find-declaration --short HotelDetailScreen
studio find-usages
Uso:android studio find-usages [--short] [--pid=<pid>] [--project=<project>] <symbol>
Descrição:encontra todas as referências e usos de um símbolo em todo o projeto usando a análise semântica.
Argumentos (obrigatórios):
<symbol>: o nome do símbolo para encontrar usos.
Opções:
--short: simplifica a saída para mostrar apenas os locais de arquivos correspondentes.--pid=<pid>: o PID da instância específica do Android Studio a ser conectada, se houver várias.--project=<project>: o nome do projeto aberto no Android Studio para consultar, se houver vários. Se você executar esse comando em um diretório de projeto, esse projeto será usado por padrão.
Exemplo:
android studio find-usages --short HotelDetailScreen
studio open-file
Uso:android studio open-file [--pid=<pid>] [--project=<project>] <path>
Descrição:abre um arquivo diretamente na janela do editor ativo do Android Studio.
Argumentos (obrigatórios):
<path>: o caminho do arquivo a ser aberto. Pode ser especificado em relação ao diretório raiz do projeto ou como um caminho absoluto.
Opções:
--pid=<pid>: o PID da instância específica do Android Studio a ser conectada, se houver várias.--project=<project>: o nome do projeto aberto no Android Studio para consultar, se houver vários. Se você executar o comandoopen-fileem um diretório de projeto, esse projeto será usado por padrão.
Exemplo:
android studio open-file app/src/main/java/com/example/myapp/ui/DetailScreen.kt
studio render-compose-preview
Uso:android studio render-compose-preview [--print-semantics] [--output-image-file=<filename>] [--pid=<pid>] [--project=<project>] <path> <composable>
Descrição:renderiza uma prévia da interface do Jetpack Compose e, opcionalmente, retorna a árvore de semântica de layout dela. Isso é útil para testes visuais ou para permitir que agentes de IA trabalhem com o layout da interface.
Argumentos (obrigatórios):
<path>: o caminho para o arquivo Kotlin que contém a prévia do Compose.<composable>: o nome da função de visualização combinável (marcada com@Preview).
Opções:
--output-image-file=<filename>: especifica o nome do arquivo em que a imagem PNG renderizada resultante será gravada. Se omitido, um arquivo temporário será criado.--print-semantics: se for "true", vai imprimir a árvore de semântica de acessibilidade da visualização do Compose renderizada no formato JSON. Isso permite que os agentes analisem a estrutura e os elementos interativos da interface.--pid=<pid>: o PID da instância específica do Android Studio a ser conectada, se houver várias.--project=<project>: o nome do projeto aberto no Android Studio para consultar, se houver vários. Se você executar o comandorender-compose-previewem um diretório de projeto, esse projeto será usado por padrão.
Exemplo:
android studio render-compose-preview \
--output-image-file=preview_hotel.png \
--print-semantics \
app/src/main/java/com/example/myapp/ui/DetailScreen.kt \
HotelDetailScreenPreview
studio version-lookup
Uso:android studio version-lookup [--pid=<pid>] [--project=<project>] <artifacts...>
Descrição:pesquisa as versões mais recentes disponíveis de dependências comuns, plataformas Android e ferramentas do SDK em repositórios como o Google Maven. Isso oferece uma alternativa programática à verificação manual da versão da dependência.
Argumentos (obrigatórios):
<artifacts...>: uma lista de identificadores separada por espaços. É possível consultar vários artefatos em um único comando. Os identificadores compatíveis incluem:- Bibliotecas Maven: a notação
groupId:artifactId(por exemplo,androidx.window:window). - Plug-ins do Gradle: o ID do plug-in (por exemplo,
com.android.application). - Palavras-chave:
gradle(ferramenta de build do Gradle)studio(Android Studio)agp(plug-in do Android para Gradle)ndk(Android NDK)sdk(SDK do Android)emulator(emulador do Android)adb(Android Debug Bridge)compose(lista de materiais do Jetpack Compose)kotlin(tempo de execução e compilador do Kotlin)android(versões do SO Android)platform-tools(Android SDK Platform-Tools)cmdline-tools(ferramentas de linha de comando do SDK do Android)build-tools(Android SDK Build-Tools)
- Bibliotecas Maven: a notação
Opções:
--pid=<pid>: o PID da instância específica do Android Studio a ser conectada, se houver várias.--project=<project>: o nome do projeto aberto no Android Studio para consultar, se houver vários. Se você executar o comandoversion-lookupem um diretório de projeto, esse projeto será usado por padrão.
Exemplo:
android studio version-lookup \
androidx.compose.ui:ui \
com.android.application \
agp \
kotlin
update
Uso:android update
Descrição:atualize a CLI do Android.
-V, --version
Descrição:mostra a versão atual da CLI do Android.