Configura l'accelerazione hardware per l'emulatore Android

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:

  1. Apri Gestione dispositivi.
  2. Crea un nuovo AVD o modifica un AVD esistente.
  3. Nella finestra Configurazione, individua la sezione Prestazioni emulate nella scheda Impostazioni aggiuntive.
  4. Seleziona un valore per l'opzione Accelerazione 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: 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 invece swiftshader_indirect.
  • angle: deprecato nella versione 27.0.2. Utilizza invece swiftshader_indirect.
  • mesa: deprecato nella versione 25.3. Utilizza invece swiftshader_indirect.
  • guest: deprecato per i livelli API 28 e successivi. Utilizza invece swiftshader_indirect.
  • angle_indirect: deprecato nella versione 34.2.14. Utilizza invece swiftshader_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:

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
Su Windows sono disponibili diverse opzioni di hypervisor. Pertanto, ciò che vedi potrebbe essere diverso dall'esempio qui. Ad esempio, potresti vedere una delle seguenti parole chiave nel messaggio: 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.

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:

  1. Dal desktop di Windows, fai clic sull'icona di Windows per aprire il menu Start.
  2. 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.

  3. Premi il tasto Invio o fai clic su Attivazione o disattivazione delle funzionalità 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 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:

  1. Seleziona Strumenti > SDK Manager.
  2. Fai clic sulla scheda Strumenti SDK e seleziona Driver hypervisor di 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 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:

  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 significa 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 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

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