Avvia l'emulatore dalla riga di comando

L'SDK Android include un emulatore di dispositivo Android, un dispositivo virtuale che viene eseguito sul computer. L'emulatore Android ti consente di sviluppare e testare app per Android senza utilizzare un dispositivo fisico.

Questa pagina descrive le funzionalità della riga di comando che puoi utilizzare con Android Emulator. Per informazioni sull'utilizzo della UI di Android Emulator, consulta Eseguire app su Android Emulator.

Avvia l'emulatore

Utilizza il comando emulator per avviare l'emulatore, in alternativa a eseguire il progetto o avviarlo tramite AVD Manager.

Ecco la sintassi di base della riga di comando per avviare un dispositivo virtuale da un prompt del terminale:

emulator -avd avd_name [ {-option [value]} … ]

Oppure

emulator @avd_name [ {-option [value]} … ]

Ad esempio, se avvii l'emulatore da Android Studio in esecuzione su un Mac, la riga di comando predefinita sarà simile alla seguente:

/Users/janedoe/Library/Android/sdk/emulator/emulator -avd Pixel8_API_34 -netdelay none -netspeed full -qt-hide-window -grpc-use-token -idle-grpc-timeout

Tieni presente che gli argomenti -qt-hide-window -grpc-use-token -idle-grpc-timeout vengono utilizzati solo per eseguire la finestra dell'emulatore in Android Studio. Se vuoi eseguire l'emulatore nella propria finestra, non devi utilizzare questi parametri aggiuntivi.

Puoi specificare le opzioni di avvio quando avvii l'emulatore, ma non dopo l'avvio.

Per un elenco dei nomi degli AVD, inserisci questo comando:

emulator -list-avds

Utilizza questa opzione per visualizzare un elenco di nomi AVD dalla directory principale di Android. Puoi sostituire la home directory predefinita impostando la variabile di ambiente ANDROID_SDK_HOME che specifica la radice della directory specifica dell'utente in cui vengono archiviati tutti i contenuti di configurazione e AVD.

Puoi impostare la variabile di ambiente nella finestra del terminale prima di avviare un dispositivo virtuale o tramite le impostazioni utente nel sistema operativo. Ad esempio, nel file .bashrc su Linux.

Per arrestare l'emulatore Android, chiudi la finestra dell'emulatore.

Installare un'app

Oltre a installare un'app tramite Android Studio o l'interfaccia utente dell'emulatore, puoi installare l'app su un dispositivo virtuale utilizzando l'utilità adb.

Per utilizzare adb per installare, eseguire e testare la tua app, segui questi passaggi generali:

  1. Crea e pacchettizza la tua app in un APK, come descritto in Crea ed esegui la tua app.
  2. Avvia l'emulatore dalla riga di comando, come descritto nella sezione precedente, utilizzando le opzioni di avvio necessarie.
  3. Installa l'app utilizzando adb.
  4. Esegui e testa l'app sull'emulatore.
    Mentre l'emulatore è in esecuzione, puoi utilizzare la console dell'emulatore per eseguire i comandi in base alle esigenze.

Per disinstallare un'app, procedi come faresti su un dispositivo Android.

Il dispositivo virtuale conserva l'app e i relativi dati di stato nei riavvii in una partizione del disco dei dati utente (userdata-qemu.img). Per cancellare questi dati, avvia l'emulatore con l'opzione -wipe-data o cancella i dati in AVD Manager. Per saperne di più sulla partizione dei dati utente e su altro spazio di archiviazione, consulta la sezione seguente.

Nota:l'utilità adb considera il dispositivo virtuale come un dispositivo fisico reale. Per questo motivo, potresti dover utilizzare il flag -d con alcuni comandi adb comuni, ad esempio install. Il flag -d ti consente di specificare quale dei vari dispositivi connessi utilizzare come destinazione di un comando. Se non specifichi -d, l'emulatore ha come target il primo dispositivo dell'elenco.

Informazioni su directory e file predefiniti

L'emulatore utilizza file associati, di cui le directory di sistema e dei dati AVD sono le più importanti. È utile comprendere la struttura di directory e i file dell'emulatore quando si specificano le opzioni della riga di comando, anche se in genere non è necessario modificare le directory o i file predefiniti.

L'emulatore Android utilizza l'hypervisor (QEMU).

Directory di sistema AVD

La directory di sistema contiene le immagini di sistema Android utilizzate dall'emulatore per simulare il sistema operativo. Questa directory contiene file di sola lettura specifici della piattaforma condivisi da tutti gli AVD dello stesso tipo, inclusi il livello API, l'architettura della CPU e la variante di Android. Le posizioni predefinite sono le seguenti:

  • macOS e Linux - ~/Library/Android/sdk/system-images/android-apiLevel/variant/arch/
  • Windows - C:\Users\user\Library\Android\sdk\system-images\android-apiLevel\variant\arch\

Dove:

  • apiLevel è un livello API numerico o una lettera per le versioni di anteprima. Ad esempio, android-V indica l'anteprima di Android VanillaIceCream. Al momento del rilascio, è diventato il livello API 35, indicato da android-35.
  • variant è un nome corrispondente a funzionalità specifiche implementate dall'immagine di sistema. Ad esempio, google_apis o android-wear.
  • arch è l'architettura CPU di destinazione. Ad esempio, x86.

Utilizza l'opzione -sysdir per specificare una directory di sistema diversa per l'AVD.

L'emulatore legge i seguenti file dalla directory di sistema:

Tabella 1. File della directory di sistema letti dall'emulatore Android

File Descrizione Opzione per specificare un file diverso
kernel-qemu o kernel-ranchu L'immagine del kernel binario per l'AVD. kernel-ranchu si basa sull'emulatore QEMU. -kernel
ramdisk.img L'immagine della partizione di avvio. Si tratta di un sottoinsieme di system.img caricato inizialmente dal kernel prima che venga montata l'immagine di sistema. In genere contiene solo alcuni binari e script di inizializzazione. -ramdisk
system.img La versione iniziale di sola lettura dell'immagine di sistema. Nello specifico, la partizione contenente le librerie di sistema e i dati corrispondenti al livello API e alla variante. -system
userdata.img La versione iniziale della partizione di dati, che viene visualizzata come data/ nel sistema emulato e contiene tutti i dati scrivibili per l'AVD. L'emulatore utilizza questo file quando crei un nuovo AVD o utilizzi l'opzione ‑wipe-data. Per maggiori informazioni, consulta la descrizione del file userdata-qemu.img nella sezione seguente. -initdata
-init-data

Directory dei dati AVD

La directory dei dati AVD, chiamata anche directory dei contenuti, è specifica per una singola istanza AVD e contiene tutti i dati modificabili per l'AVD.

La posizione predefinita è la seguente, dove name è il nome dell'AVD:

  • macOS e Linux - ~/.android/avd/name.avd/
  • Windows 10 e versioni successive - C:\Users\user\.android\name.avd\

Utilizza l'opzione -datadir per specificare una directory di dati AVD diversa.

La tabella seguente elenca i file più importanti contenuti in questa directory:

Tabella 2. File importanti nella directory dei dati AVD

File Descrizione Opzione per specificare un file diverso
userdata-qemu.img

I contenuti della partizione di dati, che vengono visualizzati come data/ nel sistema emulato. Quando crei un nuovo AVD o quando utilizzi l'opzione -wipe-data per ripristinare le impostazioni predefinite di fabbrica dell'AVD, l'emulatore copia il file userdata.img nella directory di sistema per creare questo file.

Ogni istanza di dispositivo virtuale utilizza un'immagine di dati utente scrivibile per archiviare dati specifici dell'utente e della sessione. Ad esempio, utilizza l'immagine per archiviare i dati, le impostazioni, i database e i file delle app installate di un utente unico. Ogni utente ha una directory ANDROID_SDK_HOME diversa che archivia le directory di dati per gli AVD creati da quell'utente. Ogni AVD ha un singolo file userdata-qemu.img.

-data
cache.img L'immagine della partizione della cache, che viene visualizzata come cache/ nel sistema emulato. È vuoto quando crei un AVD o utilizzi l'opzione -wipe-data. Contiene i file di download temporanei e viene compilato dalla gestione dei download e a volte dal sistema. Ad esempio, il browser lo utilizza per memorizzare nella cache le pagine web e le immagini scaricate durante l'esecuzione dell'emulatore. Quando spegni il dispositivo virtuale, il file viene eliminato. Puoi rendere persistente il file utilizzando l'opzione -cache. -cache
sdcard.img

(Facoltativo) Un'immagine della partizione della scheda SD che ti consente di simulare una scheda SD su un dispositivo virtuale. Puoi creare un file immagine della scheda SD in AVD Manager o utilizzando lo strumento mksdcard. Il file è archiviato sul computer di sviluppo e deve essere caricato all'avvio.

Quando definisci un AVD in AVD Manager, puoi scegliere di utilizzare un file della scheda SD gestito automaticamente o un file creato con lo strumento mksdcard. Puoi visualizzare il file sdcard.img associato a un AVD in AVD Manager. L'opzione -sdcard esegue l'override del file della scheda SD specificato nell'AVD. Tieni presente che questa opzione per la scheda SD non funziona su Mac con Apple Silicon.

Puoi sfogliare, inviare, copiare e rimuovere file da una scheda SD simulata utilizzando l'interfaccia utente dell'emulatore o l'utilità adb mentre il dispositivo virtuale è in esecuzione. Non puoi rimuovere una scheda SD simulata da un dispositivo virtuale in esecuzione.

Per copiare i file nel file della scheda SD prima di caricarlo, monta il file immagine come dispositivo di loop e poi copia i file. In alternativa, utilizza un'utilità, ad esempio il pacchetto mtools, per copiare i file direttamente nell'immagine.

L'emulatore considera il file come un pool di byte, quindi il formato della scheda SD non ha importanza.

L'opzione -wipe-data non influisce su questo file. Se vuoi cancellare il file, eliminalo e ricrealo utilizzando AVD Manager o lo strumento mksdcard. La modifica delle dimensioni del file elimina anche il file e ne crea uno nuovo.

-sdcard

Elenca le directory e i file utilizzati dall'emulatore

Puoi scoprire dove si trovano i file in due modi:

  • Utilizza l'opzione -verbose o -debug init quando avvii l'emulatore dalla riga di comando. Esamina l'output.
  • Utilizza il comando emulator -help-option per elencare una directory predefinita. Ad esempio:
    emulator -help-datadir
    Use '-datadir <dir>' to specify a directory where writable image files will be searched. On this system, the default directory is: /Users/me/.android See '-help-disk-images' for more information about disk image files.

Opzioni di avvio della riga di comando

Questa sezione elenca le opzioni che puoi fornire nella riga di comando quando avvii l'emulatore.

Nota:Android Emulator è in continua fase di sviluppo per renderlo più affidabile. Per lo stato dei problemi segnalati in relazione a varie opzioni della riga di comando e per segnalare bug, consulta Android Issue Tracker.

Opzioni più usate

La tabella seguente elenca le opzioni di avvio della riga di comando che potresti utilizzare più spesso:

Tabella 3. Opzioni della riga di comando usate di frequente

Opzione della riga di comando Descrizione
Avvio rapido
-no-snapshot-load Esegue un riavvio a freddo e salva lo stato dell'emulatore all'uscita.
-no-snapshot-save Esegue un avvio rapido, se possibile, ma non salva lo stato dell'emulatore all'uscita.
-no-snapshot Disattiva completamente la funzionalità Avvio rapido e non carica né salva lo stato dell'emulatore.
Hardware del dispositivo
-camera-back mode
-camera-front mode
Imposta la modalità di emulazione per una videocamera rivolta verso la parte posteriore o anteriore. Questa impostazione esegue l'override di qualsiasi impostazione della videocamera nell'AVD.

mode può avere uno dei seguenti valori:

  • emulated: l'emulatore simula una videocamera nel software.
  • webcamn: l'emulatore utilizza una webcam collegata al computer di sviluppo, specificata dal numero. Per un elenco di webcam, utilizza l'opzione -webcam-list. Ad esempio, webcam0.
  • none: disattiva la fotocamera nel dispositivo virtuale.

Ad esempio:

emulator @Pixel8_API_34 -camera-back webcam0
-webcam-list Elenca le webcam sul computer di sviluppo disponibili per l'emulazione. Ad esempio:
emulator @Pixel8_API_34 -webcam-list
        List of web cameras connected to the computer:
        Camera 'webcam0' is connected to device 'webcam0'
        on channel 0 using pixel format 'UYVY'

Nell'esempio, il primo webcam0 è il nome che utilizzi nella riga di comando. Il secondo webcam0 è il nome utilizzato dal sistema operativo sul computer di sviluppo. Il secondo nome varia a seconda del sistema operativo.

A partire da SDK Tools 25.2.4, il nome dell'AVD è obbligatorio.

Immagini disco e memoria
-memory size

Specifica le dimensioni della RAM fisica, da 1536 a 8192 MB. Ad esempio:

emulator @Pixel8_API_34 -memory 2048

Questo valore sostituisce l'impostazione AVD.

-sdcard filepath Specifica il nome del file e il percorso di un file immagine della partizione della scheda SD. Ad esempio:

emulator @Pixel8_API_34 -sdcard C:/sd/sdcard.img

Se il file non viene trovato, l'emulatore viene comunque avviato, ma senza una scheda SD. Il comando restituisce un avviso No SD Card Image.

Se non specifichi questa opzione, il valore predefinito è sdcard.img nella directory dei dati, a meno che l'AVD non specifichi un valore diverso. Per maggiori dettagli sulle schede SD emulate, consulta la sezione Directory dei dati AVD.

-wipe-data Elimina i dati utente e copia i dati dal file di dati iniziale. Questa opzione cancella i dati del dispositivo virtuale e lo riporta allo stato in cui era stato definito inizialmente. Tutte le app e le impostazioni installate vengono rimosse. Ad esempio:

emulator @Pixel8_API_34 -wipe-data

Per impostazione predefinita, il file di dati utente è userdata-qemu.img e il file di dati iniziale è userdata.img. Entrambi i file si trovano nella directory dei dati. L'opzione -wipe-data non influisce sul file sdcard.img. Per ulteriori informazioni sui dati utente, consulta la sezione Informazioni su directory e file predefiniti.

Debug
-debug tags Attiva o disattiva la visualizzazione dei messaggi di debug per uno o più tag. Separa più tag con uno spazio, una virgola o una colonna. Ad esempio:

$ emulator @Pixel8_API_34 -debug init,metrics

Per disattivare un tag, inserisci un trattino (-) davanti. Ad esempio, l'opzione seguente mostra tutti i messaggi di debug, ad eccezione di quelli relativi ai socket di rete e alle metriche:

-debug all,-socket,-metrics

Per un elenco di tag e descrizioni, utilizza l'opzione -help-debug-tags. Ad esempio:

emulator -help-debug-tags

Puoi definire i tag di debug predefiniti nella variabile di ambiente ANDROID_VERBOSE. Definisci i tag che vuoi utilizzare in un elenco separato da virgole. Ecco un esempio che mostra come specificare i tag socket e gles:

ANDROID_VERBOSE=socket,gles

È equivalente a utilizzare:

-debug-socket -debug-gles

o

-debug socket,gles

-debug-tag
-debug-no-tag
Attiva un tipo specifico di messaggio di debug. Utilizza il modulo no per disattivare un tipo di messaggio di debug. Ad esempio:

emulator @Pixel8_API_34 -debug-all -debug-no-metrics

Per un elenco di tag, utilizza il comando emulator -help-debug-tags.

-logcat logtags Consente la visualizzazione dei messaggi Logcat per uno o più tag e li scrive nella finestra del terminale. Ad esempio, il seguente comando attiva i messaggi di errore di tutti i componenti:

emulator @Pixel8_API_34 -logcat *:e

logtags utilizza lo stesso formato del comando adb logcat logtags. Inserisci adb logcat -help per maggiori informazioni. È un elenco di filtri dei log separati da spazi o virgole nel formato componentName:logLevel. componentName è un asterisco jolly (*) o un nome di componente, ad esempio ActivityManager, SystemServer, InputManager, o WindowManager.

logLevel è uno di questi valori:

  • v - verbose
  • d - debug
  • i - informativo
  • w - warning log level
  • e - errore
  • s - silent

L'esempio seguente mostra i messaggi dei componenti GSM a livello di log informativo:

emulator @Pixel8_API_34 -logcat '*:s GSM:i'

Se non fornisci l'opzione -logcat nella riga di comando, l'emulatore cerca la variabile di ambiente ANDROID_LOG_TAGS. Se ANDROID_LOG_TAGS è definito con un valore logtags valido e non è vuoto, l'emulatore utilizza il suo valore per attivare l'output Logcat sul terminale per impostazione predefinita. Puoi anche reindirizzare gli stessi messaggi di log o altri al terminale tramite adb.

Per saperne di più su Logcat e adb, consulta Strumento a riga di comando Logcat, Visualizzare e scrivere log con Logcat, classe Log e Eseguire comandi adb.

-show-kernel Visualizza i messaggi di debug del kernel nella finestra del terminale. Ad esempio:

emulator @Pixel8_API_34 -show-kernel

Un utilizzo di questa opzione è verificare che la procedura di avvio funzioni correttamente.

-verbose Stampa i messaggi di inizializzazione dell'emulatore nella finestra del terminale. Ad esempio:

emulator @Pixel8_API_34 -verbose

Mostra i file e le impostazioni effettivamente selezionati all'avvio di un dispositivo virtuale definito in un AVD. Questa opzione equivale a specificare -debug-init.

Rete
-dns-server servers Utilizza i server DNS specificati. servers è un elenco separato da virgole di un massimo di quattro nomi di server DNS o indirizzi IP. Ad esempio:
emulator @Pixel8_API_34 -dns-server 192.0.2.0,
192.0.2.255

Per impostazione predefinita, l'emulatore tenta di rilevare i server DNS che stai utilizzando e configura alias speciali nella rete firewall emulata per consentire al sistema Android di connettersi direttamente ai server. Utilizza l'opzione -dns-server per specificare un elenco diverso di server DNS.

-http-proxy proxy Stabilisce tutte le connessioni TCP tramite un proxy HTTP/HTTPS specificato. Se l'emulatore deve accedere a internet tramite un server proxy, puoi utilizzare questa opzione o la variabile di ambiente http_proxy per configurare il reindirizzamento appropriato. Ad esempio:

emulator @Pixel8_API_34 -http-proxy myserver:1981

proxy può avere uno dei seguenti valori:

http://server:port
http://username:password@server:port

Il prefisso http:// può essere omesso.

Se questa opzione non viene fornita, l'emulatore cerca la variabile di ambiente http_proxy e utilizza automaticamente qualsiasi valore corrispondente al formato proxy. Per ulteriori informazioni, consulta Utilizzare l'emulatore con un proxy.

-netdelay delay

Imposta l'emulazione della latenza di rete su uno dei seguenti valori delay in millisecondi:

  • gsm - GSM/CSD (min. 150, max. 550).
  • hscsd - HSCSD (min 80, max 400).
  • gprs - GPRS (minimo 35, massimo 200).
  • edge - EDGE/EGPRS (min 80, max 400).
  • umts - UMTS/3G (min 35, max 200).
  • hsdpa - HSDPA (min 0, max 0).
  • lte - LTE (min 0, max 0).
  • evdo - EVDO (min 0, max 0).
  • none: nessuna latenza, valore predefinito (min. 0, max. 0).
  • num: specifica la latenza esatta.
  • min:max: specifica latenze minime e massime individuali.

Ad esempio:

emulator @Pixel8_API_34 -netdelay gsm

L'emulatore supporta la limitazione della rete e latenze di connessione più elevate. Puoi definirlo tramite la configurazione della skin o con le opzioni ‑netspeed e -netdelay.

-netfast Disattiva la limitazione della rete. Ad esempio:

emulator @Pixel8_API_34 -netfast

Questa opzione equivale a specificare -netspeed full -netdelay none. Questi sono i valori predefiniti per queste opzioni.

-netspeed speed

Imposta l'emulazione della velocità di rete. Specifica le velocità massime di caricamento e download della rete con uno dei seguenti valori speed in kbps:

  • gsm - GSM/CSD (invio: 14,4, ricezione: 14,4).
  • hscsd - HSCSD (invio: 14,4, ricezione: 57,6).
  • gprs - GPRS (invio: 28,8, ricezione: 57,6).
  • edge - EDGE/EGPRS (invio: 473,6, ricezione: 473,6).
  • umts - UMTS/3G (invio: 384, ricezione: 384).
  • hsdpa - HSDPA (up: 5760.0, down: 13,980.0).
  • lte - LTE (invio: 58.000, ricezione: 173.000).
  • evdo - EVDO (invio: 75.000, download: 280.000).
  • full - Nessun limite, il valore predefinito (su: 0,0, giù: 0,0).
  • num: specifica sia la velocità di caricamento che quella di download.
  • up:down: specifica le singole velocità di download e upload.

Ad esempio:

emulator @Pixel8_API_34 -netspeed edge

L'emulatore supporta la limitazione della rete e latenze di connessione più elevate. Puoi definirlo tramite la configurazione della skin o con le opzioni ‑netspeed e -netdelay.

-port port Imposta il numero di porta TCP utilizzato per la console e adb. Ad esempio:

emulator @Pixel8_API_34 -port 5556

Il valore predefinito è 5554 per la prima istanza del dispositivo virtuale in esecuzione sulla tua macchina. Un dispositivo virtuale occupa normalmente una coppia di porte adiacenti: una porta della console e una porta adb. La console del primo dispositivo virtuale in esecuzione su una determinata macchina utilizza la porta della console 5554 e la porta adb 5555. Le istanze successive utilizzano numeri di porta che aumentano di due. Ad esempio, 5556/5557, 5558/5559 e così via. L'intervallo è compreso tra 5554 e 5682, consentendo 64 dispositivi virtuali contemporanei.

Le assegnazioni delle porte sono spesso le stesse della specifica di -ports port,{port + 1}. {port + 1} deve essere senza costi ed è riservato a adb. Se una delle porte della console o di adb è già in uso, l'emulatore non si avvierà.

L'opzione ‑port indica le porte e il numero di serie utilizzati dal dispositivo virtuale e avvisa se si verificano problemi con i valori forniti. Nell'interfaccia utente dell'emulatore, puoi visualizzare il numero di porta della console nel titolo della finestra e il numero di porta adb selezionando Guida > Informazioni.

Tieni presente che se il valore port non è pari e rientra nell'intervallo da 5554 a 5584, il dispositivo virtuale si avvierà ma non sarà visibile quando utilizzi il comando adb devices, se adb server inizia dopo l'emulatore. Per questo motivo, ti consigliamo di utilizzare un numero di porta della console pari.

-ports
console-port,adb-port
Imposta le porte TCP utilizzate per la console e adb. Ad esempio:

emulator @Pixel8_API_34 -ports 5556,5559

L'intervallo di porte valido è compreso tra 5554 e 5682, il che consente di utilizzare 64 dispositivi virtuali contemporaneamente. L'opzione -ports indica le porte e il numero di serie utilizzati dall'istanza dell'emulatore e avvisa in caso di problemi con i valori forniti.

Ti consigliamo di utilizzare l'opzione -port, se possibile. L'opzione -ports è disponibile per le configurazioni di rete che richiedono impostazioni speciali.

Per saperne di più sull'impostazione delle porte della console e di adb, consulta l'opzione -port.

-tcpdump filepath Acquisisce i pacchetti di rete e li memorizza in un file. Ad esempio:

emulator @Pixel8_API_34 -tcpdump /path/dumpfile.cap

Utilizza questa opzione per iniziare ad acquisire tutti i pacchetti di rete inviati tramite la LAN Ethernet virtuale dell'emulatore. Successivamente, puoi utilizzare uno strumento come Wireshark per analizzare il traffico.

Tieni presente che questa opzione acquisisce tutti i pacchetti Ethernet e non è limitata alle connessioni TCP.

Sistema
-accel mode Configura l'accelerazione della VM dell'emulatore. Ad esempio:

emulator @Pixel8_API_34 -accel auto

L'emulazione accelerata funziona solo per le immagini di sistema x86 e x86_64. Su Linux, si basa su KVM. Su Windows e Mac, si basa su una CPU Intel e sul driver Intel HAXM. Questa opzione viene ignorata se non emuli un dispositivo x86 o x86_64.

I valori validi per mode sono:

  • auto - Determina automaticamente se l'accelerazione è supportata e la utilizza quando possibile (impostazione predefinita).
  • off: disattiva completamente l'accelerazione, il che è utile principalmente per il debug.
  • on - Forza l'accelerazione. Se KVM o HAXM non è installato o utilizzabile, l'emulatore non si avvia e stampa un messaggio di errore.

Per saperne di più, vedi Configurare l'accelerazione hardware per l'emulatore Android.

-accel-check Controlla se è installato un hypervisor richiesto per l'accelerazione della VM dell'emulatore (HAXM o KVM). Ad esempio:

emulator -accel-check

Per saperne di più, vedi Controllare se è installato un hypervisor.

-engine engine

Specifica il motore dell'emulatore:

  • auto: seleziona automaticamente un motore (impostazione predefinita).
  • classic: utilizza il motore QEMU 1 precedente (ritirato).
  • qemu2: utilizza il nuovo motore QEMU 2.

Ad esempio:

emulator @Pixel8_API_34 -engine auto

Il rilevamento automatico deve scegliere il valore che offre il rendimento migliore quando emula un AVD specifico. Utilizza l'opzione -engine solo per scopi di debug e confronto.

-gpu mode Seleziona la modalità di emulazione della GPU. Ad esempio:

emulator @Pixel8_API_34 -gpu swiftshader_indirect

Per saperne di più, consulta Configurare l'accelerazione grafica.

-no-accel Disattiva l'accelerazione della VM dell'emulatore quando si utilizza un'immagine di sistema x86 o x86_64. È utile solo per il debug ed è uguale a specificare -accel off. Ad esempio:

emulator @Pixel8_API_34 -no-accel

Per saperne di più, vedi Configurare l'accelerazione hardware per l'emulatore Android.

-nojni
-no-jni
Disabilita i controlli JNI (Java Native Interface) estesi nel runtime Android Dalvik o ART. Ad esempio:

emulator @Pixel8_API_34 -nojni

Quando avvii un dispositivo virtuale, i controlli JNI estesi sono attivi per impostazione predefinita. Per maggiori informazioni, consulta i suggerimenti JNI.

-selinux {disabled|permissive} Imposta il modulo di sicurezza Security-Enhanced Linux (SELinux) sulla modalità disabled o permissive su un sistema operativo Linux. Ad esempio:

me-linux$ emulator @Pixel8_API_34 -selinux permissive

Per impostazione predefinita, SELinux è in modalità enforcing, il che significa che la policy di sicurezza è applicata. La modalità permissive carica la policy SELinux, ma non la applica. Questa opzione registra solo le violazioni delle norme. La modalità disabled disattiva il supporto del kernel per SELinux.

-timezone timezone

Imposta il fuso orario per il dispositivo virtuale su timezone anziché sul fuso orario dell'host. Ad esempio:

emulator @Pixel8_API_34 -timezone Europe/Paris

Per impostazione predefinita, l'emulatore utilizza il fuso orario del computer di sviluppo. Utilizza questa opzione per specificare un fuso orario diverso o se il rilevamento automatico non funziona correttamente. Il valore timezone deve essere nel formato zoneinfo, ovvero area/location o area/subarea/location. Ad esempio:

  • America/Los_Angeles
  • Europe/Paris
  • America/Argentina/Buenos_Aires

Il fuso orario specificato deve essere presente nel database zoneinfo.

-version Mostra il numero di versione dell'emulatore. Ad esempio:

emulator @Pixel8_API_34 -version

Oppure

emulator -version
Interfaccia utente
-no-boot-anim Disattiva l'animazione di avvio durante l'avvio dell'emulatore per un avvio più rapido. Ad esempio:

emulator @Pixel8_API_34 -no-boot-anim

Sui computer più lenti, questa opzione può accelerare notevolmente la sequenza di avvio.

-screen mode Imposta la modalità touch screen emulata. Ad esempio:

emulator @Pixel8_API_34 -screen no-touch

mode può avere uno dei seguenti valori:

  • touch: emula un touch screen (impostazione predefinita).
  • multi-touch: emula uno schermo multi-touch.
  • no-touch - Disattiva l'emulazione del touchscreen e del multi-touch.

Opzioni avanzate

Le opzioni di avvio da riga di comando nella tabella seguente sono disponibili, ma non vengono utilizzate di frequente dallo sviluppatore di app medio.

Nelle descrizioni, la directory di lavoro è la directory corrente nel terminale in cui inserisci i comandi. Per informazioni sulla directory di sistema e sulla directory dei dati dell'AVD e sui file archiviati al loro interno, consulta la sezione relativa a directory e file predefiniti.

Alcune di queste opzioni sono adatte agli sviluppatori di app esterni, mentre altre vengono utilizzate principalmente dagli sviluppatori di piattaforme. Gli sviluppatori di app creano app per Android e le eseguono su AVD specifici. Gli sviluppatori di piattaforme lavorano sul sistema Android e lo eseguono all'interno dell'emulatore senza AVD precreato.

Tabella 4. Opzioni avanzate della riga di comando

Opzione avanzata Breve descrizione
-bootchart timeout

Attiva la creazione di grafici di avvio con un timeout in secondi. Alcune immagini di sistema Android hanno un sistema init modificato che integra una funzionalità di bootcharting. Con questa opzione, puoi passare un periodo di timeout di bootcharting al sistema. Se il sistema init non ha attivato bootcharting, l'opzione non fa nulla. Questa opzione è utile principalmente agli sviluppatori di piattaforme, non agli sviluppatori di app esterni.

Ad esempio:

emulator @Pixel8_API_34 -bootchart 120
-cache filepath

Specifica un file immagine della partizione della cache. Fornisce un nome file e un percorso assoluto o un percorso relativo alla directory dei dati per configurare un file di cache persistente. Se il file non esiste, l'emulatore lo crea come file vuoto.

Ad esempio:

emulator @Pixel8_API_34 -cache
   ~/.android/avd/Pixel8_API_34.avd/cache_persistent.img

Se non utilizzi questa opzione, il valore predefinito è un file temporaneo denominato cache.img. Per ulteriori informazioni, consulta la directory dei dati AVD.

-cache-size size

Imposta le dimensioni della partizione della cache in MB.

Ad esempio:

emulator @Pixel8_API_34 -cache-size 1000

Se non specifichi questa opzione, il valore predefinito è 66 MB. In genere, la maggior parte degli sviluppatori di app non ha bisogno di questa opzione, a meno che non debba scaricare file molto grandi che superano la cache predefinita. Per ulteriori informazioni sul file della cache, consulta la sezione Directory dati AVD.

-data filepath

Imposta il file immagine della partizione dei dati utente. Fornisce un nome file e un percorso assoluto o un percorso relativo alla directory di lavoro per configurare un file di dati utente persistente. Se il file non esiste, l'emulatore crea un'immagine dal file userdata.img predefinito, la memorizza nel nome file specificato e salva i dati utente al suo interno all'arresto.

Ad esempio:

emulator @Pixel8_API_34 -data
   ~/.android/avd/Pixel8_API_34.avd/userdata-test.img

Se non utilizzi questa opzione, il valore predefinito è un file denominato userdata-qemu.img. Per saperne di più sul file di dati utente, consulta la directory dei dati AVD.

-datadir dir

Specifica una directory di dati utilizzando un percorso assoluto. Per ulteriori informazioni, consulta la pagina Directory dei dati AVD.

Ad esempio:

emulator @Pixel8_API_34 -datadir
   ~/.android/avd/Pixel8_API_34.avd/mytest
-force-32bit

Utilizza l'emulatore a 32 bit su piattaforme a 64 bit. A volte questa opzione è utile per i test o il debug. Ad esempio, si è verificato un problema per cui l'emulatore a volte non veniva eseguito su Windows a 64 bit, ma su Windows a 32 bit sì. Questa opzione è stata utile per eseguire confronti per eseguire il debug del problema. Ecco un esempio:

emulator @Pixel8_API_34 -force-32bit
-help-disk-images

Ricevi assistenza sulle immagini disco. Questa opzione fornisce informazioni pertinenti sia per gli sviluppatori di app sia per quelli di piattaforme. Ad esempio:

emulator -help-disk-images
-help-char-devices

Ricevi assistenza sulle specifiche del carattere device. Un parametro device è richiesto da alcune opzioni dell'emulatore. Ad esempio:

emulator -help-char-devices
-help-sdk-images

Riceve assistenza sulle immagini disco pertinenti per gli sviluppatori di app. Questa opzione recupera informazioni sulla posizione dei file immagine per un AVD creato con gli strumenti SDK. Ad esempio:

emulator -help-sdk-images
-help-build-images

Riceve assistenza sulle immagini disco pertinenti per gli sviluppatori di piattaforme. Ad esempio:

emulator -help-build-images
-initdata filepath
-init-data filepath

Specifica la versione iniziale della partizione di dati. Dopo aver cancellato i dati utente, l'emulatore copia i contenuti del file specificato nei dati utente (per impostazione predefinita, il file userdata-qemu.img) anziché utilizzare il file userdata.img predefinito come versione iniziale. Specifica il nome file e un percorso assoluto o un percorso relativo alla directory di lavoro.

Ad esempio:

emulator @Pixel8_API_34 -initdata
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/userdata-test.img

Se non specifichi un percorso, il file viene inserito nella directory di sistema. Per ulteriori informazioni, consulta la pagina Directory di sistema AVD.

-kernel filepath

Utilizza un kernel emulato specifico. Se non specifichi un percorso, l'emulatore cerca nella directory di sistema.

Utilizza l'opzione ‑show‑kernel per visualizzare i messaggi di debug del kernel.

Ad esempio:

emulator @Pixel8_API_34 -kernel
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/kernel-test.img -show-kernel

Se non specifichi questa opzione, il valore predefinito è kernel-ranchu. Per ulteriori informazioni, consulta la pagina Directory di sistema AVD.

-noaudio
-no-audio

Disattiva il supporto audio per questo dispositivo virtuale. Alcuni computer Linux e Windows hanno driver audio difettosi che causano sintomi diversi, ad esempio impediscono l'avvio dell'emulatore. In questo caso, utilizza questa opzione per risolvere il problema. In alternativa, puoi utilizzare la variabile di ambiente QEMU_AUDIO_DRV per modificare il backend audio.

Ad esempio:

emulator @Pixel8_API_34 -noaudio
-nocache
-no-cache

Avvia l'emulatore senza una partizione della cache. Se non utilizzi questa opzione, il valore predefinito è un file temporaneo denominato cache.img. Questa opzione è riservata solo agli sviluppatori di piattaforme. Per maggiori informazioni, consulta la pagina Directory dei dati AVD.

Ad esempio:

emulator @Pixel8_API_34 -nocache
-no-snapshot

Inibisce le operazioni di caricamento e salvataggio automatici, facendo sì che l'emulatore esegua una sequenza di avvio completa e perda il suo stato quando viene chiuso. Esegue l'override dell'opzione -snapshot.

Ad esempio:

emulator @Pixel8_API_34 -no-snapshot
-no-snapshot-load

Impedisce all'emulatore di caricare lo stato dell'AVD dallo spazio di archiviazione degli snapshot. Esegue un avvio completo.

Ad esempio:

emulator @Pixel8_API_34 -no-snapshot-load
-no-snapshot-save

Impedisce all'emulatore di salvare lo stato dell'AVD nell'archivio snapshot all'uscita, il che significa che tutte le modifiche andranno perse.

Ad esempio:

emulator @Pixel8_API_34 -no-snapshot-save
-no-snapshot-update-time

Non tenta di correggere immediatamente l'ora dell'AVD al ripristino dello snapshot. Questa opzione può essere utile durante i test, in quanto evita un salto temporale improvviso. Gli aggiornamenti dell'ora vengono comunque inviati all'AVD ogni 15 secondi circa.

Ad esempio:

emulator @Pixel8_API_34 -no-snapshot-update-time
-no-snapstorage

Avvia l'emulatore senza montare un file per archiviare o caricare snapshot dello stato, forzando un avvio completo e disattivando la funzionalità di snapshot dello stato. Questa opzione esegue l'override delle opzioni -snapstorage e -snapshot.

Ad esempio:

emulator @Pixel8_API_34 -no-snapstorage
-no-window

Disattiva la visualizzazione grafica delle finestre nell'emulatore. Questa opzione è utile quando l'emulatore viene eseguito su server senza display. Puoi accedere all'emulatore tramite adb o la console. Ad esempio:

emulator @Pixel8_API_34 -no-window
-partition-size size

Specifica le dimensioni della partizione dei dati di sistema in MB. Ad esempio:

emulator @Pixel8_API_34 -partition-size 1024
-prop name=value

Imposta una proprietà di sistema Android nell'emulatore all'avvio. name deve essere un nome di proprietà etichettato come qemu_prop di massimo 32 caratteri, senza spazi, e value deve essere una stringa di massimo 92 caratteri. Per un esempio, consulta il file property_contexts. Puoi specificare diverse opzioni ‑prop in una riga di comando. Questa opzione può essere utile per il debug. Ad esempio:

emulator @Pixel8_API_34 -prop qemu.name=value -prop qemu.abc=xyz
-qemu args Passa argomenti al software di emulazione QEMU. Quando utilizzi questa opzione, assicurati che sia l'ultima specificata, poiché tutte le opzioni successive vengono interpretate come opzioni specifiche di QEMU. Questa opzione è piuttosto avanzata e deve essere utilizzata solo dagli sviluppatori che hanno molta familiarità con QEMU e l'emulazione di Android.
-qemu -h

Visualizza la guida di -qemu. Ad esempio:

emulator -qemu -h
-ramdisk filepath

Specifica un'immagine di avvio ramdisk. Specifica il nome del file e un percorso assoluto o un percorso relativo alla directory di lavoro.

Ad esempio:

emulator @Pixel8_API_34 -ramdisk
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/ramdisk-test.img

Se non utilizzi questa opzione, il valore predefinito è il file ramdisk.img nella directory di sistema. Per ulteriori informazioni, consulta la pagina Directory di sistema AVD.

-report-console socket

Comunica la porta della console a una terza parte remota prima di avviare l'emulazione. Può essere utile per uno script di test automatizzato. socket deve utilizzare uno di questi formati:

  • tcp:port[,server][,max=seconds][,ipv6]
  • unix:port[,server][,max=seconds][,ipv6]

Per ulteriori informazioni, utilizza l'opzione -help-report-console come descritto nella sezione relativa all'aiuto per opzioni specifiche.

-shell

Crea una console shell root nel terminale corrente. Questa opzione si differenzia dal comando adb shell per i seguenti aspetti:

  • Crea una shell root che ti consente di modificare molte parti del sistema.
  • Funziona anche se il adb daemon nel sistema emulato è rotto.
  • Premi Ctrl+C (o Comando+C su macOS) per arrestare l'emulatore anziché la shell.

Ad esempio:

emulator @Pixel8_API_34 -shell
-snapshot name

Specifica il nome di uno snapshot all'interno di un file di archiviazione degli snapshot per le operazioni di avvio e salvataggio automatiche.

Anziché eseguire una sequenza di avvio completa, l'emulatore può riprendere l'esecuzione da uno snapshot di stato precedente, che di solito è molto più veloce. Quando fornisci questa opzione, l'emulatore carica lo snapshot con quel nome dall'immagine dello snapshot e lo salva di nuovo con lo stesso nome all'uscita.

Se non utilizzi questa opzione, la sequenza di avvio predefinita è una sequenza di avvio completa. Se lo snapshot specificato non esiste, l'emulatore esegue una sequenza di avvio completa ed esegue un'operazione di salvataggio.

Consulta l'opzione -snapstorage per informazioni su come specificare un file di archiviazione dello snapshot e il file predefinito.

emulator @Pixel8_API_34 -snapshot snapshot2

Ricorda che durante il caricamento di uno snapshot, tutti i contenuti del sistema, i dati utente e le immagini della scheda SD vengono sovrascritti con i contenuti che contenevano al momento della creazione dello snapshot. A meno che tu non salvi queste informazioni in un'istantanea diversa, tutte le modifiche apportate da allora andranno perse.

Puoi anche creare uno snapshot dalla console dell'emulatore utilizzando il comando avd snapshot save name. Per ulteriori informazioni, consulta Inviare comandi della console dell'emulatore.

-snapshot-list

Visualizza un elenco degli snapshot disponibili. Questo comando stampa una tabella di snapshot memorizzati nel file di archiviazione degli snapshot con cui è stato avviato l'emulatore, poi esce. Se specifichi anche -snapstorage file, questo comando stampa una tabella degli snapshot archiviati nel file.

Ad esempio:

emulator @Pixel8_API_34 -snapshot-list -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

Puoi utilizzare i valori delle colonne ID e TAG nell'output come argomenti per l'opzione -snapshot.

-snapstorage filepath

Specifica un file del repository che contiene tutti gli snapshot dello stato. Tutti gli snapshot creati durante l'esecuzione vengono salvati in questo file. Solo gli snapshot in questo file possono essere ripristinati durante l'esecuzione dell'emulatore.

Ad esempio:

emulator @Pixel8_API_34 -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

Se non specifichi questa opzione, il valore predefinito è snapshots.img nella directory dei dati. Se il file specificato non esiste, l'emulatore verrà avviato, ma senza supporto per il salvataggio o il caricamento degli snapshot dello stato.

-sysdir dir

Specifica una directory di sistema utilizzando un percorso assoluto. Per saperne di più, consulta Directory di sistema AVD. Ad esempio:

emulator @Pixel8_API_34 -sysdir
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/test
-system filepath

Specifica un file di sistema iniziale. Fornisce il nome file e un percorso assoluto o un percorso relativo alla directory di lavoro.

Ad esempio:

emulator @Pixel8_API_34 -system
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/system-test.img

Se non utilizzi questa opzione, il valore predefinito è il file system.img nella directory di sistema. Per ulteriori informazioni, consulta la pagina Directory di sistema AVD.

-writable-system

Utilizza questa opzione per disporre di un'immagine di sistema scrivibile durante la sessione di emulazione. Per farlo:

  1. Avvia un dispositivo virtuale con l'opzione -writable-system.
  2. Inserisci il comando adb remount da un terminale di comando per indicare all'emulatore di rimontare system/ come lettura/scrittura. Per impostazione predefinita, è montato come di sola lettura.

L'utilizzo di questo flag crea una copia temporanea dell'immagine di sistema che può essere molto grande, fino a diverse centinaia di MB, ma verrà eliminata all'uscita dell'emulatore.

Opzioni obsolete

Le seguenti opzioni della riga di comando sono obsolete:

  • -audio-in
  • -audio-out
  • -charmap
  • -code-profile
  • -cpu-delay
  • -dpi-device
  • -dynamic_skin
  • -enable-kvm
  • -gps
  • -image
  • -keyset
  • -help-keys
  • -help-keyset-file
  • -nand-limits
  • -noskin
  • -no-skin
  • -onion
  • -onion-alpha
  • -onion-rotation
  • -radio
  • -ranchu
  • -raw-keys
  • -scale
  • -shared-net-id
  • -shell-serial
  • -skin
  • -skindir
  • -trace
  • -useaudio

Ricevere assistenza sulle opzioni a riga di comando

Questa sezione descrive come ottenere assistenza sulle opzioni della riga di comando. Fornisce informazioni più approfondite sulle opzioni della riga di comando dell'emulatore di uso comune disponibili all'avvio dell'emulatore.

Elenco di tutte le opzioni dell'emulatore

Per stampare un elenco di tutte le opzioni dell'emulatore, inclusa una breve descrizione, inserisci il seguente comando:

emulator -help

Ricevere assistenza dettagliata per un'opzione specifica

Per stampare la guida per un'opzione di avvio specifica, inserisci il seguente comando:

emulator -help-option

Ad esempio:

emulator -help-netspeed

Queste informazioni sono più dettagliate rispetto alla descrizione fornita dall'opzione -help.

Ricevi assistenza dettagliata per tutte le opzioni

Per ricevere assistenza dettagliata per tutte le opzioni dell'emulatore, inserisci il seguente comando:

emulator -help-all

Elenca le variabili di ambiente dell'emulatore

Per ottenere un elenco delle variabili di ambiente dell'emulatore, inserisci questo comando:

emulator -help-environment

Puoi impostare le variabili di ambiente nella finestra del terminale prima di avviare un dispositivo virtuale oppure puoi impostarle tramite le impostazioni utente nel sistema operativo. Ad esempio, impostalo nel file .bashrc su Linux.

Elenco tag di debug

Per stampare un elenco di tag per le opzioni -debug, inserisci questo comando:

emulator -help-debug-tags

Le opzioni -debug ti consentono di attivare o disattivare i messaggi di debug di componenti specifici dell'emulatore, come specificato dai tag.