L'interfaccia a riga di comando di Android è un'interfaccia che ti consente di creare app per Android in modo più semplice ed efficiente utilizzando qualsiasi strumento di 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 tramite script per la natura sempre più distribuita dello sviluppo di Android.
Ad esempio, un agente o uno script può utilizzare l'interfaccia a riga di comando per automatizzare la configurazione dell'ambiente, creare nuovi progetti da modelli e gestire i dispositivi virtuali direttamente dal terminale. Inoltre, fornisce agli agenti l'accesso alle competenze di Android e alla Knowledge Base specializzata di Android per garantire che i progetti applichino i pattern e le best practice consigliati da Android.
Installare l'interfaccia a riga di comando di Android
Per installare l'interfaccia a riga di comando di Android:
Per assicurarti di utilizzare l'ultima versione, aggiorna l'interfaccia a riga di comando di Android:
android update
Per verificare se l'interfaccia a riga di comando di Android è già installata sul computer, esegui which android o command -v android: se restituisce un percorso, significa che è installata.
Configurare per gli agenti
Per aiutare gli agenti a comprendere e utilizzare l'interfaccia a riga di comando di Android, esegui init per installare la skill android-cli:
android init
Problemi noti
- Il comando
android emulatorper Windows è attualmente disattivato.
Opzioni globali
Si tratta di flag facoltativi che puoi utilizzare con altri comandi dell'interfaccia a riga di comando di Android.
-h, --help
Utilizzo: android <command> -h
Descrizione: visualizza il manuale di aiuto per lo strumento o il comando specifico in questione.
Esempi:
android -handroid create -h
--sdk
Utilizzo: android --sdk=<path-to-sdk> <command>
Descrizione: il percorso dell'SDK Android che vuoi utilizzare per il comando che segue. Puoi utilizzare l'impostazione --sdk per sostituire temporaneamente
l'SDK Android predefinito anziché modificare le tue
variabili di ambiente globali ogni volta che vuoi
cambiare. Per verificare 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 dell'interfaccia a riga di comando di Android e ne descrive la 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 quadre [], 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 utilizzatoempty-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 la struttura del progetto, inclusi i target di build e le relative posizioni degli artefatti di output (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 dall'interfaccia a riga di comando.
Innanzitutto, cerca la documentazione relativa alla query utilizzando il comando search. I risultati di ricerca includeranno URL speciali che iniziano con kb://, che puoi quindi utilizzare con il comando fetch per restituire i comandi della documentazione al 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 omesso, verrà creato il profilomedium_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). Utilizzaandroid emulator listper 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 arrestare.
Esempio: android emulator stop emulator-5554
info
Utilizzo: android info
Descrizione: visualizza 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]
Descrizione: restituisce il layout dell'interfaccia utente dell'app per Android attiva (connessa tramite un dispositivo fisico o un emulatore) in formato JSON.
Opzioni:
-p, --pretty- Formatta l'output JSON con rientri e interruzioni di riga per la leggibilità.-o, --output- Specifica un percorso file in cui salvare l'albero del layout. Se omesso, il JSON viene stampato direttamente su stdout.-d, --diff- Restituisce un elenco solo degli elementi di layout modificati 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 skill di Android sono istruzioni speciali progettate per aiutare gli agenti a comprendere ed eseguire meglio pattern specifici che seguono le best practice e le indicazioni per lo sviluppo di Android. Per saperne di più, consulta Introduzione alle skill di Android.
Utilizzo: android skills add [--all] [--agent=<agent-name>] [--skill=<skill-name>]
Descrizione: installa le skill di 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 in ~/.gemini/antigravity/skills.
Opzioni:
--all- Aggiunge tutte le skill di Android contemporaneamente. Se omesso (e se non è specificato--skill), verrà installata solo la skillandroid-cli.--agent- Un elenco separato da virgole di agenti per cui installare la skill. Se omesso, la skill verrà installata per tutti gli agenti rilevati.--skill- Il nome della skill che vuoi installare. Se omesso (e se non è specificato--all), verrà installata solo la skillandroid-cli.
Esempio: android skills add --agent='gemini' edge-to-edge
skills find
Utilizzo: android skills find <string>
Descrizione: trova le skill che corrispondono a una determinata stringa.
Argomenti (obbligatori):
string- Stringa che corrisponde alla descrizione di una skill.
Esempio: android skills find 'performance'
skills list
Utilizzo: android skills list [--long]
Descrizione: elenca le skill disponibili.
Opzioni:
--long- Restituisce informazioni aggiuntive per ogni skill, inclusa la descrizione della skill e gli agenti per cui è già installata.
skills remove
Utilizzo: android skills remove [--agent] --skill=<skill-name>
Descrizione: rimuove una skill. Se non specifichi agenti particolari, la skill verrà rimossa per tutti gli agenti.
Argomenti (obbligatori):
--skill- Il nome della skill da rimuovere.
Opzioni:
--agent- Un elenco separato da virgole di agenti da cui rimuovere la skill. Se omesso, la skill 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 un percorso file in cui salvare lo screenshot. Se omesso, i dati PNG non elaborati verranno stampati direttamente su stdout.-a, --annotate- Disegna riquadri di delimitazione etichettati attorno a tutti gli elementi dell'interfaccia utente rilevati nell'immagine, da utilizzare con il comandoresolve.
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 gli script di 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 dell'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 di 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- Include i pacchetti beta.--canary- Include i pacchetti canary.--force- Forza il downgrade a una versione precedente.
Esempi:
android sdk install platforms/android-34 build-tools/34.0.0- Installa le ultime versioni dei pacchetti SDK Android Platform 34 e SDK Built 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 di ogni pacchetto.--beta- Include i pacchetti beta.--canary- Include i pacchetti canary.
sdk remove
Utilizzo: android sdk remove <package-name>
Descrizione: rimuove 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: esegue il deployment di un'app per Android su un dispositivo connesso o un emulatore. Non esegue alcun passaggio di build; devi fornire il percorso o i percorsi dei file APK che vuoi installare.
Argomenti (obbligatori):
--apks- Un elenco separato da virgole di percorsi dei file APK che vuoi installare. Il percorso è relativo alla posizione corrente nel file system.
Opzioni:
--activity- Il nome dell'attività da avviare dopo l'installazione dell'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 avviare 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, eseguiadb devices.--type- Il tipo di componente da avviare. Utilizza questa opzione se vuoi avviare direttamente un servizio in background anziché un'attività dell'interfaccia utente. Tipi supportati:ACTIVITYWATCH_FACETILECOMPLICATIONDECLARATIVE_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- Prova 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, verranno aggiornati tutti i pacchetti.
Opzioni:
<package-name>- Il nome del pacchetto da aggiornare.--beta- Include i pacchetti beta.--canary- Include i pacchetti canary.--force- Forza il downgrade a una versione precedente.
Esempi:
android sdk update- Controlla e installa gli aggiornamenti per tutti gli elementi del tuo 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 l'interfaccia a riga di comando di Android.
-V, --version
Descrizione: mostra la versione corrente dell'interfaccia a riga di comando di Android.