Configura l'accelerazione hardware per l'emulatore Android

L'emulatore funziona al meglio se può utilizzare l'hardware della tua macchina, ad esempio la CPU, la GPU e il modem, anziché funzionare come puro software. 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 sullo schermo migliore
  • Accelerazione delle macchine virtuali (VM) per una maggiore velocità di esecuzione

L'accelerazione hardware è attivata per impostazione predefinita sulla maggior parte delle macchine. Se non è attivata sulla tua macchina, questa pagina descrive come configurare l'accelerazione della grafica e della macchina virtuale (VM) per ottenere prestazioni più elevate dall'emulatore.

Configurare l'accelerazione grafica

L'accelerazione grafica utilizza l'hardware del computer (in genere la GPU) per velocizzare il rendering dello schermo. I dispositivi Android utilizzano OpenGL per sistemi embedded (OpenGL ES o GLES) per eseguire il rendering della grafica 2D e 3D sullo schermo.

Quando crei un dispositivo virtuale Android (AVD) in Gestione AVD, puoi specificare se l'emulatore utilizza hardware o software per emulare la GPU dell'AVD. L'accelerazione hardware è consigliata ed è in genere più rapida. Tuttavia, potresti dover utilizzare l'accelerazione software se il tuo computer utilizza driver grafici non compatibili con l'emulatore.

Per impostazione predefinita, l'emulatore decide se utilizzare l'accelerazione hardware o software in base alla configurazione del computer. Se l'hardware e i driver della GPU sono compatibili, l'emulatore utilizza la GPU. In caso contrario, l'emulatore utilizza l'accelerazione software (utilizzando la CPU del computer) per simulare l'elaborazione della GPU.

Se avvii l'emulatore dalla riga di comando, puoi eseguire l'override dell'impostazione di accelerazione grafica nell'AVD per l'istanza del dispositivo virtuale.

Requisiti

Per utilizzare l'accelerazione grafica, l'ambiente di sviluppo deve avere quanto segue:

  • SDK Tools: è consigliata la release più recente (minima 17)
  • Piattaforma SDK: consigliata la release più recente (Android 4.0.3, revisione 3, minimo)

Configurare l'accelerazione grafica in AVD Manager

Per configurare l'accelerazione grafica per un AVD:

  1. Apri AVD Manager.
  2. Crea un nuovo AVD o modificane uno esistente.
  3. Nella finestra Verifica configurazione, individua la sezione Rendimento simulato.
  4. Seleziona un valore per l'opzione Grafica.
  5. 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: lascia che sia l'emulatore a scegliere tra l'accelerazione hardware o software della grafica in base alla configurazione del computer.
  • host: utilizza la GPU del computer per l'accelerazione hardware. Questa opzione solitamente offre la massima qualità grafica e le migliori prestazioni per l'emulatore. Tuttavia, se i driver della scheda grafica hanno problemi con il rendering di OpenGL, potresti dover utilizzare le opzioni swiftshader_indirect o angle_indirect.
  • swiftshader_indirect: utilizza una variante di SwiftShader compatibile con l'avvio rapido per eseguire 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.
  • angle_indirect: (solo Windows) utilizza una variante di ANGLE Direct3D compatibile con l'avvio rapido per eseguire 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. Nella maggior parte dei casi, le prestazioni di ANGLE sono simili all'utilizzo della modalità host perché ANGLE utilizza Microsoft DirectX anziché OpenGL.

    Su Windows, i driver Microsoft DirectX in genere presentano meno problemi rispetto ai driver OpenGL. Questa opzione utilizza Direct3D 11 e richiede Windows 10, Windows 8.1 o Windows 7 SP1 con l'aggiornamento della piattaforma Windows 7.

  • guest: utilizza il rendering software lato ospite. Questa opzione offre la qualità e le prestazioni grafiche più basse per l'emulatore.

Le seguenti opzioni mode sono obsolete:

  • swiftshader: deprecato nella versione 27.0.2. Utilizza invece swiftshader_indirect.
  • angle: deprecato nella versione 27.0.2. Utilizza invece angle_indirect (solo Windows).
  • mesa: deprecato nella versione 25.3. Utilizza invece swiftshader_indirect.

Attivare il rendering Skia per l'interfaccia utente di Android

Quando utilizzi immagini per il livello API 27 o versioni successive, l'emulatore può eseguire il rendering dell'UI di Android con Skia. Skia aiuta l'emulatore a eseguire il rendering della grafica in modo più fluido ed efficiente.

Per attivare il rendering Skia, utilizza i seguenti comandi nella shell adb:

su
setprop debug.hwui.renderer skiagl
stop
start

Configura l'accelerazione delle VM

L'accelerazione della VM utilizza il processore del computer per migliorare notevolmente 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 illustra i requisiti per l'utilizzo dell'accelerazione della VM e descrive come configurarla su ciascun sistema operativo.

Requisiti generali

Per utilizzare l'accelerazione della VM con l'emulatore, il computer deve soddisfare i requisiti generali riportati in questa sezione. Il computer deve inoltre soddisfare altri requisiti specifici del sistema operativo.

Requisiti dell'ambiente di sviluppo

Per utilizzare l'accelerazione delle VM, l'ambiente di sviluppo deve soddisfare i seguenti requisiti:

  • SDK Tools: versione minima 17; versione consigliata 26.1.1 o successive
  • AVD: la versione Android richiesta è descritta nella tabella seguente.

    Architettura CPU Requisito dell'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), ad esempio 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 di indirizzi di secondo livello (EPT di Intel o RVI di AMD) è obbligatoria per i processori Intel e AMD. La maggior parte dei processori Intel e AMD moderni supporta la traduzione di 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 della VM.

Restrizioni

L'accelerazione delle VM presenta le seguenti limitazioni:

  • Non puoi eseguire un emulatore accelerato da VM all'interno di un'altra VM, ad esempio una VM ospitata da VirtualBox, VMWare o Docker. Devi eseguire un emulatore accelerato da 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 a un emulatore accelerato da VM. Alcuni esempi di questo tipo di 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 questo software può coesistere con l'emulatore Android senza problemi. Tuttavia, in caso di conflitti, è consigliabile non eseguire contemporaneamente l'emulatore con accelerazione tramite VM con questo tipo di software.

Informazioni sugli hypervisor

L'accelerazione delle VM richiede un hypervisor, uno strumento che utilizza le estensioni di virtualizzazione fornite dal processore del computer.

Senza un hypervisor e l'accelerazione della VM, l'emulatore deve tradurre il codice macchina della VM blocco per blocco per renderlo conforme 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 notevolmente sia la velocità sia le prestazioni dell'emulatore.

L'hypervisor più adatto a te dipende dal sistema operativo e dalla configurazione del computer. Per ulteriori informazioni, consulta una delle seguenti sezioni:

Controllare se è installato un hypervisor

Puoi utilizzare l'opzione a riga di comando dell'emulatore -accel-check per verificare se sul computer è attualmente installato un hypervisor.

Gli esempi seguenti 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
Su Windows sono disponibili più hypervisor. Pertanto, ciò che vedi potrebbe essere diverso dall'esempio riportato qui. Ad esempio, nel messaggio potresti vedere una delle seguenti parole chiave: AEHD, GVM (nome precedente di AEHD).

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.

Configurare l'accelerazione della VM su Windows

L'accelerazione delle VM su Windows può utilizzare uno di due hypervisor:

  • Windows Hypervisor Platform (WHPX)
  • Il driver dell'hypervisor dell'emulatore Android (AEHD)

Windows Hypervisor Platform utilizza l'hypervisor Hyper-V fornito con Windows e offre la migliore compatibilità con una ridotta instabilità. Se possibile, ti consigliamo di utilizzare WHPX.

Se il tuo sistema non supporta WHPX o se hai altri dubbi sul suo utilizzo, puoi utilizzare il driver dell'hypervisor di Android Emulator.

Configurare l'accelerazione delle VM utilizzando Windows Hypervisor Platform

Prima di poter attivare WHPX, il computer deve soddisfare i seguenti requisiti:

  • Processori Intel: supporto per la tecnologia di virtualizzazione (VT-x), le Extended Page Tables (EPT) e le funzionalità Unrestricted Guest (UG). VT-x deve essere attivato nelle impostazioni BIOS del computer.
  • Processori AMD: consigliato un processore AMD Ryzen. La virtualizzazione o SVM deve essere attivata nelle impostazioni del BIOS del computer.
  • Android Studio 3.2 Beta 1 o versioni successive
  • Emulatore Android versione 27.3.8 o successive
  • Windows 10 o versioni successive

Per installare WHPX su Windows:

  1. Dal desktop di Windows, fai clic sull'icona di Windows per aprire il menu Start.
  2. Utilizzando la barra di ricerca, digita Attivazione o disattivazione delle funzionalità Windows.

    Dovresti visualizzare il pannello di controllo Attivazione o disattivazione delle funzionalità Windows, che deve essere selezionato.

  3. Premi il tasto Invio o fai clic su Attiva o disattiva le funzionalità di Windows per avviare il pannello di controllo.

  4. Seleziona la casella accanto a Windows Hypervisor Platform.

  5. Fai clic su OK.

  6. Al termine dell'installazione, riavvia il computer.

Configurare l'accelerazione della VM utilizzando il driver dell'hypervisor Android Emulator (AEHD) su Windows

Prima di poter installare e utilizzare il driver dell'hypervisor di Android Emulator, il 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 dialogo Funzionalità di Windows.

    Alcuni componenti di Windows attivano e utilizzano anche l'hypervisor Windows Hyper-V, anche quando la piattaforma Windows Hypervisor non è selezionata nella finestra di dialogo Funzionalità di Windows. Sono incluse funzionalità di sicurezza come Hyper-V, Core Isolation e altre. Tieni presente che la funzionalità Hyper-V non è uguale all'hypervisor Hyper-V. 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 l'SDK da SDK Manager:

  1. Seleziona Strumenti > SDK Manager.
  2. Fai clic sulla scheda Strumenti SDK e seleziona Driver dell'hypervisor Android Emulator.
  3. Fai clic su OK per scaricare e installare il driver dell'hypervisor di Android Emulator.
  4. Dopo l'installazione, verifica che il driver funzioni correttamente utilizzando il seguente comando a 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 è attivata 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 è attivata 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 scompattato il pacchetto del driver, esegui silent_install.bat in una riga di comando con privilegi amministrativi.

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 10.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.

Configurare l'accelerazione della 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, quindi verifica che KVM sia abilitato. Per i sistemi Ubuntu, consulta Installazione di Ubuntu KVM.

Requisiti

L'esecuzione di KVM richiede autorizzazioni utente specifiche. Assicurati di disporre delle autorizzazioni sufficienti, come specificato nelle istruzioni di installazione di KVM.

Per utilizzare l'accelerazione della VM su Linux, il computer deve soddisfare anche i seguenti requisiti:

  • Per i processori Intel: supporto della tecnologia di virtualizzazione (VT-x), delle funzionalità Intel EM64T (Intel 64) e della funzionalità del bit di disattivazione dell'esecuzione (XD) abilitata.
  • Per i processori AMD: supporto per la virtualizzazione AMD (AMD-V).

Controlla se KVM è attualmente installato su Linux

Puoi utilizzare l'opzione a riga di comando dell'emulatore -accel-check per verificare se KVM è installato. In alternativa, puoi installare il pacchetto cpu-checker contenente il comando kvm-ok.

L'esempio seguente mostra come utilizzare il comando kvm-ok:

  1. 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 indica che la CPU non supporta la virtualizzazione hardware.

  2. Esegui il comando kvm-ok:

    sudo kvm-ok
    

    Risultato previsto:

    INFO: /dev/kvm exists
    KVM acceleration can be used
    

    Se ricevi il seguente errore, significa che puoi comunque eseguire le 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

A partire dall'emulatore 33.x.x.x, HAXM è deprecato perché Intel ha interrotto lo sviluppo di HAXM. Il driver dell'hypervisor Android Emulator (AEHD) sostituisce Intel HAXM sui processori Intel.

Ti consigliamo di rimuovere completamente Intel HAXM dal tuo sistema Windows, a meno che tu non abbia installato altro software che dipende da HAXM e scelga di mantenere Intel HAXM e gestirlo autonomamente.

Per disinstallare Intel HAXM:

Controlla se Intel HAXM è installato

Per determinare se Intel HAXM è installato sul tuo sistema Windows, apri una console di comando Windows ed esegui il seguente comando:

   sc query intelhaxm

Se Intel HAXM è installato ed è in esecuzione, dovresti vedere il seguente messaggio nell'output del comando.

Se Intel HAXM è installato ma disabilitato, dovresti vedere 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 vedere il seguente messaggio.

Disinstalla Intel HAXM utilizzando SDK Manager da Android Studio

Apri il gestore SDK da Android Studio, vai alla scheda "Strumenti SDK" e poi alla riga "Intel x86 Emulator Accelerator (HAXM installer) - Deprecated". Dovrebbe avere il seguente aspetto.

Deseleziona la casella di controllo come mostrato nello screenshot seguente.

Fai clic sul pulsante "Applica" e dovrebbe apparire la seguente finestra di dialogo.

Una volta disinstallato Intel HAXM, dovresti visualizzare quanto segue. La disinstallazione è stata completata e puoi interromperti 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 è andata a buon fine, vai a Eliminare il pacchetto di installazione di Intel HAXM. In caso contrario, vai al passaggio successivo.

Disinstallazione utilizzando la riga di comando

  1. Interrompi il servizio Intel HAXM eseguendo "sc stop intelhaxm". Dovresti vedere il seguente output.

  2. Elimina il servizio Intel HAXM eseguendo "sc delete intelhaxm". Dovresti vedere l'output seguente.

  3. Vai a Eliminare il pacchetto del programma di installazione di Intel HAXM.

Elimina il pacchetto del programma di installazione di Intel HAXM.

Questo passaggio è necessario solo per la disinstallazione di Intel HAXM utilizzando le "impostazioni" di Windows o la riga di comando. Senza questo passaggio, il gestore SDK di Android Studio potrebbe continuare a elencare Intel HAXM come "Installato".

Il pacchetto di installazione si trova nella posizione<la tua cartella SDK Android>\extras\intel. Per impostazione predefinita, Android SDK verrà installato in "C:\Users\<Il tuo ID utente Windows>\AppData\Local\Android\Sdk". Vedi l'esempio nello screenshot seguente.