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:
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 emulatorpara 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 -handroid 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 usaempty-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 perfilmedium_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). Usaandroid emulator listpara 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 habilidadandroid-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 habilidadandroid-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 comandoresolve.
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, ejecutaadb 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:ACTIVITYWATCH_FACETILECOMPLICATIONDECLARATIVE_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.