L'emulatore funziona meglio se può utilizzare l'hardware della macchina, come CPU, GPU e modem, anziché funzionare come software puro. La possibilità di utilizzare l'hardware del computer per migliorare le prestazioni è chiamata accelerazione hardware.
L'emulatore può utilizzare l'accelerazione hardware per migliorare la tua esperienza in due modi principali:
- Accelerazione grafica per un rendering migliore dello schermo
- Accelerazione della macchina virtuale (VM) per una maggiore velocità di esecuzione
L'accelerazione hardware è abilitata per impostazione predefinita sulla maggior parte dei computer. Se non è abilitata sul tuo computer, questa pagina descrive come configurare l'accelerazione grafica e della macchina virtuale (VM) per ottenere prestazioni migliori dall'emulatore.
Configurare l'accelerazione grafica
I dispositivi Android utilizzano le API OpenGL for Embedded Systems (OpenGL ES o GLES) e Vulkan per il rendering della grafica sullo schermo. L'accelerazione grafica consente di utilizzare l'hardware del computer (in genere la GPU) per velocizzare il rendering. Sebbene l'accelerazione hardware sia consigliata per le prestazioni, potresti dover utilizzare la modalità software se il tuo computer non è compatibile a causa del supporto dei driver grafici o dei requisiti dell'immagine di sistema mancanti.
Quando crei un Android Virtual Device (AVD) in Gestione AVD, puoi specificare se l'emulatore utilizza il rendering hardware o software. In modalità automatica, l'emulatore decide se utilizzare l'accelerazione grafica hardware o software in base al computer. Puoi anche ignorare l'impostazione se avvii l'emulatore dalla riga di comando.
Configurare l'accelerazione grafica in AVD Manager
Per configurare l'accelerazione grafica per un AVD:
- Apri Gestione dispositivi.
- Crea un nuovo AVD o modifica un AVD esistente.
- Nella finestra Configurazione, individua la sezione Prestazioni emulate nella scheda Impostazioni aggiuntive.
- Seleziona un valore per l'opzione Accelerazione grafica.
- Fai clic su Fine.
Configurare l'accelerazione grafica dalla riga di comando
Per specificare un tipo di accelerazione grafica quando esegui un AVD dalla riga di comando, includi l'opzione -gpu
, come mostrato nell'esempio seguente:
emulator -avd avd_name -gpu mode [{-option [value]} ... ]
Il valore di mode
può essere impostato su una delle seguenti
opzioni:
auto
: consente all'emulatore di scegliere tra l'accelerazione grafica hardware o software in base all'AVD, alla configurazione del computer e alle metriche di qualità.host
: Utilizza la GPU del computer per l'accelerazione hardware. Questa opzione in genere offre la massima qualità e prestazioni grafiche per l'emulatore e può attivare MoltenVK su macOS per il rendering Vulkan accelerato. Tuttavia, se riscontri problemi con l'emulazione grafica, potresti dover passare al rendering software.swiftshader_indirect
: utilizza una variante di SwiftShader compatibile con l'avvio rapido per il rendering della grafica utilizzando l'accelerazione software. Questa opzione è una buona alternativa alla modalitàhost
se il computer non può utilizzare l'accelerazione hardware.
Le seguenti opzioni di mode
sono obsolete:
swiftshader
: deprecato nella versione 27.0.2. Utilizza inveceswiftshader_indirect
.angle
: deprecato nella versione 27.0.2. Utilizza inveceswiftshader_indirect
.mesa
: deprecato nella versione 25.3. Utilizza inveceswiftshader_indirect
.guest
: deprecato per i livelli API 28 e successivi. Utilizza inveceswiftshader_indirect
.angle_indirect
: deprecato nella versione 34.2.14. Utilizza inveceswiftshader_indirect
.
Configura l'accelerazione VM
L'accelerazione della VM utilizza il processore del computer per migliorare in modo significativo la velocità di esecuzione dell'emulatore. Uno strumento chiamato hypervisor gestisce questa interazione utilizzando le estensioni di virtualizzazione fornite dal processore del computer. Questa sezione descrive i requisiti per l'utilizzo dell'accelerazione VM e spiega come configurarla su ogni sistema operativo.
Requisiti generali
Per utilizzare l'accelerazione VM con l'emulatore, il computer deve soddisfare i requisiti generali indicati in questa sezione. Il computer deve soddisfare anche altri requisiti specifici per il sistema operativo.
Requisiti dell'ambiente di sviluppo
Per utilizzare l'accelerazione VM, il tuo ambiente di sviluppo deve soddisfare i seguenti requisiti:
- SDK Tools: Versione minima 17; versione consigliata 26.1.1 o successive
AVD: La versione di Android richiesta è descritta nella tabella seguente.
Architettura CPU Requisito immagine di sistema X86_64 Immagini di sistema x86 o x86_64 per Android 2.3.3 (livello API 10) e versioni successive ARM64 Immagini di sistema arm64-v8a per Android 5.0 (livello API 21) e versioni successive
Requisiti delle estensioni di virtualizzazione
Oltre ai requisiti dell'ambiente di sviluppo, il processore del computer deve supportare le estensioni di virtualizzazione. I processori supportati sono:
- Processori Intel con tecnologia di virtualizzazione Intel (VT-x, vmx), come i processori Intel Core iX e Intel Core Ultra
- Processori AMD con AMD-V (SVM), ad esempio i processori AMD Ryzen
- Apple Silicon
Requisiti aggiuntivi per i processori Intel e AMD:
La traduzione degli indirizzi di secondo livello (Intel EPT o AMD RVI) è obbligatoria per i processori Intel e AMD. La maggior parte dei moderni processori Intel e AMD supportano la traduzione degli indirizzi di secondo livello. Solo i processori Intel o AMD di prima generazione che offrono estensioni di virtualizzazione potrebbero non avere traduzioni di pagine di secondo livello.
Se non sai se il tuo processore supporta le estensioni richieste, controlla le specifiche del processore sul sito del produttore. Se il tuo processore non supporta queste estensioni, non puoi utilizzare l'accelerazione VM.
Restrizioni
L'accelerazione delle VM presenta le seguenti limitazioni:
- Non puoi eseguire un emulatore con accelerazione VM all'interno di un'altra VM, ad esempio una VM ospitata da VirtualBox, VMWare o Docker. Devi eseguire un emulatore con accelerazione VM direttamente sul computer host.
- A seconda del sistema operativo e dell'hypervisor, potresti non essere in grado di eseguire software che utilizza un'altra tecnologia di virtualizzazione contemporaneamente all'esecuzione di un emulatore con accelerazione VM. Esempi di questi software includono, a titolo esemplificativo, soluzioni di macchine virtuali, alcuni programmi antivirus e alcune soluzioni anti-cheat. La situazione si verifica principalmente su Windows con Hyper-V disattivato. La maggior parte di questi software può coesistere con l'emulatore Android senza problemi. Tuttavia, quando si verificano conflitti, è consigliabile non eseguire l'emulatore accelerato dalla VM contemporaneamente a questo software.
Informazioni sugli hypervisor
L'accelerazione della VM richiede un hypervisor, uno strumento che utilizza le estensioni di virtualizzazione fornite dal processore del computer.
Senza un hypervisor e l'accelerazione VM, l'emulatore deve tradurre il codice macchina dal blocco VM blocco per blocco per conformarsi all'architettura del computer host. Questo processo può essere piuttosto lento. Con un hypervisor, quando la VM e l'architettura del computer host corrispondono, l'emulatore può eseguire il codice direttamente sul processore host utilizzando l'hypervisor. Questo miglioramento aumenta drasticamente la velocità e le prestazioni dell'emulatore.
L'hypervisor più adatto a te dipende dal sistema operativo e dalla configurazione del tuo computer. Per maggiori informazioni, consulta una delle seguenti sezioni:
- Configurare l'accelerazione della VM su Windows
- Configurare l'accelerazione della VM su macOS
- Configura l'accelerazione VM su Linux
Controllare se è installato un hypervisor
Puoi utilizzare l'opzione a riga di comando dell'emulatore -accel-check
per verificare se
attualmente è installato un hypervisor sul tuo computer.
I seguenti esempi mostrano come utilizzare l'opzione accel-check
dell'emulatore. In
ogni esempio, Sdk
è la posizione dell'SDK Android:
Windows:
c:\Users\janedoe\AppData\Local\Android> Sdk\emulator\emulator -accel-check accel: 0 WHPX(10.0.22631) is installed and usable. accel
macOS:
janedoe-macbookpro:Android janedoe$ ./Sdk/emulator/emulator -accel-check accel: 0 Hypervisor.Framework OS X Version 13.2 accel
Linux:
janedoe:~/Android$ ./Sdk/emulator/emulator -accel-check accel: 0 KVM (version 12) is installed and usable.
Configura l'accelerazione VM su Windows
L'accelerazione delle VM su Windows può utilizzare uno dei due hypervisor:
- Windows Hypervisor Platform (WHPX)
- Il driver hypervisor dell'emulatore Android (AEHD)
Windows Hypervisor Platform utilizza l'hypervisor Hyper-V fornito da Windows e offre la migliore compatibilità con una ridotta instabilità. Se possibile, devi utilizzare WHPX.
Se il tuo sistema non supporta WHPX o se hai altri dubbi sul suo utilizzo, puoi utilizzare il driver hypervisor dell'emulatore Android.
Configurare l'accelerazione della VM utilizzando Windows Hypervisor Platform
Prima di poter attivare WHPX, il tuo computer deve soddisfare i seguenti requisiti:
- Processori Intel: supporto delle funzionalità Virtualization Technology (VT-x), Extended Page Tables (EPT) e Unrestricted Guest (UG). VT-x deve essere abilitato nelle impostazioni BIOS del computer.
- Processori AMD: consigliato il processore AMD Ryzen. La virtualizzazione o SVM deve essere attivata nelle impostazioni BIOS del computer.
- Android Studio 3.2 Beta 1 o versioni successive
- Android Emulator versione 27.3.8 o successive
- Windows 10 o versioni successive
Per installare WHPX su Windows:
- Dal desktop di Windows, fai clic sull'icona di Windows per aprire il menu Start.
Nella barra di ricerca, digita Attivazione o disattivazione delle funzionalità Windows.
Dovrebbe essere visualizzato e selezionato il pannello di controllo Attivazione o disattivazione delle funzionalità Windows.
Premi il tasto Invio o fai clic su Attivazione o disattivazione delle funzionalità Windows per avviare il pannello di controllo.
Seleziona la casella accanto a Windows Hypervisor Platform.
Fai clic su OK.
Al termine dell'installazione, riavvia il computer.
Configurare l'accelerazione della VM utilizzando il driver dell'hypervisor dell'emulatore Android (AEHD) su Windows
Prima di poter installare e utilizzare il driver dell'hypervisor di Android Emulator, il tuo computer deve soddisfare i seguenti requisiti:
- Processori Intel o AMD con estensione di virtualizzazione.
Windows 11 o Windows 10 a 64 bit (Windows a 32 bit non è supportato)
Gli utenti di Windows 8.1, Windows 8 e Windows 7 possono continuare a utilizzare AEHD 1.7 o versioni precedenti. Tuttavia, non verrà fornito alcun supporto per questi scenari.
Le funzionalità che utilizzano anche l'hypervisor Windows Hyper-V devono essere disattivate nella finestra di dialogo Funzionalità di Windows.
Alcuni componenti di Windows attivano e utilizzano anche Windows Hyper-V Hypervisor, anche quando la piattaforma Windows Hypervisor non è selezionata nella finestra di dialogo Funzionalità di Windows. tra cui funzionalità di sicurezza come Hyper-V, Isolamento del core e altre. Tieni presente che la funzionalità Hyper-V NON è la stessa di Hyper-V Hypervisor. Se hai bisogno di queste funzionalità, utilizza WHPX.
Sui processori AMD, il driver dell'hypervisor di Android Emulator può essere installato tramite SDK Manager in Android Studio 4.0 Canary 5 o versioni successive.
Sui processori Intel, il driver dell'hypervisor dell'emulatore Android può essere installato tramite SDK Manager in Android Studio Flamingo o versioni successive.
Per installare da SDK Manager, segui questi passaggi:
- Seleziona Strumenti > SDK Manager.
- Fai clic sulla scheda Strumenti SDK e seleziona Driver hypervisor di Android Emulator.
- Fai clic su Ok per scaricare e installare il driver dell'hypervisor di Android Emulator.
Dopo l'installazione, verifica che il driver funzioni correttamente utilizzando il seguente comando della riga di comando:
AEHD 2.1 e versioni successive
sc query aehd
Un messaggio di stato include le seguenti informazioni:
SERVICE_NAME: aehd ... STATE : 4 RUNNING ...
Il seguente messaggio di errore indica che l'estensione di virtualizzazione non è abilitata nel BIOS o che Hyper-V non è disabilitato:
SERVICE_NAME: aehd ... STATE : 1 STOPPED WIN32_EXIT_CODE : 4294967201 (0xffffffa1) ...
AEHD 2.0 e versioni precedenti
sc query gvm
Un messaggio di stato include le seguenti informazioni:
SERVICE_NAME: gvm ... STATE : 4 RUNNING ...
Il seguente messaggio di errore indica che l'estensione di virtualizzazione non è abilitata nel BIOS o che Hyper-V non è disabilitato:
SERVICE_NAME: gvm ... STATE : 1 STOPPED WIN32_EXIT_CODE : 4294967201 (0xffffffa1) ...
Il driver dell'hypervisor di Android Emulator può essere scaricato e installato anche da
GitHub.
Dopo aver decompresso il pacchetto del driver, esegui silent_install.bat
da una riga di comando
con privilegi di amministratore.
Disinstalla il driver dell'hypervisor di Android Emulator utilizzando i seguenti comandi in una riga di comando con privilegi di amministratore:
AEHD 2.1 e versioni successive
sc stop aehd
sc delete aehd
AEHD 2.0 e versioni precedenti
sc stop gvm
sc delete gvm
Configurare l'accelerazione della VM su macOS
Su macOS, l'emulatore Android utilizza Hypervisor.Framework integrato, che richiede macOS v10.10 (Yosemite) e versioni successive. Tuttavia, Android Studio potrebbe richiedere una versione superiore per macOS. In questi casi, segui i requisiti di sistema di Android Studio.
Configura l'accelerazione delle VM su Linux
I sistemi basati su Linux supportano l'accelerazione delle VM tramite il pacchetto software KVM. Segui le istruzioni per installare KVM sul tuo sistema Linux e poi verifica che KVM sia abilitato. Per i sistemi Ubuntu, vedi Installazione di KVM Ubuntu.
Requisiti
L'esecuzione di KVM richiede autorizzazioni utente specifiche. Assicurati di disporre di autorizzazioni sufficienti come specificato nelle istruzioni di installazione di KVM.
Per utilizzare l'accelerazione VM su Linux, il computer deve soddisfare anche questi requisiti:
- Per i processori Intel: supporto delle funzionalità Virtualization Technology (VT-x), Intel EM64T (Intel 64) e Execute Disable (XD) Bit abilitate.
- Per i processori AMD: supporto di AMD Virtualization (AMD-V).
Verifica se KVM è installato su Linux
Puoi utilizzare l'opzione della riga di comando -accel-check
dell'emulatore per verificare se hai installato KVM. In alternativa,
puoi installare il pacchetto cpu-checker
contenente il comando kvm-ok
.
L'esempio seguente mostra come utilizzare il comando kvm-ok
:
Installa il pacchetto
cpu-checker
:sudo apt-get install cpu-checker egrep -c '(vmx|svm)' /proc/cpuinfo
Un output pari o superiore a 1 indica che la virtualizzazione è supportata. Un output di 0 significa che la CPU non supporta la virtualizzazione hardware.
Esegui il comando
kvm-ok
:sudo kvm-ok
Output previsto:
INFO: /dev/kvm exists KVM acceleration can be used
Se ricevi il seguente errore, significa che puoi comunque eseguire macchine virtuali. Tuttavia, la macchina virtuale è più lenta senza le estensioni KVM.
INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
Installare KVM su Linux
Utilizza il seguente comando per installare KVM:
Cosmic (18.10) o versioni successive:
sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
Lucid (10.04) o versioni successive:
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
Karmic (9.10) o versioni precedenti:
sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils
Guida alla disinstallazione di Intel HAXM
HAXM è deprecato da un po' di tempo (01/2023) in quanto Intel interrompe lo sviluppo di HAXM.
A partire dall'emulatore 36.2.x.x, l'emulatore Android non utilizzerà più HAXM e, se lo utilizzavi in precedenza, dovremo installare un nuovo driver hypervisor. Ti consigliamo di utilizzare Windows Hypervisor Platform (WHPX) di Microsoft.
Ti consigliamo di rimuovere completamente Intel HAXM dal sistema Windows, a meno che tu non abbia installato altri software che dipendono da HAXM e tu scelga di conservare Intel HAXM e gestirlo autonomamente.
Per disinstallare Intel HAXM:
Controllare se Intel HAXM è installato
Per determinare se Intel HAXM è installato sul tuo sistema Windows, apri una console dei comandi di Windows ed esegui il seguente comando:
sc query intelhaxm
Se Intel HAXM è installato ed è in esecuzione, dovresti visualizzare il seguente messaggio
nell'output del comando.
Se Intel HAXM è installato ma disattivato, dovresti visualizzare il seguente messaggio
nell'output del comando.
In entrambi i casi, indipendentemente dal fatto che Intel HAXM sia in esecuzione o disattivato, è installato. Per continuare a disinstallare Intel HAXM, devi andare al passaggio successivo.
Se Intel HAXM non è installato, dovresti visualizzare il seguente messaggio.
Disinstalla Intel HAXM utilizzando SDK Manager da Android Studio
Se in passato hai installato HAXM con SDK Manager, dovresti comunque vedere
il modulo elencato nella scheda "SDK Tools".
Apri SDK Manager da Android Studio, vai alla scheda "SDK Tools" (Strumenti SDK), quindi
vai alla riga "Intel x86 Emulator Accelerator (HAXM installer) - Deprecated" (Acceleratore dell'emulatore Intel x86 (programma di installazione HAXM) - Obsoleto). Dovrebbe avere l'aspetto dello screenshot seguente.
Deseleziona la casella di controllo come mostrato nello screenshot seguente.
Fai clic sul pulsante "Applica" e dovrebbe essere visualizzata la seguente finestra di dialogo.
Una volta disinstallato correttamente Intel HAXM, dovresti visualizzare quanto segue.
La disinstallazione è stata completata e puoi interrompere la procedura qui.
In caso di errori, vai al passaggio successivo.
Disinstalla Intel HAXM utilizzando le "impostazioni" di Windows.
Apri le "Impostazioni" di Windows e vai a "App > App installate".
Individua la voce "Intel Hardware Accelerated Execution Manager" e fai clic su
"Disinstalla", come mostrato nello screenshot seguente.
Il programma di disinstallazione di Intel HAXM dovrebbe essere eseguito e segnalare il risultato. Se la disinstallazione va a buon fine, vai a Elimina il pacchetto di installazione di Intel HAXM. Altrimenti, vai al passaggio successivo.
Disinstallare utilizzando la riga di comando
Arresta il servizio Intel HAXM eseguendo "sc stop intelhaxm". Dovresti vedere l'output seguente.
Elimina il servizio Intel HAXM eseguendo "sc delete intelhaxm". Dovresti vedere l'output seguente.
Vai a Elimina il pacchetto del programma di installazione di Intel HAXM.
Elimina il pacchetto del programma di installazione di Intel HAXM.
Questo passaggio è necessario solo quando disinstalli Intel HAXM utilizzando le "impostazioni" di Windows o la riga di comando. Senza questo passaggio, SDK Manager di Android Studio potrebbe continuare a elencare Intel HAXM come "Installato".
Il pacchetto di installazione si trova in<Your Android SDK folder>\extras\intel.
Per impostazione predefinita, l'SDK Android verrà installato in "C:\Users\<Your Windows User ID
>\AppData\Local\Android\Sdk". Vedi l'esempio nello screenshot che segue.