Descripción general de la CLI de Android

Android CLI es una interfaz de línea de comandos que te permite compilar para Android de manera más sencilla y eficiente con cualquier herramienta que elijas. Estandariza las competencias de desarrollo principales para los flujos de trabajo centrados en el agente, lo que proporciona un punto de entrada a las herramientas, las habilidades y el conocimiento oficiales que necesitas para desarrollar de manera más eficaz. También puede optimizar la CI, el mantenimiento y cualquier otra automatización con secuencias de comandos para la naturaleza cada vez más distribuida del desarrollo de Android.

Por ejemplo, un agente o una secuencia de comandos puede usar la CLI para automatizar la configuración del entorno, crear proyectos nuevos a partir de plantillas y administrar dispositivos virtuales directamente desde tu terminal. También les brinda a tus agentes acceso a las habilidades de Android y a la base de conocimiento especializada de Android para garantizar que tus proyectos apliquen los patrones y las prácticas recomendadas de Android.

Instala Android CLI

Para instalar Android CLI, sigue estos pasos:

  1. Descarga Android CLI.

  2. Para asegurarte de usar la versión más reciente, actualiza Android CLI:

    android update
    

Para verificar si Android CLI ya está instalado en tu máquina, ejecuta which android o command -v android. Si muestra una ruta de acceso, significa que está instalado.

Configuración para agentes

Para ayudar a los agentes a comprender y usar Android CLI, ejecuta init para instalar la habilidad android-cli:

android init

Problemas conocidos

  • Actualmente, el comando android emulator para Windows está inhabilitado.

Si tienes algún problema o deseas enviar comentarios, por favor informa un error.

Configura Android CLI

Crea un archivo .androidrc para aplicar automáticamente marcas y opciones cada vez que invoques Android CLI. Guarda el archivo en la siguiente ubicación, según tu sistema operativo:

  • macOS y Linux: ~/.androidrc
  • Windows: %USERPROFILE%\.androidrc

Agrega las marcas que deseas aplicar automáticamente al archivo, una por línea.

Por ejemplo, para que Android CLI use un SDK de Android específico de forma predeterminada cada vez, agrega la --sdk marca a tu archivo:

--sdk=<path-to-sdk>

Opciones globales

Estas son marcas opcionales que puedes usar con otros comandos de Android CLI.

-h, --help

Uso: android <command> -h

Descripción: Muestra el manual de ayuda de la herramienta o el comando específico en cuestión.

Ejemplos:

  • android -h
  • android create -h

--sdk

Uso: android --sdk=<path-to-sdk> <command>

Descripción: Es la ruta de acceso al SDK de Android que deseas usar para el comando que sigue. Puedes usar la configuración --sdk para anular temporalmente el SDK de Android predeterminado en lugar de cambiar tus variables de entorno globales cada vez que quieras cambiar. Para verificar qué SDK de Android usas de forma predeterminada, ejecuta android info.

Ejemplo: android --sdk=<path/to/sdk> sdk list

Comandos

En esta sección, se enumeran todos los comandos de Android CLI y se describe lo que hacen. Todos estos comandos deben ir precedidos por android, por ejemplo android create, android run, etcétera. Los modificadores opcionales se incluyen entre corchetes [], y los argumentos obligatorios no.

create

Uso: android create [--dry-run] [--verbose] [--name=<application-name>] [--output=<dest-path>] [<template-name>]

Descripción: Inicializa un proyecto nuevo a partir de una plantilla. Para ver las opciones de plantilla, ejecuta android create -h.

Argumentos (obligatorios):

  • -o, --output : La ruta de acceso del directorio del proyecto de destino.

Opciones:

  • --dry-run : Simula todo el proceso de creación del proyecto sin guardar ningún archivo. Por ejemplo, puedes realizar una ejecución de prueba para ver qué hacen las diferentes plantillas antes de comprometerte con una.
  • --verbose : Habilita el resultado detallado, incluida la información sobre qué archivos se copian de la plantilla.
  • --name=<application-name> : El nombre del directorio del proyecto. Si se omite, se usa el directorio de salida.
  • <template-name> : El nombre de la plantilla a partir de la cual se creará un proyecto nuevo. Si se omite, se usa empty-activity-agp-9.

Ejemplo: android create --dry-run --verbose empty-activity-agp-9

create list

Uso: android create list

Descripción: Enumera todas las plantillas disponibles para crear un proyecto nuevo.

describe

Uso: android describe [--project_dir=<project-directory>]

Descripción: Analiza un proyecto de Android para generar metadatos descriptivos. Este comando identifica y muestra las rutas de acceso a los archivos JSON que detallan la estructura del proyecto, incluidos los objetivos de compilación y sus ubicaciones de artefactos de salida correspondientes (por ejemplo, archivos APK). Esta información permite que otras herramientas y comandos ubiquen artefactos de compilación de manera eficiente.

Opciones:

  • --project_dir : El directorio del proyecto que se describirá. Si se omite, se usa el directorio actual.

Ejemplo: android describe --project_dir=/path/to/your/project

docs

Uso:

  • android docs search <query>
  • android docs fetch <kb-url>

Descripción: El android docs comando es un proceso de dos pasos para acceder a la base de conocimiento de Android directamente desde la CLI. Primero, busca documentación relacionada con tu consulta usando el comando search. Los resultados de la búsqueda incluirán URLs especiales que comienzan con kb://, que luego puedes usar con el comando fetch para enviar los comandos de documentación a la terminal.

Ejemplos:

  • 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>]

Descripción: Crea un dispositivo virtual.

Opciones:

  • --list-profiles : Enumera los perfiles de dispositivos que se pueden usar para crear un dispositivo.
  • --profile=<profile-name> : Crea un dispositivo con el perfil especificado. Si se omite, se creará el perfil medium_phone.

emulator list

Uso: android emulator list

Descripción: Enumera los dispositivos virtuales disponibles.

emulator start

Uso: android emulator start <device-name>

Descripción: Inicia el dispositivo virtual especificado.

Argumentos (obligatorios):

  • <device-name> : El nombre del dispositivo que se iniciará (por ejemplo, medium_phone). Usa android emulator list para ver los dispositivos disponibles.

Ejemplo: android emulator start medium_phone

emulator stop

Uso: android emulator stop <device-serial-number>

Descripción: Detiene el dispositivo virtual especificado.

Argumentos (obligatorios):

  • <device-serial-number> : El número de serie del dispositivo que se detendrá.

Ejemplo: android emulator stop emulator-5554

info

Uso: android info

Descripción: Muestra la ruta de acceso al SDK de Android predeterminado que se usa. Para cambiar el SDK de Android que se usa, usa --sdk.

init

Uso: android init

Descripción: Configura tu entorno para los agentes instalando la habilidad android-cli.

layout

Uso: android layout [--pretty] [--output] [--diff]

Descripción: Muestra el diseño de la IU de la app para Android activa (conectada a través de un dispositivo físico o un emulador) en formato JSON.

Opciones:

  • -p, --pretty : Da formato al resultado JSON con sangría y saltos de línea para que sea legible.
  • -o, --output : Especifica una ubicación de archivo para guardar el árbol de diseño. Si se omite, el JSON se imprime directamente en stdout.
  • -d, --diff : Muestra una lista de solo los elementos de diseño que cambiaron desde que se tomó la última instantánea interna (la última vez que se ejecutó el diseño), en lugar del árbol de diseño completo.

Ejemplo:: android layout --output=./hierarchy.json

skills add

Las habilidades de Android son instrucciones especiales diseñadas para ayudar a los agentes a comprender y ejecutar mejor patrones específicos que siguen las prácticas recomendadas y la orientación sobre el desarrollo de Android. Para obtener más información, consulta Introducción a las habilidades de Android.

Uso: android skills add [--all] [--agent=<agent-name>] [--skill=<skill-name>]

Descripción: Instala las habilidades de Android en los directorios de habilidades de todos los agentes detectados. Si no tienes ningún directorio de agentes existente y no especificas agentes en particular, las habilidades se instalarán para Gemini y Antigravity en ~/.gemini/antigravity/skills.

Opciones:

  • --all : Agrega todas las habilidades de Android a la vez. Si se omite (y no se especifica --skill), solo se instalará la habilidad android-cli.
  • --agent : Una lista separada por comas de los agentes para los que se instalará la habilidad. Si se omite, la habilidad se instalará para todos los agentes detectados.
  • --skill : El nombre de la habilidad que deseas instalar. Si se omite (y no se especifica --all), solo se instalará la habilidad android-cli.

Ejemplo: android skills add --agent='gemini' edge-to-edge

skills find

Uso: android skills find <string>

Descripción: Busca habilidades que coincidan con una cadena determinada.

Argumentos (obligatorios):

  • string : Cadena que coincide con una descripción de habilidad.

Ejemplo: android skills find 'performance'

skills list

Uso: android skills list [--long]

Descripción: Enumera las habilidades disponibles.

Opciones:

  • --long : Muestra información adicional para cada habilidad, incluida la descripción de la habilidad y para qué agentes ya está instalada.

skills remove

Uso: android skills remove [--agent] --skill=<skill-name>

Descripción: Quita una habilidad. Si no especificas agentes en particular, la habilidad se quitará para todos los agentes.

Argumentos (obligatorios):

  • --skill : El nombre de la habilidad que se quitará.

Opciones:

  • --agent : Una lista separada por comas de los agentes de los que se quitará la habilidad. Si se omite, la habilidad se quitará para todos los agentes.

Ejemplo: android skills remove --agent='gemini' --skill=edge-to-edge

screen capture

Uso: android screen capture [--output] [--annotate]

Descripción: Captura una captura de pantalla del dispositivo conectado.

Opciones:

  • -o, --output : Especifica una ubicación de archivo para guardar la captura de pantalla. Si se omite, los datos PNG sin procesar se imprimirán directamente en stdout.
  • -a, --annotate : Dibuja cuadros delimitadores etiquetados alrededor de todos los elementos de la IU detectados en la imagen para usar con el comando resolve.

Ejemplo: android screen capture --output=ui.png

screen resolve

Uso: android screen resolve --screenshot=<path> --string=<string>

Descripción: Traduce las etiquetas visuales de una captura de pantalla anotada, capturada con screen capture, a coordenadas de pantalla reales (x, y). Es útil para hacer clic en elementos con secuencias de comandos sin tener que calcular sus posiciones de forma manual.

Marcas:

  • --screenshot : La ruta de acceso a la captura de pantalla anotada.
  • --string : Una cadena que incluye al menos un marcador de posición correspondiente a una etiqueta de elemento de la IU en el formato #<number>. La parte #<number> se reemplazará por las coordenadas de la pantalla.

Ejemplo:

Si la etiqueta 5 está en las coordenadas (500, 1000), el comando

android screen resolve --screenshot=ui.png --string="input tap #5"

muestra el resultado

input tap 500 1000

sdk install

Uso: android sdk install <package[@version]> [--beta] [--canary] [--force]

Descripción: Instala los paquetes de SDK especificados.

Argumentos (obligatorios):

  • package[@version] : Una lista separada por espacios de los paquetes que se instalarán. Si no se especifica una versión, se instala la versión más reciente del paquete en el canal (de forma predeterminada, el canal estable).

Opciones:

  • --beta : Incluye paquetes beta.
  • --canary : Incluye paquetes canary.
  • --force : Fuerza la degradación a una versión anterior.

Ejemplos:

  • android sdk install platforms/android-34 build-tools/34.0.0 : Instala las versiones más recientes de los paquetes de la Plataforma de SDK de Android 34 y las Herramientas de compilación del SDK 34.0.0 desde el canal estable.
  • android sdk install platforms/android-34@2 : Instala la versión 2 del paquete de la Plataforma de SDK de Android 34.
  • android sdk install --canary system-images/android-35/google_apis/x86_6 - Instala la versión más reciente de la imagen del sistema de Android 35 desde el canal canary.
  • android sdk install --force platforms/android-33@1 : Revierte a la versión 1 del paquete de la Plataforma de SDK de Android 33 desde el canal estable.

sdk list

Uso: android sdk list <package-pattern>

Descripción: Enumera los paquetes de SDK instalados y disponibles.

Argumentos (obligatorios):

  • <package-pattern> : Filtra paquetes por patrón. Admite expresiones regulares.

Opciones:

  • --all : Muestra todos los paquetes instalados y disponibles.
  • --all-versions : Muestra todas las versiones de cada paquete.
  • --beta : Incluye paquetes beta.
  • --canary : Incluye paquetes canary.

sdk remove

Uso: android sdk remove <package-name>

Descripción: Quita un paquete del SDK.

Argumentos (obligatorios):

  • <package-name> : El nombre del paquete que se quitará.

Ejemplo: android sdk remove build-tools/36.1.0

run

Uso: android run [--debug] [--activity=<activity-name>] [--device=<serial-number>] [--type=<param>] --apks=<apk-paths>

Descripción: Implementa una app para Android en un dispositivo conectado o emulador. No realiza ningún paso de compilación; debes proporcionar las rutas de acceso a los archivos APK que deseas instalar.

Argumentos (obligatorios):

  • --apks : Una lista separada por comas de las rutas de acceso a los archivos APK que deseas instalar. La ruta de acceso es relativa a la ubicación actual en el sistema de archivos.

Opciones:

  • --activity : El nombre de la actividad que se iniciará una vez que se instale el APK. Si hay varias actividades, debes especificar una para iniciarla inicialmente.
  • --debug : Implementa la app en modo de depuración. Después de ejecutar la app en modo de depuración, debes conectar tu depurador desde un IDE, como Android Studio, o una herramienta de línea de comandos para iniciar la depuración.
  • --device : El número de serie del dispositivo de destino o emulador. Solo es necesario si hay varios dispositivos conectados. Para encontrar los números de serie del dispositivo, ejecuta adb devices.
  • --type : El tipo de componente que se iniciará. Usa esto si deseas iniciar un servicio en segundo plano directamente en lugar de una actividad de la IU. Tipos admitidos:
    • ACTIVITY
    • WATCH_FACE
    • TILE
    • COMPLICATION
    • DECLARATIVE_WATCH_FACE

Ejemplos:

  • android run --apks=app/build/outputs/apk/debug/app-debug.apk : Implementa un solo APK en el dispositivo predeterminado.
  • android run --apks=base.apk,density-hdpi.apk,lang-en.apk : Implementa varios APK en el dispositivo predeterminado.
  • android run --apks=app-debug.apk --type=SERVICE --activity=.sync.DataSyncService : Prueba un servicio sin una actividad.
  • android run --apks=app-debug.apk --device=emulator-5554 : Implementa el APK en un dispositivo específico.

sdk update

Uso: android sdk update [--beta] [--canary] [<package-name>]

Descripción: Actualiza uno o todos los paquetes a la versión más reciente del canal (de forma predeterminada, el canal estable). Si no especificas un paquete, se actualizarán todos.

Opciones:

  • <package-name> : El nombre del paquete que se actualizará.
  • --beta : Incluye paquetes beta.
  • --canary : Incluye paquetes canary.
  • --force : Fuerza la degradación a una versión anterior.

Ejemplos:

  • android sdk update : Busca e instala actualizaciones para todo en tu SDK.
  • android sdk update build-tools/34.0.0 : Actualiza el paquete de las Herramientas de compilación del SDK de Android 34.0.0 a la versión más reciente del canal estable.
  • android sdk update --canary platforms/android-35 : Actualiza el paquete de las Plataformas de SDK de Android 35 a la versión más reciente del canal canary.

update

Uso: android update

Descripción: Actualiza Android CLI.

-V, --version

Descripción: Muestra la versión actual de Android CLI.