Visão geral da CLI do Android

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:

  1. Baixe a CLI do Android.

  2. 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 emulator para 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 -h
  • android 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-9 será 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 perfil medium_phone será 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). Use android emulator list para 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 --skill não for especificado), apenas a habilidade android-cli será 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 --all não for especificado), apenas a skill android-cli será 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 comando resolve.

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, execute adb 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:
    • ACTIVITY
    • WATCH_FACE
    • TILE
    • COMPLICATION
    • DECLARATIVE_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.