L'interfaccia a riga di comando di Android è un'interfaccia a riga di comando che ti consente di creare più facilmente ed efficientemente 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 Android.
Ad esempio, un agente o uno script può utilizzare la CLI per svolgere attività come le seguenti:
- Automatizzare la configurazione dell'ambiente
- Strutturare nuovi progetti a partire dai modelli
- Gestisci i dispositivi virtuali direttamente dal terminale
- Testare l'app con i percorsi
La CLI Android offre inoltre 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 da Android.
Installa l'interfaccia a riga di comando Android
Per installare Android CLI:
Per assicurarti di utilizzare l'ultima versione, aggiorna Android CLI:
android update
Per verificare se l'interfaccia a riga di comando di 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 Android CLI, esegui init per installare la
skill android-cli:
android init
Dati raccolti
La CLI Android raccoglie dati sull'utilizzo di base dello strumento. Ecco i dati che raccogliamo:
- Chiamate del comando
androide dei relativi sottocomandi, ad esempioandroid runeandroid create. - Nomi di argomenti o opzioni non posizionali utilizzati, ad esempio
--sdko--version. - Argomenti posizionali e valori dei flag che vengono mappati a un insieme fisso e predefinito di
opzioni di sistema gestite dalla CLI Android. Ad esempio, raccogliamo nomi di modelli di emulatore come
medium_phoneelarge_desktope nomi di agenti comeGEMINI,CLAUDEoCODEX. - Stack trace e messaggi di eccezione, in cui le informazioni identificative vengono anonimizzate prima della raccolta per garantire la privacy.
Ecco alcuni esempi di dati che non raccogliamo:
- Non raccogliamo le risposte della CLI quando viene eseguito un comando.
- Non raccogliamo input creati dagli utenti o identificatori esterni passati
alla CLI, come coordinate Maven specifiche, percorsi di file locali o
nomi di progetti personalizzati. Ad esempio, se viene eseguito il comando
android create --name=com.company.internal.app, registriamo cheandroid createè stato eseguito utilizzando l'argomento--name, ma non memorizziamo il valorecom.company.internal.app.
Problemi noti
- Il comando
android emulatorper Windows è attualmente disabilitato. - Il download della CLI Android da Windows PowerShell non è attualmente supportato.
Se riscontri problemi o vuoi fornire un feedback, segnala un bug.
Configura l'interfaccia a riga di comando Android
Crea un file .androidrc per applicare automaticamente i flag e le opzioni
ogni volta che richiami la CLI Android. Salva il file nella seguente
posizione, a seconda del sistema operativo:
- macOS e Linux:
~/.androidrc - Windows:
%USERPROFILE%\.androidrc
Aggiungi i flag da applicare automaticamente al file, uno per riga.
Ad esempio, per fare in modo che l'interfaccia a riga di comando Android utilizzi uno specifico SDK Android per impostazione predefinita ogni volta, aggiungi il flag --sdk al file:
--sdk=<path-to-sdk>
Opzioni globali
Si tratta di flag facoltativi che puoi utilizzare con altri comandi CLI 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 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 una simulazione 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 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 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 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 l'albero 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
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 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, eseguiadb devices.--type: il tipo di componente da cui iniziare. Utilizza questa opzione se vuoi avviare direttamente un servizio in background anziché un'attività UI. 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: testa un servizio senza un'attività.android run --apks=app-debug.apk --device=emulator-5554: esegue il deployment dell'APK su un dispositivo specifico.
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 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 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 di pacchetti da installare separati da spazi. 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: forza il downgrade 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
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: forza il downgrade 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.
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 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. Se hai già installato le skill per Android, skills add le aggiorna all'ultima versione.
Opzioni:
--all: installa o aggiorna tutte le skill per Android contemporaneamente. Se omesso (e--skillnon è specificato), verrà installata solo l'abilitàandroid-cli.--agent: un elenco separato da virgole degli agenti per cui installare o aggiornare la skill. Se omessa, la skill verrà installata per tutti gli agenti rilevati.--skill: il nome della skill che vuoi installare o aggiornare. Se omesso (e--allnon è specificato), verrà installata o aggiornata solo la skillandroid-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 a una descrizione della skill.
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
studio check
I comandi studio consentono a te o al tuo agente AI di interagire con
le istanze attive di Android Studio. Se ti connetti a un'istanza in esecuzione, puoi utilizzare le funzionalità dell'IDE per analizzare i file, trovare dichiarazioni e utilizzi di simboli, visualizzare l'anteprima di Compose e cercare le versioni delle dipendenze.
Utilizzo: android studio check
Descrizione: controlla lo stato delle istanze di Android Studio in esecuzione ed elenca i progetti aperti. Esegui prima questo comando per verificare la connessione tra la CLI e l'IDE e per selezionare il PID e il progetto a cui vuoi connetterti, se ce ne sono più di uno.
Esempio di output:
Se è connesso, l'output elenca il PID dell'istanza di Android Studio in esecuzione, la versione e lo stato dei progetti aperti:
pid: 32942
version: Android Studio Quail
Projects:
READY MyApplication /Users/username/AndroidStudioProjects/MyApplication
studio analyze-file
Utilizzo: android studio analyze-file [--pid=<pid>] [--project=<project>] <path>
Descrizione: analizza un file in Android Studio per rilevare errori, avvisi e lint utilizzando il motore di ispezione integrato dell'IDE.
Argomenti (obbligatori):
<path>: il percorso del file Kotlin o Java da analizzare.
Opzioni:
--pid=<pid>: il PID dell'istanza specifica di Android Studio a cui connettersi, se ce ne sono più di una.--project=<project>: il nome del progetto aperto in Android Studio da interrogare, se ce ne sono più di uno. Se esegui il comandoanalyze-fileda una directory di progetto, questo progetto viene utilizzato per impostazione predefinita.
Esempio:
android studio analyze-file \
--project=MyApplication \
/Users/username/AndroidStudioProjects/MyApplication/app/src/main/java/com/example/myapp/MainActivity.kt
studio find-declaration
Utilizzo: android studio find-declaration [--short] [--context-file=<path>] [--pid=<pid>] [--project=<project>] <symbol>
Descrizione:trova il sito di dichiarazione esatto di un simbolo (classe, metodo, variabile, campo, costante o risorsa Android) nel progetto utilizzando la risoluzione semantica.
Argomenti (obbligatori):
<symbol>: il nome del simbolo del codice per trovare la dichiarazione.
Opzioni:
--context-file=<path>: percorso facoltativo di un file contenente un riferimento al simbolo. Fornire un file di contesto aiuta a risolvere simboli ambigui o sovraccarichi fornendo importazioni e ambito.--short: semplifica l'output in modo da visualizzare solo la posizione del file e la corrispondenza della riga.--pid=<pid>: il PID dell'istanza specifica di Android Studio a cui connettersi, se ce ne sono più di una.--project=<project>: il nome del progetto aperto in Android Studio da interrogare, se ce ne sono più di uno. Se esegui il comandofind-declarationda una directory di progetto, questo progetto viene utilizzato per impostazione predefinita.
Esempio:
android studio find-declaration --short HotelDetailScreen
studio find-usages
Utilizzo: android studio find-usages [--short] [--pid=<pid>] [--project=<project>] <symbol>
Descrizione:trova tutti i riferimenti e gli utilizzi di un simbolo nell'intero progetto utilizzando l'analisi semantica.
Argomenti (obbligatori):
<symbol>: il nome del simbolo per cui trovare gli utilizzi.
Opzioni:
--short: semplifica l'output per visualizzare solo le posizioni dei file corrispondenti.--pid=<pid>: il PID dell'istanza specifica di Android Studio a cui connettersi, se ce ne sono più di una.--project=<project>: il nome del progetto aperto in Android Studio da interrogare, se ce ne sono più di uno. Se esegui questo comando da una directory di progetto, questo progetto viene utilizzato per impostazione predefinita.
Esempio:
android studio find-usages --short HotelDetailScreen
studio open-file
Utilizzo: android studio open-file [--pid=<pid>] [--project=<project>] <path>
Descrizione: apre un file direttamente nella finestra dell'editor attivo di Android Studio.
Argomenti (obbligatori):
<path>: il percorso del file da aprire. Può essere specificato in relazione alla directory principale del progetto o come percorso assoluto.
Opzioni:
--pid=<pid>: il PID dell'istanza specifica di Android Studio a cui connettersi, se ce ne sono più di una.--project=<project>: il nome del progetto aperto in Android Studio da interrogare, se ce ne sono più di uno. Se esegui il comandoopen-fileda una directory del progetto, questo progetto viene utilizzato per impostazione predefinita.
Esempio:
android studio open-file app/src/main/java/com/example/myapp/ui/DetailScreen.kt
studio render-compose-preview
Utilizzo: android studio render-compose-preview [--print-semantics] [--output-image-file=<filename>] [--pid=<pid>] [--project=<project>] <path> <composable>
Descrizione: esegue il rendering di un'anteprima della UI di Jetpack Compose e, facoltativamente, restituisce la struttura semantica del layout. Questa opzione è utile per i test visivi o per consentire agli agenti AI di lavorare con il layout dell'interfaccia utente.
Argomenti (obbligatori):
<path>: il percorso del file Kotlin contenente l'anteprima di Compose.<composable>: il nome della funzione di anteprima componibile (contrassegnata con@Preview).
Opzioni:
--output-image-file=<filename>: specifica il nome del file in cui scrivere l'immagine PNG di rendering risultante. Se omesso, viene creato un file temporaneo.--print-semantics- Se true, stampa l'albero semantico di accessibilità dell'anteprima di Compose in formato JSON. In questo modo gli agenti possono analizzare la struttura e gli elementi interattivi dell'interfaccia utente.--pid=<pid>: il PID dell'istanza specifica di Android Studio a cui connettersi, se ce ne sono più di una.--project=<project>: il nome del progetto aperto in Android Studio da interrogare, se ce ne sono più di uno. Se esegui il comandorender-compose-previewdall'interno di una directory del progetto, questo progetto viene utilizzato per impostazione predefinita.
Esempio:
android studio render-compose-preview \
--output-image-file=preview_hotel.png \
--print-semantics \
app/src/main/java/com/example/myapp/ui/DetailScreen.kt \
HotelDetailScreenPreview
studio version-lookup
Utilizzo: android studio version-lookup [--pid=<pid>] [--project=<project>] <artifacts...>
Descrizione: cerca le ultime versioni disponibili di dipendenze comuni, piattaforme Android e strumenti SDK in repository come Google Maven. In questo modo viene fornita un'alternativa programmatica al controllo manuale della versione delle dipendenze.
Argomenti (obbligatori):
<artifacts...>: un elenco di identificatori separati da spazi. Puoi eseguire query su più artefatti in un unico comando. Gli identificatori supportati includono:- Librerie Maven: la notazione
groupId:artifactId(ad esempio,androidx.window:window). - Plug-in Gradle: l'ID plug-in (ad esempio,
com.android.application). - Parole chiave:
gradle(strumento di compilazione Gradle)studio(Android Studio)agp(plug-in Android per Gradle)ndk(Android NDK)sdk(SDK Android)emulator(emulatore Android)adb(Android Debug Bridge)compose(distinta base di Jetpack Compose)kotlin(runtime e compilatore Kotlin)android(versioni del sistema operativo Android)platform-tools(Android SDK Platform-Tools)cmdline-tools(strumenti a riga di comando dell'SDK Android)build-tools(Android SDK Build-Tools)
- Librerie Maven: la notazione
Opzioni:
--pid=<pid>: il PID dell'istanza specifica di Android Studio a cui connettersi, se ce ne sono più di una.--project=<project>: il nome del progetto aperto in Android Studio da interrogare, se ce ne sono più di uno. Se esegui il comandoversion-lookupda una directory di progetto, questo progetto viene utilizzato per impostazione predefinita.
Esempio:
android studio version-lookup \
androidx.compose.ui:ui \
com.android.application \
agp \
kotlin
update
Utilizzo: android update
Descrizione: aggiorna la CLI Android.
-V, --version
Descrizione: mostra la versione attuale della CLI Android.