Panoramica della CLI Android

L'interfaccia a riga di comando di Android è un'interfaccia a riga di comando che ti consente di creare più facilmente e in modo efficiente per Android utilizzando qualsiasi strumento a tua scelta. Standardizza le competenze di sviluppo di base per i workflow incentrati sugli agenti, fornendo un punto di accesso agli strumenti, alle competenze e alle conoscenze ufficiali di cui hai bisogno per sviluppare in modo più efficace. Può anche semplificare l'integrazione continua, la manutenzione e qualsiasi altra automazione basata su script per la natura sempre più distribuita dello sviluppo per Android.

Ad esempio, un agente o uno script può utilizzare la CLI per automatizzare la configurazione dell'ambiente, creare nuovi progetti da modelli e gestire dispositivi virtuali direttamente dal terminale. Inoltre, offre agli agenti l'accesso alle competenze Android e alla knowledge base Android specializzata per garantire che i tuoi progetti applichino i pattern e le best practice consigliati per Android.

Installa la CLI Android

Per installare la CLI Android:

  1. Scarica la CLI Android.

  2. Per assicurarti di utilizzare l'ultima versione, aggiorna la CLI Android:

    android update
    

Per verificare se la CLI Android è già installata sul tuo computer, esegui which android o command -v android: se restituisce un percorso, significa che è installata.

Configurazione per gli agenti

Per aiutare gli agenti a comprendere e utilizzare l'interfaccia a riga di comando di Android, esegui init per installare l'abilità android-cli:

android init

Problemi noti

  • Il comando android emulator per Windows è attualmente disabilitato.

Se riscontri problemi o vuoi fornire un feedback, segnala un bug.

Opzioni globali

Si tratta di flag facoltativi che puoi utilizzare con altri comandi della CLI Android.

-h, --help

Utilizzo: android <command> -h

Descrizione: visualizza il manuale di aiuto per lo strumento o il comando specifico in questione.

Esempi:

  • android -h
  • android create -h

--sdk

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

Descrizione: il percorso dell'SDK Android che vuoi utilizzare per il comando successivo. Puoi utilizzare l'impostazione --sdk per ignorare temporaneamente l'SDK Android predefinito anziché modificare le variabili di ambiente globali ogni volta che vuoi cambiare. Per controllare quale SDK Android utilizzi per impostazione predefinita, esegui android info.

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

Comandi

Questa sezione elenca tutti i comandi della CLI Android e descrive la loro funzione. Tutti questi comandi devono essere preceduti da android, ad esempio android create, android run e così via. I modificatori facoltativi sono racchiusi tra parentesi [], mentre gli argomenti obbligatori non lo sono.

create

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

Descrizione: inizializza un nuovo progetto da un modello. Per visualizzare le opzioni del modello, esegui android create -h.

Argomenti (obbligatori):

  • -o, --output: il percorso della directory del progetto di destinazione.

Opzioni:

  • --dry-run - Simula l'intero processo di creazione del progetto senza salvare effettivamente alcun file. Ad esempio, puoi eseguire un dry run per vedere cosa fanno i diversi modelli prima di sceglierne uno.
  • --verbose: attiva l'output dettagliato, incluse informazioni come i file copiati dal modello.
  • --name=<application-name>: il nome della directory del progetto. Se omesso, viene utilizzata la directory di output.
  • <template-name>: il nome del modello da cui creare un nuovo progetto. Se omesso, viene utilizzato empty-activity-agp-9.

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

create list

Utilizzo: android create list

Descrizione:elenca tutti i modelli disponibili da cui creare un nuovo progetto.

describe

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

Descrizione: analizza un progetto Android per generare metadati descrittivi. Questo comando identifica e restituisce i percorsi dei file JSON che descrivono in dettaglio la struttura del progetto, inclusi i target di build e le posizioni degli artefatti di output corrispondenti (ad esempio, i file APK). Queste informazioni consentono ad altri strumenti e comandi di individuare in modo efficiente gli artefatti di build.

Opzioni:

  • --project_dir: la directory del progetto da descrivere. Se omesso, viene utilizzata la directory corrente.

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

docs

Utilizzo:

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

Descrizione: il comando android docs è un processo in due passaggi per accedere alla knowledge base di Android direttamente dalla CLI. Innanzitutto, cerca la documentazione relativa alla tua query utilizzando il comando search. I risultati di ricerca includeranno URL speciali che iniziano con kb://, che puoi poi utilizzare con il comando fetch per visualizzare i comandi della documentazione nel terminale.

Esempi:

  • android docs search 'How do I improve my app performance?'
  • android docs fetch kb://android/topic/performance/overview

emulator create

Utilizzo: android emulator create [--list-profiles] [--profile=<profile-name>]

Descrizione:crea un dispositivo virtuale.

Opzioni:

  • --list-profiles - Elenca i profili dispositivo che possono essere utilizzati per creare un dispositivo.
  • --profile=<profile-name>: crea un dispositivo con il profilo specificato. Se questo valore viene omesso, verrà creato il profilo medium_phone.

emulator list

Utilizzo: android emulator list

Descrizione:elenca i dispositivi virtuali disponibili.

emulator start

Utilizzo: android emulator start <device-name>

Descrizione: avvia il dispositivo virtuale specificato.

Argomenti (obbligatori):

  • <device-name>: il nome del dispositivo da avviare (ad esempio, medium_phone). Utilizza android emulator list per visualizzare i dispositivi disponibili.

Esempio: android emulator start medium_phone

emulator stop

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

Descrizione: arresta il dispositivo virtuale specificato.

Argomenti (obbligatori):

  • <device-serial-number>: il numero di serie del dispositivo da interrompere.

Esempio: android emulator stop emulator-5554

info

Utilizzo: android info

Descrizione:mostra il percorso dell'SDK Android predefinito utilizzato. Per modificare l'SDK Android utilizzato, usa --sdk.

init

Utilizzo: android init

Descrizione: configura l'ambiente per gli agenti installando la skill android-cli.

layout

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

Description: Returns the UI layout of the active Android app (connected through a physical device or emulator) in JSON format.

Opzioni:

  • -p, --pretty: formatta l'output JSON con rientri e interruzioni di riga per renderlo più leggibile.
  • -o, --output: specifica una posizione del file in cui salvare la struttura del layout. Se omesso, il JSON viene stampato direttamente su stdout.
  • -d, --diff: restituisce un elenco solo degli elementi di layout che sono cambiati dall'ultimo snapshot interno (l'ultima volta che è stato eseguito il layout), anziché l'intero albero del layout.

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

skills add

Le competenze Android sono istruzioni speciali progettate per aiutare gli agenti a comprendere ed eseguire meglio pattern specifici che seguono le best practice e le indicazioni sullo sviluppo per Android. Per saperne di più, consulta Introduzione alle skill per Android.

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

Descrizione: installa le skill per Android nelle directory delle skill per tutti gli agenti rilevati. Se non hai directory di agenti esistenti e non specifichi agenti particolari, le skill verranno installate per Gemini e Antigravity all'indirizzo ~/.gemini/antigravity/skills.

Opzioni:

  • --all: aggiungi tutte le competenze Android contemporaneamente. Se omesso (e --skill non è specificato), verrà installata solo l'abilità android-cli.
  • --agent: un elenco separato da virgole di agenti per cui installare la skill. Se omessa, la skill verrà installata per tutti gli agenti rilevati.
  • --skill: il nome della skill che vuoi installare. Se omesso (e --all non è specificato), verrà installata solo l'abilità android-cli.

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

skills find

Utilizzo: android skills find <string>

Descrizione: trova le competenze che corrispondono a una determinata stringa.

Argomenti (obbligatori):

  • string: stringa che corrisponde alla descrizione di un'abilità.

Esempio: android skills find 'performance'

skills list

Utilizzo: android skills list [--long]

Descrizione:elenca le competenze disponibili.

Opzioni:

  • --long - Output di informazioni aggiuntive per ogni skill, tra cui la descrizione della skill e gli agenti per cui è già installata.

skills remove

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

Descrizione: rimuovi una competenza. Se non specifichi agenti particolari, la skill verrà rimossa per tutti gli agenti.

Argomenti (obbligatori):

  • --skill: il nome della competenza da rimuovere.

Opzioni:

  • --agent: un elenco separato da virgole degli agenti da cui rimuovere la skill. Se omessa, la competenza verrà rimossa per tutti gli agenti.

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

screen capture

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

Descrizione:acquisisce uno screenshot del dispositivo connesso.

Opzioni:

  • -o, --output: specifica una posizione del file in cui salvare lo screenshot. Se omessi, i dati PNG non elaborati verranno stampati direttamente su stdout.
  • -a, --annotate: disegna riquadri di delimitazione etichettati intorno a tutti gli elementi dell'interfaccia utente rilevati nell'immagine, da utilizzare con il comando resolve.

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

screen resolve

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

Descrizione:traduce le etichette visive di uno screenshot annotato, acquisito utilizzando screen capture, in coordinate dello schermo effettive (x, y). Utile per lo scripting dei clic sugli elementi senza dover calcolare manualmente le loro posizioni.

Flag:

  • --screenshot: il percorso dello screenshot annotato.
  • --string: una stringa che include almeno un segnaposto corrispondente a un'etichetta di un elemento dell'interfaccia utente nel formato #<number>. La parte #<number> verrà sostituita dalle coordinate dello schermo.

Esempio:

Se l'etichetta 5 si trova alle coordinate (500, 1000), il comando

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

restituisce l'output

input tap 500 1000

sdk install

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

Descrizione:installa i pacchetti SDK specificati.

Argomenti (obbligatori):

  • package[@version]: un elenco separato da spazi dei pacchetti da installare. Se non viene specificata una versione, viene installata l'ultima versione del pacchetto nel canale (per impostazione predefinita il canale stabile).

Opzioni:

  • --beta - Includi pacchetti beta.
  • --canary: includi i pacchetti canary.
  • --force: esegue il downgrade forzato a una versione precedente.

Esempi:

  • android sdk install platforms/android-34 build-tools/34.0.0: installa i pacchetti delle versioni più recenti di SDK Android Platform 34 e SDK Build Tools 34.0.0 dal canale stabile.
  • android sdk install platforms/android-34@2: installa la versione 2 del pacchetto SDK Android Platform 34.
  • android sdk install --canary system-images/android-35/google_apis/x86_6 - Installa l'ultima versione dell'immagine di sistema Android 35 dal canale canary.
  • android sdk install --force platforms/android-33@1: ripristina la versione 1 del pacchetto SDK Android Platform 33 dal canale stabile.

sdk list

Utilizzo: android sdk list <package-pattern>

Descrizione:elenca i pacchetti SDK installati e disponibili.

Argomenti (obbligatori):

  • <package-pattern>: filtra i pacchetti in base al pattern. Supporta le espressioni regolari.

Opzioni:

  • --all - Mostra tutti i pacchetti installati e disponibili.
  • --all-versions: mostra tutte le versioni per ogni pacchetto.
  • --beta - Includi pacchetti beta.
  • --canary: includi i pacchetti canary.

sdk remove

Utilizzo: android sdk remove <package-name>

Descrizione:rimuovi un pacchetto dall'SDK.

Argomenti (obbligatori):

  • <package-name>: il nome del pacchetto da rimuovere.

Esempio: android sdk remove build-tools/36.1.0

run

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

Descrizione: esegui il deployment di un'app per Android su un dispositivo connesso o un emulatore. Non esegue passaggi di build; devi fornire il percorso o i percorsi dei file APK che vuoi installare.

Argomenti (obbligatori):

  • --apks: un elenco separato da virgole dei percorsi dei file APK che vuoi installare. Il percorso è relativo alla posizione attuale nel file system.

Opzioni:

  • --activity: il nome dell'attività da avviare una volta installato l'APK. Se sono presenti più attività, devi specificarne una da avviare inizialmente.
  • --debug - Esegue il deployment dell'app in modalità di debug. Dopo aver eseguito l'app in modalità di debug, devi connettere il debugger da un IDE, come Android Studio, o da uno strumento a riga di comando per iniziare il debug.
  • --device: il numero di serie del dispositivo di destinazione o dell'emulatore. Necessario solo se sono connessi più dispositivi. Per trovare i numeri di serie dei dispositivi, esegui adb devices.
  • --type: il tipo di componente da cui iniziare. Utilizza questo intent se vuoi avviare direttamente un servizio in background anziché un'attività UI. Tipi supportati:
    • ACTIVITY
    • WATCH_FACE
    • TILE
    • COMPLICATION
    • DECLARATIVE_WATCH_FACE

Esempi:

  • android run --apks=app/build/outputs/apk/debug/app-debug.apk - Esegue il deployment di un singolo APK sul dispositivo predefinito.
  • android run --apks=base.apk,density-hdpi.apk,lang-en.apk - Esegue il deployment di più APK sul dispositivo predefinito.
  • android run --apks=app-debug.apk --type=SERVICE --activity=.sync.DataSyncService: testa un servizio senza un'attività.
  • android run --apks=app-debug.apk --device=emulator-5554: esegue il deployment dell'APK su un dispositivo specifico.

sdk update

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

Descrizione: aggiorna uno o tutti i pacchetti all'ultima versione nel canale (per impostazione predefinita il canale stabile). Se non specifichi un pacchetto, tutti i pacchetti verranno aggiornati.

Opzioni:

  • <package-name>: il nome del pacchetto da aggiornare.
  • --beta - Includi pacchetti beta.
  • --canary: includi i pacchetti canary.
  • --force: esegue il downgrade forzato a una versione precedente.

Esempi:

  • android sdk update: controlla e installa gli aggiornamenti per tutti gli elementi dell'SDK.
  • android sdk update build-tools/34.0.0: aggiorna il pacchetto SDK Android Build Tools 34.0.0 all'ultima versione nel canale stabile.
  • android sdk update --canary platforms/android-35: aggiorna il pacchetto Android SDK Platforms 35 all'ultima versione nel canale canary.

update

Utilizzo: android update

Descrizione: aggiorna la CLI Android.

-V, --version

Descrizione: mostra la versione attuale della CLI Android.