Configura l'accelerazione hardware per l'emulatore Android

L'emulatore funziona al meglio se è in grado di utilizzare l'hardware della tua macchina, ad esempio CPU, GPU e modem, anziché funzionare come software puro. La capacità di utilizzare l'hardware della macchina per migliorare le prestazioni si chiama accelerazione hardware.

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

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

L'accelerazione hardware è abilitata per impostazione predefinita sulla maggior parte delle macchine. Se non è abilitato sulla tua macchina, in questa pagina viene descritto come configurare la grafica e l'accelerazione delle macchine virtuali (VM) per ottenere prestazioni migliori dall'emulatore.

Configura l'accelerazione grafica

L'accelerazione grafica utilizza l'hardware del computer (in genere la GPU) per rendere più veloce 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 in Gestione AVD, puoi specificare se l'emulatore utilizza hardware o software per emulare la GPU della durata di visualizzazione media. È consigliata l'accelerazione hardware, che in genere è più veloce. Tuttavia, potrebbe essere necessario utilizzare l'accelerazione software se il computer impiega driver di grafica non compatibili con l'emulatore.

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

Se avvii l'emulatore dalla riga di comando, puoi sostituire l'impostazione dell'accelerazione grafica nella durata di visualizzazione media dell'istanza del dispositivo virtuale.

Requisiti

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

  • Strumenti dell'SDK: è consigliata la release più recente (versione 17 minima)
  • SDK Platform: consigliata release più recente (Android 4.0.3, revisione 3, minima)

Configura l'accelerazione grafica in Gestione AVD

Per configurare l'accelerazione grafica per una durata di visualizzazione media, segui questi passaggi:

  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, trova 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 la massima qualità grafica e prestazioni per l'emulatore. Tuttavia, se i driver di grafica hanno problemi di rendering di 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 tuo computer non può utilizzare l'accelerazione hardware.
  • angle_indirect: (solo Windows) usa 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 tuo 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 OpenGL al posto di OpenGL.

    Su Windows, i driver Microsoft DirectX presentano in genere 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 guest. Questa opzione offre la qualità grafica e le prestazioni più basse per l'emulatore.

Le seguenti opzioni di mode sono deprecate:

  • swiftshader: deprecata nella versione 27.0.2. Usa invece swiftshader_indirect.
  • angle: deprecata 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 l'UI di Android

Quando utilizzi immagini per il livello API 27 o superiore, l'emulatore può eseguire il rendering della UI 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 computer. Questa sezione descrive i requisiti per utilizzare l'accelerazione VM e descrive come configurarla su 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 anche 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 dell'SDK: versione minima 17; versione consigliata 26.1.1 o successiva
  • Durata di visualizzazione media: la versione di Android obbligatoria è descritta nella tabella che segue.

    Architettura CPU Requisito di 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 i processori Intel Core iX e Intel Core Ultra
  • Processori AMD con AMD-V (SVM), come i processori AMD Ryzen
  • Mela

Requisiti aggiuntivi per i processori Intel e AMD:

Per i processori Intel e AMD è richiesta la traduzione degli indirizzi di secondo livello (Intel EPT o AMD RVI). I processori Intel e AMD più moderni supportano 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 hai la certezza che il tuo processore supporti le estensioni richieste, controlla le specifiche del processore sul sito del produttore. Se il processore non supporta queste estensioni, non puoi utilizzare l'accelerazione delle 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, potrebbe non essere possibile eseguire software che utilizza un'altra tecnologia di virtualizzazione contemporaneamente a un emulatore con accelerazione VM. A titolo esemplificativo, questo software include, a titolo esemplificativo, soluzioni per macchine virtuali, alcuni programmi antivirus e alcune soluzioni antitrucco. La situazione si osserva 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, consigliamo di non eseguire contemporaneamente l'emulatore con accelerazione VM con questo 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 un'accelerazione della VM, l'emulatore deve tradurre il codice macchina dalla 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 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 ulteriori informazioni, consulta una delle seguenti sezioni:

Verificare se è installato un hypervisor

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 sono disponibili diverse opzioni per l'hypervisor. Quindi quello che vedi potrebbe essere diverso dall'esempio qui riportato. Ad esempio, nel messaggio potresti vedere una delle seguenti parole chiave: GVM(nome precedente 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 dei due hypervisor:

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

Scegli un hypervisor su Windows

Questa sezione mostra i criteri per determinare quale hypervisor utilizzare. Il processo per configurare l'accelerazione delle VM utilizzando ciascun hypervisor è descritto nelle sezioni seguenti.

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 Android Emulator.

Configurare l'accelerazione delle VM utilizzando Windows Hypervisor Platform

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

  • Processori Intel: supporto per la tecnologia di virtualizzazione (VT-x), Extended Page Tables (EPT) e le funzionalità Ospite senza restrizioni (UG). VT-x deve essere abilitato nelle impostazioni del BIOS del computer.
  • Processori AMD: si consiglia il processore AMD Ryzen. La virtualizzazione o 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 questa procedura:

  1. Dal 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.

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

Prima di poter installare e utilizzare il driver hypervisor 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 viene fornita assistenza per questi scenari.

  • Hyper-V deve essere disabilitato nella finestra di dialogo 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 del core offerto da Windows Defender. In questi casi, utilizza WHPX.

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

Sui processori Intel, il driver hypervisor Android Emulator può essere installato tramite il Gestore di SDK 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 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 è abilitata nel tuo 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 tuo BIOS o che Hyper-V non è disabilitato:

    SERVICE_NAME: gvm
           ...
           STATE              : 1  STOPPED
           WIN32_EXIT_CODE    : 4294967201 (0xffffffa1)
           ...
    

Il driver hypervisor Android Emulator può anche essere scaricato e installato da GitHub. Dopo aver decompresso il pacchetto del driver, esegui silent_install.bat da una riga di comando con privilegi amministrativi.

Disinstalla il driver hypervisor Android Emulator 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

Su macOS, l'emulatore Android utilizza la versione integrata Hypervisor.Framework, 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.

Configurare 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 un KVM sul tuo sistema Linux, quindi verifica che KVM sia abilitato. Per i sistemi Ubuntu, vedi Installazione di KVM Ubuntu.

Requisiti

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

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

  • Per i processori Intel: supporto per la tecnologia di virtualizzazione (VT-x), funzionalità di Intel EM64T (Intel 64) e funzionalità Esegui disabilitazione (XD) bit abilitate.
  • Per i processori AMD: supporto per AMD Virtualization (AMD-V).

Controllare se KVM è attualmente installato su Linux

Per verificare se hai installato una KVM, puoi utilizzare l'opzione a riga di comando dell'emulatore -accel-check. 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 tua 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 la KVM:

Cosmico (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 poiché Intel interrompe lo sviluppo di HAXM. Android Emulator hypervisor driver (AEHD) sostituisce Intel HAXM sui processori Intel.

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

Per disinstallare Intel HAXM, procedi nel seguente modo:

Controlla se Intel HAXM è installato

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

   sc query intelhaxm

Se Intel HAXM è installato e in esecuzione, nell'output comando dovrebbe essere visualizzato il seguente messaggio.

Se Intel HAXM è installato ma disabilitato, nell'output comando dovrebbe essere visualizzato il seguente messaggio.

In entrambi i casi, indipendentemente dal fatto che Intel HAXM sia in esecuzione o disabilitato, viene installato. Devi andare al passaggio successivo per continuare a disinstallare Intel HAXM.

Se Intel HAXM non è installato, dovrebbe essere visualizzato il seguente messaggio.

Disinstalla Intel HAXM utilizzando SDK Manager da Android Studio

Apri SDK Manager da Android Studio, vai alla scheda "Strumenti SDK", quindi vai alla riga "Intel x86 Emulator Accelerator (programma di installazione HAXM) - Obsoleto". Dovrebbe essere simile allo screenshot seguente.

Deseleziona la casella di controllo come mostrato nello screenshot seguente.

Fai clic sul pulsante "Applica" e verrà visualizzata la seguente finestra di dialogo.

Dopo la disinstallazione di Intel HAXM, dovresti vedere quanto segue. La disinstallazione è terminata e puoi fermarti 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.

Dovrebbe essere eseguito il programma di disinstallazione Intel HAXM e segnalare il risultato. Se la disinstallazione riesce, vai a Elimina il pacchetto di installazione di Intel HAXM. In caso contrario, vai al passaggio successivo.

Disinstallare tramite riga di comando

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

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

  3. Vai a Elimina il pacchetto di installazione Intel HAXM.

Elimina il pacchetto di installazione Intel HAXM.

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

Il pacchetto di installazione si trova in<cartella SDK Android>\extras\intel. Per impostazione predefinita, l'SDK Android viene installato in "C:\Users\<ID utente Windows >\AppData\Local\Android\Sdk". Guarda l'esempio nello screenshot seguente.