Configura l'accelerazione hardware per l'emulatore Android

L'emulatore funziona al meglio se può utilizzare l'hardware della tua macchina, ad esempio CPU, GPU e modem, anziché essere eseguito come puro software. La capacità di utilizzare l'hardware della tua macchina per migliorare le prestazioni è chiamata accelerazione hardware.

L'emulatore può utilizzare l'accelerazione hardware per migliorare la tua esperienza in due modi principali:

  • Accelerazione della grafica per migliorare il rendering dello schermo
  • Accelerazione delle macchine virtuali (VM) per una migliore velocità di esecuzione

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

Configura 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 integrati (OpenGL ES o GLES) per il rendering di grafica 2D e 3D sullo schermo.

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

Per impostazione predefinita, l'emulatore decide se utilizzare l'accelerazione grafica hardware o software in base alla configurazione del computer. Se l'hardware GPU e i driver 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 GPU.

Se avvii l'emulatore dalla riga di comando, puoi sostituire l'impostazione di accelerazione grafica nella Modalità di visualizzazione dei dispositivi per l'istanza del dispositivo virtuale.

Requisiti

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

  • Strumenti SDK: Si consiglia l'ultima release (minimo 17)
  • Piattaforma SDK: consigliata ultima release (Android 4.0.3, versione 3, minima)

Configura l'accelerazione grafica in Gestione AVD

Per configurare l'accelerazione grafica per una durata di visualizzazione media:

  1. Apri Gestione AVD.
  2. Crea una nuova durata di visualizzazione media o modifica una durata di visualizzazione media esistente.
  3. Nella finestra Verifica configurazione, individua la sezione Prestazioni emulate.
  4. Seleziona un valore per l'opzione Elementi grafici:.
  5. Fai clic su Fine.

Configura l'accelerazione grafica dalla riga di comando

Per specificare un tipo di accelerazione grafica quando esegui una durata di visualizzazione media 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: consenti all'emulatore di scegliere tra l'accelerazione grafica hardware o software in base alla configurazione del computer.
  • host: utilizza la GPU del computer per l'accelerazione hardware. Questa opzione in genere offre le massime qualità e prestazioni grafiche per l'emulatore. Tuttavia, se i driver di grafica riscontrano problemi di rendering OpenGL, potresti dover utilizzare le opzioni swiftshader_indirect o angle_indirect.
  • swiftshader_indirect: usa una variante di SwiftShader compatibile con 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) usa una variante compatibile con Avvio rapido di ANGLE Direct3D 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 Direct invece di 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 Windows 7 Platform Update.

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

Le seguenti opzioni mode sono deprecate:

  • swiftshader: ritirata nella versione 27.0.2. Usa invece il criterio swiftshader_indirect.
  • angle: ritirata nella versione 27.0.2. Utilizza invece angle_indirect (solo Windows).
  • mesa: ritirata nella versione 25.3. Usa invece il criterio swiftshader_indirect.

Attiva il rendering Skia per la UI Android

Quando utilizzi immagini per il livello API 27 o successivi, l'emulatore può eseguire il rendering dell'interfaccia utente 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 delle 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 tuo computer. Questa sezione descrive i requisiti per l'utilizzo dell'accelerazione delle VM e descrive come configurarla in ciascun sistema operativo.

Requisiti generali

Per utilizzare l'accelerazione delle VM con l'emulatore, il computer deve soddisfare i requisiti generali 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:

  • Strumenti SDK: versione minima 17; versione consigliata 26.1.1 o successive
  • Durata di visualizzazione media: la versione di Android obbligatoria è descritta nella tabella che segue.

    Architettura della CPU Requisito per le immagini 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 tuo computer deve supportare le estensioni di virtualizzazione. I processori supportati sono:

  • Processori Intel con tecnologia di virtualizzazione Intel (VT-x, vmx), come processori Intel Core iX e Intel Core Ultra
  • Processori AMD con AMD-V (SVM), come i processori AMD Ryzen
  • Silicio mela

Requisiti aggiuntivi per processori Intel e AMD:

La traduzione dell'indirizzo di secondo livello (Intel EPT o AMD RVI) è necessaria 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 hai la certezza che il tuo processore supporti le estensioni richieste, consulta 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 prevede le seguenti restrizioni:

  • 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, non puoi eseguire software che utilizzano un'altra tecnologia di virtualizzazione nello stesso momento in cui esegui 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. Il problema si verifica soprattutto su Windows con la funzionalità Hyper-V disattivata. La maggior parte di questo software può coesistere con l'emulatore Android senza problemi. Tuttavia, in caso di conflitti, è consigliabile non eseguire l'emulatore con accelerazione VM contemporaneamente a tale software.

Informazioni sugli hypervisor

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

In assenza di un hypervisor e di un'accelerazione della VM, l'emulatore deve tradurre il codice macchina della 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 sia la velocità che le prestazioni dell'emulatore.

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

Controllare se un hypervisor è installato

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

I seguenti esempi mostrano come utilizzare l'opzione dell'emulatore accel-check. In ogni esempio, Sdk è la posizione dell'SDK Android:

Windows:

c:\Users\janedoe\AppData\Local\Android> Sdk\emulator\emulator -accel-check
accel:
0
AEHD (version 2.2) is installed and usable.
accel
Su Windows è possibile scegliere tra più hypervisor. Ciò che vedi potrebbe essere diverso dall'esempio riportato qui. Ad esempio, nel messaggio potresti visualizzare una delle seguenti parole chiave: GVM(ex nome di AEHD), WHPX.

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 delle VM su Windows

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

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

Scegliere un hypervisor su Windows

Questa sezione mostra i criteri per determinare quale hypervisor utilizzare. Il processo per configurare l'accelerazione di una VM mediante ciascun hypervisor è descritto nelle sezioni che seguono.

Criteri Hypervisor
Devi eseguire Hyper-V contemporaneamente all'emulatore Android. Utilizza WHPX.
Non è necessario eseguire Hyper-V contemporaneamente all'emulatore Android. Usa il driver hypervisor emulatore Android.

Configura l'accelerazione delle VM utilizzando Windows Hypervisor Platform

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

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

Per installare WHPX su Windows, segui questi passaggi:

  1. Sul desktop di Windows, fai clic con il tasto destro del mouse sull'icona di Windows e seleziona App e funzionalità.
  2. In Impostazioni correlate, fai clic su Programmi e funzionalità.
  3. Fai clic su Attiva o disattiva le funzionalità Windows.
  4. Seleziona Windows Hypervisor Platform.

  5. Fai clic su Ok.

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

Configura l'accelerazione delle VM utilizzando il driver hypervisor Android Emulator (AEHD) su Windows

Prima di poter installare e utilizzare il driver hypervisor emulatore Android, 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 Windows 8.1, Windows 8 e Windows 7 possono continuare a utilizzare AEHD 1.7 o versioni precedenti. Tuttavia, non è disponibile assistenza per questi scenari.

  • Hyper-V deve essere disabilitato nella finestra di dialogo delle funzionalità di Windows.

    Alcuni componenti di Windows possono attivare l'hypervisor Hyper-V senza abilitare Hyper-V nella finestra di dialogo delle funzionalità di Windows, ad esempio l'isolamento Core offerto da Windows Defender. In questi casi, utilizza WHPX.

Sui processori AMD, il driver hypervisor Emulator Android può essere installato tramite SDK Manager in Android Studio 4.0 Canary 5 o versioni successive.

Sui processori Intel, il driver hypervisor Emulator Android può essere installato tramite SDK Manager in Android Studio Flamingo o versioni successive.

Per eseguire l'installazione da SDK Manager, segui questi passaggi:

  1. Seleziona Strumenti > SDK Manager.
  2. Fai clic sulla scheda SDK Tools (Strumenti SDK) e seleziona Android Emulator hypervisor driver.
  3. Fai clic su OK per scaricare e installare il driver hypervisor emulatore Android.
  4. 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 hypervisor Emulator Android può essere scaricato e installato anche da GitHub. Dopo aver decompresso il pacchetto del driver, esegui silent_install.bat in una riga di comando con privilegi amministrativi.

Disinstalla il driver hypervisor emulatore Android utilizzando i seguenti comandi in una riga di comando con privilegi amministrativi:

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 delle VM su macOS

In MacOS, l'emulatore Android utilizza l'integrato Hypervisor.Framework, che richiede MacOS 10.10 (Yosemite) o versioni successive.

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

Requisiti

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

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

  • Per i processori Intel: supporto per la tecnologia di virtualizzazione (VT-x), le funzionalità Intel EM64T (Intel 64) e la funzionalità di disattivazione dei bit (XD) abilitata.
  • Per i processori AMD: supporto per la virtualizzazione AMD (AMD-V).

Controlla se KVM è attualmente installato su Linux

Puoi utilizzare l'opzione della riga di comando dell'emulatore -accel-check 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:

  1. Installa il pacchetto cpu-checker:

    sudo apt-get install cpu-checker
    egrep -c '(vmx|svm)' /proc/cpuinfo
    

    Un output pari a 1 o superiore indica che la virtualizzazione è supportata. Un output pari a 0 indica che la CPU non supporta la virtualizzazione hardware.

  2. Esegui il comando kvm-ok:

    sudo kvm-ok
    

    Output previsto:

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

    Se viene visualizzato 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
    

Installazione di KVM su Linux

Utilizza questo comando per installare KVM:

Cosmico (18/10) o successivo:

sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

Lucido (10.04) o versioni successive:

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Karmic (09:10) o precedente:

sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils

Guida alla configurazione precedente per l'accelerazione delle VM su Windows

A partire dall'emulatore 33.x.x.x, HAXM è deprecato poiché Intel non ha più sviluppato HAXM. Il driver hypervisor Android Emulator (AEHD) sostituisce Intel HAXM sui processori Intel.

Scegli un hypervisor su Windows (emulatore 32.x.x.x o precedente)

Criteri Hypervisor
Disponi di un processore Intel e non è necessario eseguire Hyper-V contemporaneamente all'emulatore Android. Utilizza Intel HAXM.
Disponi di un processore AMD e non è necessario eseguire Hyper-V contemporaneamente all'emulatore Android. Usa il driver hypervisor emulatore Android.
Disponi di un processore Intel o AMD e devi eseguire Hyper-V contemporaneamente all'emulatore Android. Utilizza WHPX.

Configura l'accelerazione delle VM utilizzando Intel HAXM su Windows

Prima di poter installare e utilizzare Intel HAXM, il computer deve soddisfare i seguenti requisiti:

  • Processore Intel con tecnologia di virtualizzazione (VT-x), funzionalità Intel EM64T (Intel 64) e funzionalità di disattivazione bit (XD) abilitata
  • Windows 11, Windows 10, Windows 8 o Windows 7 a 64 bit (o versione a 32 bit del sistema operativo su un processore a 64 bit)
  • Su Windows 11, Windows 10 o Windows 8, devi disattivare Hyper-V nella finestra di dialogo delle funzionalità di Windows.

Per installare il driver Intel HAXM, procedi nel seguente modo:

  1. Apri SDK Manager.
  2. Fai clic sulla scheda SDK Update Sites (Siti di aggiornamento SDK) e seleziona Intel HAXM.
  3. Fai clic su Ok.
  4. Al termine del download, esegui il programma di installazione.

    In genere, il programma di installazione si trova nel seguente percorso: sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe

  5. Utilizza la procedura guidata per completare l'installazione.

  6. Dopo aver installato Intel HAXM, verifica che il driver di virtualizzazione funzioni correttamente utilizzando il seguente comando della riga di comando:

    sc query intelhaxm
    

    Un messaggio di stato include le seguenti informazioni:

    SERVICE_NAME: intelhaxm
           ...
           STATE              : 4  RUNNING
           ...
    

Per ulteriori informazioni, consulta le istruzioni di installazione di Intel HAXM su Windows.

Per disinstallare Intel HAXM, utilizza il programma di installazione o il pannello di controllo di Windows. Prima di disinstallare Intel HAXM, arresta gli eventuali emulatori x86 in esecuzione.

Ricontrolla quando disattivi Hyper-V

Hyper-V deve essere disabilitato per utilizzare il driver hypervisor emulatore Android o Intel HAXM. Tuttavia, deselezionare "Hyper-V" nella finestra di dialogo delle funzionalità di Windows non garantisce che Hyper-V sia disabilitato.

Molte funzionalità di Windows 10 abilitano Hyper-V in modo implicito. Gli utenti potrebbero anche non sapere che la funzione Hyper-V è attivata quando attivano una di queste funzionalità. Tali funzionalità includono:

  • Piattaforma per macchine virtuali
  • Windows Hypervisor Platform
  • Sandbox di Windows
  • Isolamento dei core
  • Protezione delle credenziali

Inoltre, il sottosistema Windows per Linux versione 2 richiede Virtual Machine Platform, il che significa che richiede implicitamente Hyper-V. Questo elenco non è completo; invia un bug se trovi un elemento che deve essere incluso qui.

Verifica che le funzionalità elencate siano disattivate anche quando disattivi Hyper-V. Fai riferimento alla documentazione Microsoft e agli esempi riportati di seguito per scoprire come puoi disabilitare ogni singola funzionalità.

Alcune piattaforme non riescono a disabilitare immediatamente Hyper-V quando viene spento. In questo caso, non viene restituito alcun errore dal sistema operativo Windows e Hyper-V risulta disabilitato nella finestra di dialogo delle funzionalità di Windows. In questo caso, segnala un bug nel tracker problemi di Microsoft.