Android Emulator è incluso in Android Studio.
Le versioni dell'emulatore precedenti alla 25.3.0 venivano distribuite nell'ambito degli strumenti SDK Android.
Per assicurarti di avere l'ultima versione, controlla SDK Manager per gli aggiornamenti.
Per scaricare le versioni precedenti di Android Emulator, consulta l'archivio di download di Emulator.
Per le note di rilascio delle versioni dell'emulatore precedenti alla 25.3.0, consulta le note di rilascio di Android SDK Tools.
Per vedere quali problemi sono stati risolti nelle versioni più recenti di Android Emulator, consulta i problemi chiusi.
Per problemi noti e risoluzione dei problemi, consulta la sezione Risoluzione dei problemi dell'emulatore.
35.6.11 Stable (24 giugno 2025)
Il supporto delle GPU AMD e Nvidia è stato migliorato su Windows e Linux per l'emulazione XR
L'AVD XR può essere eseguito come incorporato nelle finestre di esecuzione di Android Studio
Miglioramento dei dettagli del report sugli arresti anomali su Windows per consentire il dump completo dell'emulatore
Correzione di bug: l'emulatore Android XR si arresta in modo anomalo con errore Vulkan
Correzione di bug libndk_translation.so viene interrotto e causa un arresto anomalo in Arm64AesEncode
35.5.10 Stable (6 maggio 2025)
Sono stati aggiunti ulteriori controlli di compatibilità della CPU con messaggi di errore (ad es. spazio su disco insufficiente)
Sono stati corretti i bug relativi alla gestione della memoria Vulkan e ai casi d'uso non validi
Il supporto degli snapshot Vulkan viene controllato e ignorato correttamente quando viene eseguito su un terminale
Aggiunto supporto per l'estensione VK_KHR_multiview e il formato texture A1R5G5B5
Aggiunta dell'AVD Pixel 9a
35.4.9 Stable (25 febbraio 2025)
È stato aggiunto un menu a discesa nei controlli estesi per le preferenze del driver GLES ospite
[Correzione bug]Problema n. 389330750 L'invio di SMS all'emulatore con il carattere Ñ divide il messaggio
[Correzione bug]Problema n. 382180488 Arresto anomalo della funzione "emuglConfig_get_vulkan_hardware_gpu_support_info" a causa del rilevamento di zero dispositivi Vulkan
Nota: gli emulatori Android XR sono disponibili solo nelle versioni Canary di Studio
35.3.11 Stabile (9 gennaio 2025)
[Correzione bug]Problema n. 368059211 Accesso programmatico a VHAL di Android Auto OS non funzionante tramite l'API Car Service
[Correzione bug]Problema n. 348598513 L'emulatore ha un metodo pubblico non sicuro per i thread non necessario in un blocco multithread
[Correzione bug]Problema n. 356896486 Disabilita effettivamente le chiamate API Vulkan quando viene eseguito con -feature -Vulkan
35.4.4 Canary (12 dicembre 2024)
Nuovo emulatore Android XR
Abbiamo aggiunto un nuovo emulatore Android XR sperimentale per sviluppare e testare app create con l'SDK Jetpack XR per visori. Consulta Configurazione dell'SDK Jetpack XR per informazioni sull'installazione dell'emulatore Android XR e sulla configurazione dell'ambiente di sviluppo.
L'emulatore Android XR è uno strumento sperimentale. Abbiamo deciso di condividere in anteprima per consentirti di eseguire i test in anticipo. Prevedi problemi, in particolare su alcune configurazioni di GPU e driver Windows. Potrebbero sorgere problemi anche in merito ai test di compatibilità delle app mobile 2D esistenti. Il tuo feedback ci aiuterà a migliorare e guidare la definizione delle priorità delle funzionalità future.
Finora, l'emulatore Android XR è stato testato sulle seguenti configurazioni hardware:
- Mac (ARM)
- Windows 11
- GPU NVIDIA, 4 GB di VRAM, versione del driver 553.35 o successive
- 16 GB o più di RAM
- 8 core o più
Problemi noti
Emulatore - Stabilità e prestazioni:
- In alcune configurazioni di Windows possono verificarsi blocchi o arresti anomali del sistema critici durante l'avvio o l'esecuzione delle applicazioni. Assicurati che Windows Hypervisor Platform (WHPX) sia attivato seguendo la guida per sviluppatori di Android Studio per attivare WHPX.
- Problemi come elementi AVD o UI che non rispondono sui laptop dopo un ciclo di sospensione e ripristino (ad esempio, chiusura e apertura di un laptop).
- Arresti anomali occasionali durante il passaggio dalle applicazioni dalla "modalità schermata Home" alla "modalità a schermo intero"
- Le API Gemini non sono ancora disponibili; l'app modello iniziale dell'API Gemini andrà in arresto anomalo.
Emulatore - Simulazione di input e output:
- Il tastierino virtuale per i campi di ricerca e modifica potrebbe essere visibile solo parzialmente nel campo visivo
Gli elementi non possono essere spostati in direzione Z (dentro e fuori dallo schermo) utilizzando mouse e tastiera
L'instabilità dell'input audio dell'host del microfono AVD può causare riavvii e arresti anomali di AVD.
A volte l'audio è statico o distorto.
Quando la videocamera viene spostata fuori dal salotto virtuale, sono visibili errori di rendering.
Le configurazioni di Windows mostrano colori più scuri del solito.
L'audio non funziona più dopo aver lasciato l'emulatore inattivo e aver bloccato lo schermo su macOS. (Il riavvio dell'emulatore lo ripristinerà.)
La connessione di rete si interrompe quando la macchina host cambia la rete Wi-Fi.
Con Bloc Maiusc attivo, vengono comunque digitati caratteri minuscoli.
Lo scorrimento tramite il trackpad su Mac non è fluido.
Lo scorrimento con clic e trascinamento su alcuni elementi dell'interfaccia utente potrebbe non funzionare per progettazione. In caso contrario, utilizza la rotellina del mouse per scorrere.
Testo, UI e altri problemi di visualizzazione sfocati in Chrome su alcune configurazioni di sistema Windows. Soluzione probabile: attivare WHP.
Emulatore - Simulazione di aerei e ancore:
- A volte gli ancoraggi non riappaiono nelle vicinanze della stessa posizione
- I riquadri mobili potrebbero non essere ancorati alle pareti o al soffitto
- Gli aerei simulati non corrispondono al layout fisico della stanza 3D in modalità passthrough
- Aree limitate complessive in cui ancorare gli oggetti nella stanza virtuale
- Piccolo artefatto visibile nella visualizzazione passthrough su Windows
- In alcuni casi, il posizionamento degli ancoraggi può causare l'arresto anomalo dell'app
- Quando sposti le app vicino al suolo su Windows, potrebbero apparire delle linee nere sopra le app
Emulatore - Altri:
- L'emulatore si avvia solo in modalità "autonoma". La modalità "Incorporato" (UI incorporata) non è ancora supportata.
- L'accesso con gli account sull'emulatore su Windows potrebbe causare l'interruzione della risposta dell'emulatore
- Il contenuto dell'interfaccia utente delle finestre potrebbe scomparire dopo il ridimensionamento (soluzione alternativa: premere il pulsante "Home")
- Nell'app JXRCore ActivityPanelTest il pannello secondario non viene visualizzato inizialmente
- Gli elementi delle Impostazioni rapide potrebbero scomparire dalle impostazioni di sistema dopo un periodo di tempo prolungato.
- Inizialmente, l'interfaccia utente dell'emulatore potrebbe essere visualizzata al di fuori della regione dello schermo. In questo caso, regola leggermente le dimensioni della finestra dell'emulatore e dovrebbe tornare in posizione.
- L'emulatore potrebbe non avviarsi quando si utilizza Chrome Remote Desktop su Windows
- OpenXR non è ancora supportato sull'emulatore e le app OpenXR potrebbero causare l'arresto anomalo dell'emulatore
- Rari errori durante il tentativo di invio di report sui bug utilizzando le impostazioni estese di Android Studio su Windows
- L'icona "Indietro" non è visibile correttamente nell'app Impostazioni finché il cursore non si trova nelle sue vicinanze su Mac
- In alcuni casi, la build potrebbe generare errori quando si utilizza il modulo "Baseline Profile" nell'ambito di un progetto di modello XR
- L'accessibilità "XR Talkback" è finora integrata solo parzialmente nell'emulatore
App Scene Viewer:
- Lo spostamento di elementi all'interno di Scene Viewer potrebbe causarne l'arresto anomalo. Per risolvere questo problema, allontana leggermente la posizione della testa da quella iniziale (ad es. utilizzando panoramica, dolly, WASD e così via) prima di provare a spostare l'elemento.
- La funzionalità Dimensioni reali 1:1 non funziona correttamente se le dimensioni reali del modello 3D sono inferiori o superiori ai limiti minimi e massimi della scala (attualmente impostati rispettivamente su 20 cm e 70 m).
- Il modello 3D potrebbe saltare sul primo frame dopo il caricamento
35.2.10 (1° ottobre 2024)
- Sono stati aggiunti nuovi AVD Pixel, tra cui Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL e Pixel 9 Pro Fold
- Aggiunta di una nuova immagine di sistema per tablet per Vanilla Ice Cream (API 35)
35.1.20 (29 agosto 2024)
- Aggiunto AVD Pixel 8a
- Varie correzioni di bug per i dispositivi pieghevoli
- Aggiornamento di Qt e correzioni di arresti anomali e blocchi correlati a Qt
- [Correzione di bug] Correzione degli arresti anomali e dei blocchi su Windows con applicazioni che utilizzano Vulkan
34.2.16 (9 luglio 2024)
- [Correzione di bug] Blocchi della UI che si verificano su Pixel Fold durante l'apertura/chiusura
- [Correzione bug] Visualizzazione errata della versione di Android come Android Vanilla Ice Cream Anteprima anziché API 35 su Mac M1.
- [Correzione di bug] Problema n. 296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE restituisce true sull'emulatore di tablet Pixel C
34.2.15 (31 maggio 2024)
- Varie correzioni di arresti anomali relativi alla modalità di rotazione e alla pulizia degli inserzionisti
34.2.14 (20 maggio 2024)
Testato con Android Studio Jellyfish Stable Patch 1.
- [Correzione bug] A volte lo snapshot si blocca sull'emulatore incorporato
- [Correzione bug] I pulsanti "No" e "Annulla" non funzionano correttamente nello snapshot
- [Correzione bug] I pulsanti del D-pad non funzionano
- [Correzione bug] È stato corretto il problema riscontrato su Windows che impediva l'avvio dell'emulatore in alcune condizioni quando si utilizzavano le modalità GPU con ANGLE e restituiva il messaggio di errore "Failed to initialize GL emulation" (Impossibile inizializzare l'emulazione GL) nel log. Tieni presente che l'avvio dell'emulatore dalla riga di comando con l'opzione
-gpu swangle_indirect
potrebbe comunque generare questo errore con questa versione. Se vuoi comunque avviare l'emulatore utilizzando una riga di comando su Windows con il rendering grafico software con questa versione, utilizza-gpu swiftshader_indirect
- [Correzione bug] La scorciatoia della posizione sulla tastiera carica una mappa inutilizzabile
- [Correzione bug] Durante l'impostazione della posizione, manca la finestra di dialogo "Salva percorso"
34.2.13 (30 aprile 2024)
Testato con Android Studio Jellyfish Stable.
- Aggiornamento a Qt 6.5.3
- Compatibilità con gli aggiornamenti dell'API Google Maps utilizzati nelle funzionalità di localizzazione dei controlli estesi dell'emulatore, che si verificano alla fine di maggio.
- Correzioni di arresti anomali di forte impatto
- Varie correzioni agli AVD Pixel
- Aggiorna la libreria grafica utilizzata per il rendering software
- [Correzione bug]Problema 225541819 Avvio di Chrome causa l'arresto anomalo dell'emulatore su x86_64
- [Correzione bug]Problema 314614435 L'opzione
-http-proxy
viene analizzata in modo errato
34.1.20 (1° aprile 2024)
Testato con Android Studio Iguana Stable.
- [Correzione bug] Problema n. 314614435: risolto il problema per cui l'opzione
-http-proxy
viene analizzata in modo errato
34.1.19 (7 marzo 2024)
Testato con Android Studio Iguana Stable.
- [Correzione bug] Problema n. 312677259: è stato risolto il blocco dello schermo nell'emulatore incorporato dopo il ridimensionamento della finestra.
34.1.18 (29 febbraio 2024)
Testato con Android Studio Iguana Stable.
- I dispositivi sono stati aggiunti all'emulatore, tra cui:
- Pixel Fold
- Pixel Tablet
- Pixel 8
- Pixel 8 Pro
- Pixel 7a
- Test di integrazione gRPC: gli endpoint gRPC sono ora disponibili per i test strumentati eseguiti all'interno dell'emulatore, il che consente di testare scenari realistici. Questa funzionalità consente agli sviluppatori di interagire in sicurezza con l'endpoint gRPC ospitato da Android Emulator all'interno dei test di strumentazione Android.
- Correzione di diversi bug
- Correzione di bug: miglioramenti nell'usabilità dei dispositivi pieghevoli
- Correzione di bug: regola la posizione dell'emulatore dopo la rotazione
- Correzioni degli arresti anomali
33.1.24 (28 dicembre 2023)
Testato con Android Studio Hedgehog Stable e Iguana Beta 1.
- È stato risolto il problema della webcam dell'emulatore che non consente la registrazione dello schermo in formato mp4.
- Correzione dell'arresto anomalo dell'emulatore sull'AVD Pixel Fold quando è aperto durante una registrazione dello schermo.
- Risolto il problema per cui Pixel Fold mostra una skin dello smartphone diversa con una tastiera staccata ed è inutilizzabile (risolto su Windows, Mac Intel e Linux)
- Risolto un problema di visualizzazione nei sensori virtuali in modalità autonoma (risolto su Windows, Mac Intel e Linux)
- Sono state fornite correzioni per alcuni arresti anomali, in particolare durante la chiusura dell'emulatore
33.1.23 (30 novembre 2023)
Testato con Android Studio Giraffe Patch 4 e Hedgehog Stable.
- Nuova implementazione pieghevole per emulare meglio il dispositivo Pixel Fold, funziona con l'ultima API 34
- Aggiornamento del backend grafico: abbiamo implementato il protocollo gfxstream per il nostro backend grafico. Questo miglioramento aumenta le prestazioni e la stabilità complessive della grafica del sistema. Inoltre, è stato introdotto il supporto di Vulkan 1.3 a partire dall'immagine di sistema con API 34
- Richiesta di funzionalità: opzione per disattivare il gesto di pizzicare per zoomare o riassegnare la relativa scorciatoia da tastiera
- [Correzione bug] Problema n. 302562962 Correzione dell'arresto anomalo della webcam dell'emulatore quando si utilizza macOS Sonoma
- [Correzione bug] Problema n. 293503871 Risolto il problema per cui l'impostazione "Microfono" non viene salvata al riavvio dell'emulatore
- [Correzione di bug] Problema n. 270386314 Correzione dell'errore di animazione per cui la barra laterale rimane aperta una volta ridotta a icona la schermata dell'AVD
- [Correzione di bug] Problema n. 154896775 Correzione dello strumento di invio dei bug
32.1.15 (29 agosto 2023)
Testato con Android Studio Giraffe Patch 1 e Hedgehog Canary 16.
- Rispettare i requisiti hardware di GAS per i sensori nell'emulatore AAE
- [Correzione di bug] Problema n. 266201208 L'SMS in ebraico non viene inviato sull'API 33
- [Correzione bug] Problema n. 257097404: l'emulatore non mostra l'ora corretta dopo il riavvio dell'host su API 29 e 30
- [Correzione bug] Problema n. 228201899 Impossibile visualizzare Google Maps nei controlli estesi dell'emulatore Android
32.1.14 (27 giugno 2023)
Testato con Android Studio Hedgehog Canary 8, Giraffe Beta 5 e Flamingo Stable.
- Correzione degli orientamenti e delle distorsioni della fotocamera dell'emulatore.
- [Correzione bug] Problema n. 257097404 "L'emulatore non mostra l'ora corretta dopo il riavvio dell'host". Questo bug è ancora riproducibile per le API 29 e 30.
- [Correzione bug] Problema n. 243456582 "Le release di Android successive all'API 30 potrebbero non avviarsi correttamente nell'emulatore su computer Mac M1"
32.1.13 (22 maggio 2023)
Testato con Android Studio Hedgehog Canary 2, Giraffe Beta 1 e Flamingo Stable.
- Aggiungi il supporto per gli AVD di Pixel Fold e Pixel Tablet.
- Migliora il problema di arresto anomalo di gLinux.
- [Correzione bug] Problema n. 215231636 "L'emulatore con API superiori all'API 30 non funziona nel processore Intel di 12ª gen.".
- [Correzione bug] Problema n. 275397905: livello elevato di arresti anomali su Android Emulator M1 quando si sposta ripetutamente il cursore dentro e fuori dall'emulatore.
- Problema noto con l'avvio di AVD quando esiste un report sugli arresti anomali di un emulatore più recente. Per ulteriori informazioni, consulta la sezione Risoluzione dei problemi dell'emulatore.
32.1.12 (21 marzo 2023)
Testato con Android Studio Giraffe Canary 10, Flamingo RC e Electric Eel Patch 2.
- [Correzione bug] Problema n. 267647323 La rete non funziona sull'emulatore avviato da Android Studio
- [Correzione di bug] Problema n. 268498686 Lo schermo dell'emulatore sfarfalla
- [Correzione di bug] Problema n. 270034824: le prestazioni dell'emulatore sono peggiorate dopo l'aggiornamento alla versione 33.1.1
- [Correzione bug] Problema n. 225541819: l'avvio di Chrome causa l'arresto anomalo dell'emulatore su x86_64
- [Correzione bug] Problema n. 257097404 L'emulatore non mostra l'ora corretta dopo il riavvio dell'host
- Aggiungere i report sugli arresti anomali per i dispositivi Apple M1
32.1.11 (8 febbraio 2023)
Testato con Android Studio Giraffe Canary 2, Flamingo Beta 1 e Electric Eel Patch 1.
- Ottimizzazioni della velocità di rete
- Supporto del mouse nell'emulatore incorporato
- Miglioramenti di Virtio-snd
- Disattiva l'utilizzo di link simbolici durante la decompressione di Android Emulator durante l'installazione
- Correggi l'arresto anomalo in emulator-check
31.3.14 (13 dicembre 2022)
Testato con Android Studio Dolphin, Electric Eel RC1 e Flamingo Canary 9.
- [Correzione bug] Risolti gli arresti anomali di AVD che si verificano durante l'accesso al Play Store.
31.3.13 (27 ottobre 2022)
Testato con Android Studio Dolphin, Electric Eel Beta 2 e Flamingo Canary 5.
- [Correzione bug] Problema n. 249948338: il parametro del fuso orario non funziona
- [Correzione di bug] Problema n. 249366543: l'opzione -dns-server dell'emulatore non funziona dopo l'API 31
31.3.12 (10 ottobre 2022)
Testato con Android Studio Dolphin e Electric Eel Beta 1.
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- [Correzione bug] Problema n. 247843000: errore di gestione del percorso relativo AVD
- Aumentare le dimensioni del disco per l'API 24 e versioni successive
31.3.11 (23 settembre 2022)
Testato con Android Studio Dolphin ed Electric Eel Canary 10.
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- [Correzione di bug] Arresto anomalo dell'AVD dell'emulatore incorporato nella finestra dei controlli estesi
- [Correzione di bug] Problema n. 183139207: problemi audio associati all'attivazione del microfono da parte dell'emulatore
- [Correzione di bug] Problema n. 229764024: bug del tocco persistente di AVD che causa problemi di comportamento dell'interfaccia utente
- [Correzione di bug] Errore durante l'avvio di AVD API 33 su Mac M1.
- [Correzione di bug] Problema n. 243053479: velocità di rete lenta dopo l'aggiornamento dell'emulatore
- [Correzione bug] Problema n. 244617627: la posizione di Maps non funziona su Windows e Linux
- [Correzione bug] Problema n. 232971796: pulsante "Chiama dispositivo" non funzionante nella pagina Controlli estesi > Telefono
- Aggiornare Android Emulator a minigbm
- Migrazione degli script di build a Python 3
31.3.10 (18 agosto 2022)
Testato con Android Studio Dolphin Beta 5 ed Electric Eel Canary 9.
Sono ora disponibili download autonomi dell'emulatore. Se riscontri problemi o arresti anomali con questa ultima release stabile, segnala un bug e valuta la possibilità di scaricare una versione precedente funzionante dagli archivi di download dell'emulatore.
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- Migliore supporto dei percorsi Unicode su Windows
- Migliore gestione dell'arresto dell'emulatore, in modo che un nuovo avvio dello stesso AVD possa andare a buon fine.
- Aggiornamento del design e delle impostazioni predefinite dell'AVD pieghevole
- Pulsanti dell'emulatore Wear aggiornati
- Miglioramenti dello streaming audio gRPC
- Aggiunto il comando della console dell'emulatore ridimensionabile
- Correzione di Chrome per l'API 31
- [Correzione di bug] Autenticazione dell'Account Google non riuscita con GmsCore v21.42.18
31.2.10 (20 aprile 2022)
Testato con Android Studio Dolphin Canary 8 e Chipmunk RC 1.
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- Aggiungi l'utilità per caricare le funzioni Vulkan con i fallback
- [Correzione di bug] Correzione dell'errore di compilazione di gcc8
31.2.9 (23 marzo 2022)
Testato con Android Studio Dolphin Canary 7.
Questo aggiornamento include la seguente correzione:
- [Correzione bug] Ignora la pressione della memoria durante il salvataggio dello snapshot su M1
31.2.8 (7 febbraio 2022)
Testato con Android Studio Bumblebee Patch 1 e Chipmunk Canary 6.
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- [Correzione bug] Impossibile accedere alle app
- [Correzione bug] Problema n. 215368358: "adb reboot" sulla piattaforma Intel causa l'arresto anomalo di AVD con "vcpu shutdown request"
31.2.7 (1° febbraio 2022)
Testato con Android Studio Bumblebee Patch 1 e Chipmunk Canary 6.
Questo aggiornamento include la seguente correzione:
- [Correzione di bug] Errore di blocco dell'emulatore su macchine M1.
31.2.6 (20 gennaio 2022)
Testato con Android Studio Arctic Fox, Bumblebee Beta 4 e Chipmunk Canary 6.
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- Sono stati aggiunti pulsanti di usura all'emulatore Wear OS.
- Sono state rese modificabili tutte le proprietà del veicolo nella scheda VHAL.
- [Correzione di bug] Autenticazione dell'Account Google non riuscita con GmsCore v21.42.18.
- [Correzione bug] Netshaper non funzionava bene con VirtioWifi.
- [Correzione bug] Il comando della console del mouse per gli eventi non funzionava.
- È stato aggiunto il controllo KVM per la creazione di AVD locali.
31.1.3 (18 gennaio 2022)
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- Porte della console abilitate per Fuchsia.
- Quando ridimensioni una finestra multi-display, l'orientamento viene ignorato.
- Wi-Fi: è stato aggiunto il supporto per il filtraggio dei pacchetti unicast in base all'indirizzo MAC MAT.
- Wi-Fi: è stato risolto l'arresto anomalo quando è in uso vmnet.
30.9.5 (15 dicembre 2021)
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- È stata aggiunta la possibilità di ridimensionare facilmente una finestra in modo che abbia le dimensioni di un computer o di un tablet.
- Aggiunto il supporto dell'input multi-touch da dispositivi host compatibili.
- VirtioWifi: è stato aggiunto il supporto per la rete tap.
- È stato abilitato l'input rotatorio per le immagini di sistema Wear.
- Risolto il problema di configurazione audio di gRPC.
- Aggiornamento della riproduzione dell'emulatore SensorReplay per supportare i sensori Android standard.
- L'emulatore è stato collegato a periferiche e dispositivi tramite USB con USB pass-through.
30.4.5 (23 febbraio 2021)
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- macOS: sono stati risolti i problemi relativi alla distorsione dell'input audio.
- Aggiunto il supporto di virtio-vsock nello spazio utente.
- Le immagini di sistema future utilizzeranno virtio-console per i messaggi logcat e del kernel.
- Accelerare il rendering Vulkan.
- È stato aggiunto il supporto per il debug degli snapshot in caso di errore del test.
- virtio-gpu: definizioni aggiornate per supportare gli enum delle risorse blob più recenti.
- È stato aggiunto il supporto degli snapshot per i trasporti di elementi grafici di tipo "asg".
- macOS: è stato aggiunto il supporto per la compilazione con macOS SDK 11.1+.
- KVMclock è abilitato per impostazione predefinita nelle immagini di sistema più recenti.
- Aggiunto il supporto di un sensore del battito cardiaco agli emulatori Wear.
- È stato rimosso il backend Vulkan di libportability.
- È stato aggiunto il supporto per altre funzionalità nel simulatore di modem.
30.0.26 (16 agosto 2020)
Questo aggiornamento include diverse nuove funzionalità, miglioramenti a quelle esistenti e correzioni di bug.
Supporto per dispositivi pieghevoli con sensore di cerniera virtuale e visualizzazione 3D
Aggiunto il supporto per i sensori della cerniera per i dispositivi pieghevoli. Ciò richiede una futura immagine di sistema Android 11 e la configurazione dell'AVD. I parametri di visualizzazione pieghevole 3D e della cerniera sono ora integrati con i preset pieghevoli esistenti. Il seguente può essere utilizzato, ad esempio, con il file
config.ini
dell'AVD pieghevole 7.3:hw.sensor.hinge = yes hw.sensor.hinge.count = 1 hw.sensor.hinge.type = 1 hw.sensor.hinge.ranges = 180-360 hw.sensor.hinge.defaults = 180 hw.sensor.hinge.areas = 54.7-0 hw.sensor.posture_list=4, 3 hw.sensor.hinge_angles_posture_definitions=210-360, 180-210 hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
Ora i dispositivi pieghevoli includono anche un parametro di sottotipo. La proprietà
config.ini
hw.sensor.hinge.sub_type = hinge/fold
è ora disponibile. Per saperne di più, leggi il post del blog Sviluppare per Android 11 con l'emulatore Android.Il sensore del cardine ora è abilitato per impostazione predefinita.
Se è configurato un dispositivo pieghevole, l'emulatore ora invia aggiornamenti dei sensori dell'angolo della cerniera e modifiche della postura all'ospite. I dispositivi pieghevoli esistenti ora aggiorneranno l'angolo e la postura del sensore della cerniera quando vengono premuti i pulsanti di chiusura o apertura della barra degli strumenti.
Emulatore per host ARM64
Il codice sorgente dell'emulatore Linux ora supporta la compilazione incrociata da host x86_64 ad arm64, consentendo l'esecuzione di immagini di sistema arm64 con la virtualizzazione KVM. Al momento, è supportato solo
-gpu swiftshader_indirect
(rendering host Swiftshader arm64), ma è possibile utilizzare anche un insieme compatibile di librerie libEGL/libGLESv2 della GPU host sostituendo lib64/gles_swiftshader e riavviando con-gpu swiftshader_indirect
. Gli snapshot potrebbero non funzionare (aggiungi-no-snapshot
alla riga di comando). Istruzioni:mkdir emu cd emu repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1 repo sync -qcj 12 cd external/qemu pip install absl-py pip install urlfetch sudo apt-get install crossbuild-essential-arm64 python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
Il supporto di Apple Silicon è in corso.
Supporto di virtio-gpu
- Aggiunto il supporto lato host per le risorse blob coerenti con l'host virtio-gpu in arrivo.
- A causa del funzionamento del rendering dell'emulatore, ora elaboriamo virtqueue virtio-gpu nel thread vcpu (perché il rendering viene comunque scaricato su altri thread). Il rendering virtio-gpu verrà attivato in una futura immagine di sistema e versione dell'emulatore.
- In una futura immagine di sistema, l'emulatore sarà in grado di eseguire tutta la grafica con uno stack basato su virtio-gpu.
Altre nuove funzionalità e miglioramenti
- Il passthrough USB è ora disponibile su Windows utilizzando
-qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>
. (Questa funzionalità dovrebbe già funzionare su Linux e macOS) - Librerie WebRTC aggiornate alla versione M83.
- L'emulatore ora supporta lo streaming audio nei container tramite WebRTC.
- L'endpoint della pipeline darwinn è stato rimosso.
- La decodifica CUDA VPx per i video è ora disponibile, se la decodifica CUDA VPx è disponibile
nell'hardware, tramite la variabile di ambiente
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
. - Su macOS, SSE 4.1 e 4.2 sono ora disponibili dall'interno del guest Android.
- Su macOS, INVTSC è ora abilitato per impostazione predefinita. In questo modo, la precisione delle misurazioni del tempo da parte dell'ospite può migliorare.
- Ora nelle metriche viene monitorato il riquadro di controllo esteso selezionato dall'utente.
- L'emulatore Linux ora utilizza l'orologio paravirtualizzato KVM quando la versione del kernel guest è >= 5.4 (immagini di sistema R o successive).
- L'emulatore ora utilizza LZ4 per decomprimere i kernel guest, rendendolo compatibile con la pipeline del kernel moderna.
Sono stati aggiunti comandi della console per ottenere la directory AVD dell'emulatore, il percorso del file di rilevamento nel caso d'uso incorporato in Studio e il percorso degli snapshot:
adb emu avd path # Obtains path to AVD directory adb emu avd discoverypath # Obtains path to discovery file adb emu avd snapshotspath # Obtains path to snapshots folder adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
Per semplificare il risparmio di spazio verticale sullo schermo, abbiamo aggiunto un'opzione per nascondere la cornice del dispositivo per l'AVD corrente in Controlli estesi > Impostazioni. Per nascondere globalmente i frame dei dispositivi per tutti gli AVD, abbiamo reso disponibile il flag di funzionalità
NoDeviceFrame
, che può essere attivato avviando l'emulatore dalla riga di comando con-feature NoDevice
frame o per bloccarlo, aggiungendoNoDeviceFrame = on
a~/.android/advancedFeatures.ini
(crea questo file se non esiste già).Aggiunto un elemento del menu a discesa nella pagina della rete dati per attivare e disattivare il supporto della misurazione, questa operazione non ha effetto per le immagini di sistema precedenti che non supportano l'opzione di attivazione/disattivazione della misurazione 5G.
- È stato aggiunto anche il comando della console per lo stesso scopo:
gsm meter on|off
- È stato aggiunto anche il comando della console per lo stesso scopo:
Upgrade della toolchain / build a C++17.
Correzioni: emulatore incorporato
- Ora la tastiera dovrebbe funzionare.
- È stato risolto il problema per cui i caratteri maiuscoli venivano visualizzati come caratteri minuscoli nell'emulatore.
- È stato corretto il caricamento del token della console da un percorso Unicode in Windows.
- È stato corretto il messaggio di errore
SO_REUSEPORT
su Linux. - È stato risolto un problema di danneggiamento degli snapshot durante l'invio di comandi snapshot tramite gRPC, nonché quando si preme il pulsante di salvataggio degli snapshot nell'emulatore incorporato di Android Studio.
Quando si utilizza l'emulatore Linux incorporato in Studio, abbiamo riscontrato che se questa operazione viene eseguita tramite Chrome Remote Desktop, si verifica un bug per cui
XDG_RUNTIME_DIR
non è impostato e potrebbe impedire la visualizzazione dell'emulatore incorporato a causa del posizionamento dei file di rilevamento dell'emulatore inXDG_RUNTIME_DIR
. Puoi controllare lo stato del problema corrispondente nel tracker dei problemi di Chrome.Come soluzione alternativa, l'emulatore ora utilizza i file di rilevamento in una directory possibilmente diversa basata sull'UID utente:
/run/user/<uid>
.Emulatore incorporato: i dispositivi con angoli arrotondati/tacche ora modificano correttamente il layout per fare spazio agli angoli e alla tacca. Per farlo è necessario un riavvio a freddo di questi emulatori.
L'endpoint gRPC ora supporta l'invio di SMS al dispositivo.
Correzioni generali
- Abbiamo riscontrato problemi di compatibilità durante l'esecuzione dell'emulatore Windows con Riot Vanguard attivo. L'emulatore Windows ora rileva l'anti-cheat Vanguard e mostra un messaggio di avviso se Vanguard viene rilevato.
- È stato corretto l'errore
FD_SETSIZE
su Windows. Ora utilizziamoWSAEventSelect()
anzichéselect()
per stabilire connessioni non bloccanti ai server loopback. - È stato aggiunto il supporto della funzionalità CPUID F16C all'emulatore Linux con correzioni dei problemi di esecuzione di alcune applicazioni ARM64 tramite la traduzione NDK; macOS/Windows in corso.
- È stata corretta la riproduzione del percorso GPX/KML in modo che segua i timestamp.
- È stata corretta l'icona che rimbalza all'avvio per macOS.
- Se
hw.audioInput=no
ehw.audioOutput=no
inconfig.ini
, l'audio dell'emulatore è ora disattivato correttamente. - È stato risolto un problema per cui, se la finestra dell'emulatore veniva ridotta a icona mentre la finestra dei controlli estesi era aperta ma non attiva, la finestra dei controlli estesi continuava a essere visualizzata durante il ridimensionamento della finestra dell'emulatore. Rimuoveremo completamente il comportamento (il caso con la finestra dei controlli estesi attiva) in un aggiornamento futuro.
- È stato corretto un bug instabile che impediva la connessione alla rete Wi-Fi all'avvio dell'emulatore.
- È stato risolto il problema di blocco all'uscita quando l'emulatore esegue comandi shell con timeout lunghi o indefiniti.
- Aggiornamento del BIOS del PC con correzioni per supportare meglio le immagini di grandi dimensioni passate a
-initrd
; il BIOS precedente utilizzava un metodo molto inefficiente. - È stato corretto l'arresto anomalo durante la chiusura quando viene utilizzata l'opzione
-wifi-server-port
. - L'emulatore ora stampa un avviso se vengono passate opzioni non supportate a
-prop
(sono supportate solo le proprietà qemu.*). - Quando crei l'emulatore su Windows, dovresti avere meno probabilità di riscontrare errori intermittenti di scrittura nei file. Per maggiori informazioni, consulta le istruzioni per la build di Windows.
- È stato disattivato il pulsante Zoom per gli AVD pieghevoli, che causava problemi.
- L'emulatore ora segnala correttamente il tempo di avvio derivante dal riavvio di un dispositivo.
- Linux: nel caso in cui le autorizzazioni KVM siano insufficienti, l'emulatore ora stampa le istruzioni di debug più rapidamente.
- È stato risolto il problema per cui l'emulatore non riusciva ad avviare le immagini di sistema recenti senza accelerazione.
- È stato corretto il danneggiamento della memoria o l'arresto anomalo all'avvio da un rilevatore di avvio completato.
- È stata corretta una perdita di memoria durante le sessioni di registrazione dello schermo di lunga durata.
- Le icone dell'emulatore sono state aggiornate per riflettere il branding di Studio 4.1.
- È stato aggiunto un supporto migliore per il rilevamento delle sessioni remote su Windows.
Correzioni: decodifica grafica e video
- È stato risolto un problema per cui l'ultima versione del gioco Asphalt 9 veniva visualizzata con una schermata nera.
- È stato rimosso lo spam relativo allo svuotamento del buffer mappato con
NULL
. - È stata corretta una condizione di competizione durante l'eliminazione dello stato di Vulkan quando un'app Vulkan ospite è stata chiusa.
- Gli shader di emulazione ASTC/ETC2 di Vulkan sono ora integrati nella libreria libOpenglRender. Questo metodo è più affidabile rispetto alla lettura dal file system.
- Risolto un problema in Vulkan per cui, se l'esecuzione avveniva con un'istanza Vulkan 1.0 sull'host,
vkGetImageMemoryRequirements2KHR
cancellava in modo errato il campopNext
della strutturaVkMemoryRequirements2
restituita. - È stata corretta una perdita di memoria nel renderer Vulkan.
- È stato corretto un recente problema di regressione per cui la compilazione degli shader GLSL ES 1.00 con nomi di variabili come
isampler2D
non andava a buon fine. - Traduttore di shader ANGLE aggiornato con varie correzioni che risolvono il possibile problema di compilazione degli shader su Linux.
- Ora l'emulatore si arresta in modo anomalo se la compilazione dello shader di copia del framebuffer di base non va a buon fine, per tenere traccia del fenomeno.
- È stato aggiornato il traduttore di shader ANGLE per stare al passo con la versione upstream di ANGLE. È stato risolto un
problema relativo al danneggiamento della memoria durante la traduzione e la riduzione delle costanti degli shader OpenGL ES
che utilizzavano matrici non quadrate. Il traduttore di shader è ora una libreria condivisa
separata,
libshadertranslator.dll
. - Risolto un problema di inizializzazione di Vulkan su alcuni driver GPU, in cui non venivano trovate determinate funzioni del dispositivo 1.1.
- Vulkan: siamo tornati a utilizzare il caricatore precompilato, poiché l'utilizzo del caricatore Vulkan di sistema ha causato problemi in alcune configurazioni. Troveremo una soluzione migliore.
- Risolto un problema durante l'utilizzo della memoria esterna Vulkan in cui era possibile importare indici di tipo di memoria non corrispondenti sull'host.
- È stato risolto un problema nell'emulazione di
GL_ALIASED_POINT_SIZE_RANGE
in cui l'enumerazione non era supportata sull'host. - È stato risolto il problema per cui su alcune GPU host non era possibile compilare gli shader Skia a causa di
errori relativi a
GL_EXT_shader_framebuffer_fetch
. - Poiché la nostra copia del renderer ANGLE D3D9 è stata rimossa alcune versioni fa, ora passiamo automaticamente anche gli utenti che utilizzavano quel renderer ad ANGLE D3D11, se è stato selezionato nelle preferenze dell'interfaccia utente.
- Sono state aggiunte ulteriori informazioni di debug all'inizializzazione di WGL su Windows per tracciare gli errori.
- Quando
hw.gltransport=virtio-gpu-pipe
, le prestazioni vengono migliorate evitando di eseguire lo spinning sull'host nei trasferimenti dall'host all'ospite. - È stato aggiunto un logging di debug più dettagliato per i casi in cui l'emulazione di OpenGLES non viene inizializzata.
- È stato risolto un problema relativo al tremolio o alla mancata visualizzazione dei video di YouTube durante il caricamento degli snapshot.
- Per il momento, abbiamo ripristinato la decodifica software per libvpx perché abbiamo riscontrato problemi con la decodifica hardware CUDA di libvpx. Se hai un'implementazione della decodifica hardware CUDA supportata sul lato host, la decodifica hardware di libvpx può essere riattivata tramite la variabile di ambiente
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
.
30.0.10 (30 aprile 2020)
Questo aggiornamento include il supporto per l'esecuzione dell'emulatore direttamente in Android Studio e di dispositivi virtuali con la modalità finestra a forma libera attivata per impostazione predefinita.
Esegui l'emulatore in Android Studio
Ora l'emulatore Android può essere eseguito direttamente in Android Studio. Utilizza questa funzionalità per risparmiare spazio sullo schermo, per spostarti rapidamente tra l'emulatore e la finestra dell'editor utilizzando le scorciatoie da tastiera e per organizzare il flusso di lavoro dell'IDE e dell'emulatore in un'unica finestra dell'applicazione.
Modalità finestra in formato libero
Ora puoi creare un AVD con la modalità Finestra in formato libero attivata selezionando il profilo hardware del tablet Freeform da 13,5 pollici quando crei un dispositivo virtuale in Android Studio. Questo profilo hardware richiede un'immagine di sistema con Android 11 Developer Preview 3 o versioni successive.
Problemi noti
Il ridimensionamento delle finestre a forma libera non funziona al momento a causa di problemi di trasferimento della messa a fuoco a Window Manager. Questo problema verrà risolto in una futura release dell'immagine di sistema Android 11.
30.0.0 (19 febbraio 2020)
Questo aggiornamento include immagini di sistema Android 11 (livello API 30) e prestazioni migliorate durante l'esecuzione di file binari ARM.
Immagini di sistema Android 11
Ora puoi creare un AVD che esegue Android 11 selezionando una delle immagini di sistema del livello API 30 disponibili:
- x86: include le ABI x86 e ARMv7.
- x86_64: include le ABI x86, x86_64, ARMv7 e ARM64.
Supporto dei binari ARM sulle immagini di sistema Android 9 e 11
Se in precedenza non potevi utilizzare l'emulatore Android perché la tua app dipendeva da binari ARM, ora puoi utilizzare l'immagine di sistema Android 9 x86 o qualsiasi immagine di sistema Android 11 per eseguire la tua app. Non è più necessario scaricare un'immagine di sistema specifica per eseguire i binari ARM. Queste immagini di sistema Android 9 e Android 11 supportano ARM per impostazione predefinita e offrono prestazioni notevolmente migliorate rispetto a quelle con emulazione ARM completa.
Problemi noti
- Alcuni binari ARMv7 non vengono eseguiti sulle immagini di sistema x86 e x86_64 di Android 11. Prendi in considerazione la creazione per ARM64 quando scegli come target Android 11.
29.0.11 (29 maggio 2019)
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- Windows: l'emulatore ora si basa sulla DLL
libgcc
che forniamo anziché essere compilato staticamente conlibgcc
. - Linux: è stato aggiunto il supporto logcat all'API gRPC. Per saperne di più su gRPC, consulta Emulatore di streaming gRPC (Linux).
- L'emulatore ora include una build headless per guest x86 a 32 bit
(
qemu-system-i386
). Questa funzionalità consente l'esecuzione di immagini x86 a 32 bit per i livelli API 26 e precedenti con la build headless. Tieni presente che per gli ospiti x86 a 32 bit con API 27 e versioni successive, l'emulatore utilizza il motore a 64 bit (qemu-system-x86_64
) perché in queste immagini di sistema, mentre lo spazio utente è a 32 bit, il kernel è a 64 bit. Android Studio utilizza il kernel per selezionare i motori di emulazione. - Ora puoi specificare percorsi personalizzati della libreria Qt utilizzando la variabile di ambiente
ANDROID_QT_LIB_PATH
. - Ora puoi eseguire l'emulatore con i binari precedenti che utilizzano QEMU1 se gli eseguibili QEMU1 (
emulator[64]-[x86|arm|etc]
) si trovano nella directory dell'emulatore. - Windows: è stato risolto un problema che a volte poteva causare l'avvio dell'emulatore con il messaggio "vCPU shutdown request".
- È stato risolto un problema relativo a una barriera della pipeline non necessaria nelle texture compresse emulate in Vulkan.
- È stato corretto un errore che si verificava con le richieste proxy HTTP quando veniva utilizzato il trasferimento codificato a blocchi. Per ulteriori informazioni, consulta i dettagli del commit.
29.0.9 (7 maggio 2019)
Questo aggiornamento include la seguente correzione:
- Windows: è stato risolto un problema per cui la videocamera della scena virtuale e la webcam non funzionavano sull'emulatore.
29.0.8 (6 maggio 2019)
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- È stato aggiunto il supporto per più display hardware virtuali quando è presente un servizio guest per enumerare e impostare ogni display. Più display hardware virtuali verranno inclusi in un futuro aggiornamento dell'immagine di sistema dell'emulatore.
- È stata aggiunta una nuova opzione della riga di comando:
-delay-adb
. Questa opzione sopprime l'elaborazione dei pacchetti ADB finché il guest non ha completato l'avvio (da un avvio a freddo). Questa opzione consente di risolvere i problemi che potrebbero verificarsi se utilizzi l'emulatore in un ambiente CI che riavvia l'emulatore e utilizza DDMS contemporaneamente. - È stato corretto un errore che si verificava durante il caricamento degli snapshot in cui
glIsRenderbuffer
restituiva il valore errato. - Sono stati risolti alcuni problemi relativi allo stato obsoleto quando l'ospite Android viene riavviato.
- Windows: risolti problemi che impedivano l'avvio dell'emulatore quando il nome utente Windows conteneva caratteri non ASCII o spazi.
Problemi noti
- L'interfaccia utente degli snapshot è disattivata per le immagini di sistema automobilistico perché gli snapshot non sono attualmente supportati per queste immagini di sistema.
29.0.6 (1° maggio 2019)
Questo aggiornamento include diverse nuove funzionalità, miglioramenti a quelle esistenti e correzioni di bug.
Rimozione del supporto di QEMU1 e di Windows a 32 bit
Per una migliore manutenzione dell'emulatore, non vengono più forniti i binari QEMU1 e Windows a 32 bit. Se utilizzi Windows a 32 bit, non puoi eseguire l'upgrade alla versione 29.0.6.
Requisiti per le immagini di sistema Android Q
Se vuoi eseguire un AVD che utilizza un'immagine di sistema Android Q, ora devi utilizzare la versione 29.0.6 (questa versione) o successive.
Miglioramenti di Project Marble
Questo aggiornamento continua il nostro lavoro sull'iniziativa Project Marble annunciata all'Android Developer Summit nel novembre 2018. Per ulteriori informazioni sugli altri miglioramenti di Project Marble nelle versioni precedenti, consulta Android Emulator: Project Marble Improvements.
Per questo aggiornamento, la maggior parte dei nostri sforzi per Project Marble è stata dedicata alla riduzione dell'utilizzo delle risorse dell'emulatore, ad esempio la riduzione dell'utilizzo della CPU dell'emulatore in stato di inattività. Abbiamo anche incluso modifiche che semplificano l'utilizzo dell'emulatore in una gamma più ampia di ambienti e abbiamo risolto problemi di qualità generali.
Le sezioni seguenti descrivono i miglioramenti di Project Marble inclusi in questo aggiornamento:
Miglioramenti al comportamento dell'audio dell'host
A partire dalla versione 28.0.3, l'emulatore blocca l'input audio dall'host per impostazione predefinita.
Se vuoi utilizzare i dati audio dell'organizzatore, puoi attivare questa opzione andando su Controlli estesi > Microfono e attivando Il microfono virtuale utilizza l'input audio dell'organizzatore. Questa opzione viene disattivata automaticamente ogni volta che l'emulatore viene riavviato.
Se utilizzi la riga di comando, puoi anche attivare l'audio dell'host utilizzando l'opzione
-allow-host-audio
e puoi utilizzare i seguenti comandi ADB per attivare o disattivare
i dati audio dell'host, rispettivamente:
adb emu avd hostmicon
adb emu avd hostmicoff
Miglioramenti per le build dell'emulatore headless
A partire dalla versione 28.0.25, l'emulatore include un'opzione di build headless che può essere eseguita senza la UI. Puoi utilizzare le build headless per configurare l'emulatore per Docker e i flussi di lavoro di integrazione continua (CI).
Con questo aggiornamento, abbiamo apportato ulteriori miglioramenti per consentire all'emulatore di funzionare
con un numero minimo di dipendenze. Su Linux, le build headless non includono più le librerie pulseaudio
o libX11
. Le librerie condivise dipendenti dal sistema
che non sono incluse nel pacchetto dell'emulatore sono state ridotte all'elenco
seguente:
Linux-vdso.so.1
Libutil.so.1
Libm.so.6
Libdl.so.2
Librt.so.1
Libpthread.so.0
Libgcc_s.so.1
Libc.so.6
ld-linux-x86-64.so.2
È stato eseguito l'upgrade delle librerie UI Qt alla versione 5.12 LTS
Questo aggiornamento include i seguenti miglioramenti della release Qt 5.12 LTS:
- Per evitare arresti anomali nella decodifica
libpng
di Qt all'avvio di determinate immagini di sistema, l'emulatore ora utilizza la propria copia dilibpng
per decodificare le immagini PNG. - Per risolvere i problemi relativi ad alcune installazioni di Linux contenenti versioni incompatibili
di alcune librerie dipendenti da Qt, ora includiamo
libfreetype
,libsoftokn
,libsqlite3
elibxkbcommon
con l'emulatore. - L'emulatore ora utilizza le librerie di gestione delle finestre native della piattaforma per ottenere le dimensioni del monitor, anziché utilizzare le librerie Qt che restituivano risultati inaffidabili.
Ottimizzazioni automatiche della CPU dopo il riavvio a freddo
Per risolvere il problema dell'utilizzo della CPU, l'emulatore ora esegue i seguenti comandi ADB su un avvio a freddo dopo aver ricevuto un segnale boot complete
:
adb shell settings put screen_off_timeout 214783647
- Questo comando aumenta il timeout di spegnimento dello schermo in modo che l'emulatore possa essere utilizzato in modalità batteria senza ricarica. In modalità batteria, l'utilizzo della CPU in background è notevolmente ridotto.
- In modalità di ricarica CA, le operazioni in background di GMSCore, come gli aggiornamenti delle app, possono occupare tutti i core della CPU del dispositivo e, di conseguenza, della macchina dell'utente, senza alcun avviso.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
- Questo comando revoca le autorizzazioni del microfono per l'app di ricerca Google, il che riduce notevolmente l'utilizzo della CPU in background nella schermata Home e nel launcher quando l'app di ricerca Google è attiva.
- Questo comando viene eseguito in aggiunta al comportamento predefinito dell'emulatore di disattivazione dell'audio dell'host per l'host. Inoltre, questo fornisce automaticamente la mitigazione dell'utilizzo della CPU descritta per il rilevamento dell'hotword dalla release 28.0.23.
Nuove variabili di ambiente per il monitoraggio delle prestazioni
Ora puoi utilizzare due nuove variabili di ambiente per attivare il monitoraggio dettagliato delle prestazioni e dell'utilizzo delle risorse dell'emulatore.
SHOW_PERF_STATS=1
- Questa variabile di ambiente consente di monitorare l'utilizzo di CPU e RAM. Il monitoraggio dell'utilizzo della RAM distingue tra l'utilizzo della grafica e la memoria residente totale.
ANDROID_EMU_TRACING=1
- Questa variabile di ambiente consente la stampa ogni volta che un'operazione di input o grafica richiede molto tempo (più di 1 ms).
- Stiamo utilizzando questa variabile di ambiente anche per diagnosticare i problemi che gli utenti Windows hanno riscontrato con più jank (frame persi) rispetto a quelli riscontrati dagli utenti su macOS o Linux.
Miglioramenti generali di Project Marble
Questo aggiornamento include anche i seguenti miglioramenti generali che fanno parte dell'iniziativa Project Marble:
- Ora puoi mettere immediatamente in pausa tutte le vCPU dell'emulatore tramite i seguenti comandi della console:
adb emu avd pause
adb emu avd resume
- Riduzione significativa del sovraccarico del disegno OpenGL. Questo miglioramento riduce l'utilizzo della CPU mentre l'emulatore riproduce le animazioni.
- Ripristinato il supporto per il dispositivo di rete virtuale e1000 di QEMU mainline. Puoi utilizzare questo dispositivo per configurare l'emulatore in un ambiente di rete bridged. In un ambiente di rete bridged, l'emulatore viene visualizzato sulla rete host e la rete host viene visualizzata sull'emulatore.
- Ora vengono utilizzati i file binari del BIOS appropriati per QEMU 2.12 per avviare l'emulatore.
- È stata eseguita l'upgrade della versione
ffmpeg
alla 3.4.5 per la codifica e la decodifica video. - È stato ridotto notevolmente l'overhead dell'I/O del ciclo principale di QEMU su macOS sostituendo il ciclo principale basato su
select()
con un ciclo principale basato sukqueue
. - Le dimensioni del buffer Logcat sono state aumentate a 2 MB per risolvere i problemi relativi a EOF imprevisti e instabili durante l'esecuzione di Logcat con l'emulatore.
- L'emulatore ora esporta la variabile di ambiente
LC_ALL=C
per impostazione predefinita. Questa modifica risolve i problemi di arresto anomalo e incompatibilità associati all'esecuzione dell'emulatore in impostazioni internazionali diverse. - Ora puoi monitorare l'utilizzo di CPU e RAM dell'emulatore utilizzando le statistiche sulle prestazioni a cui puoi accedere in Controlli estesi > Impostazioni > Avanzate > Statistiche sulle prestazioni. Utilizza queste statistiche per diagnosticare rapidamente i problemi se l'emulatore sembra utilizzare troppa CPU o RAM.
glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE
ora utilizza il risultato della GPU host anziché uno emulato. Questa modifica consente di risolvere i problemi per cui le immagini e gli asset non vengono visualizzati a causa di un formato di lettura errato.- È stato aggiunto il supporto per le estensioni OpenGL ES
GL_EXT_texture_format_BGRA8888
eGL_APPLE_texture_format_BGRA8888
se queste estensioni sono supportate dall'host. - Sono state aggiunte ulteriori informazioni diagnostiche all'interfaccia utente di Bugreport. Inoltre, puoi accedere
ai report sui bug dalla console utilizzando i seguenti comandi:
telnet localhost 5554
avd bugreport
- Nelle immagini di sistema Android Q, l'emulatore aumenta le dimensioni minime della RAM a 2 GB.
- Sono stati aggiunti ulteriori log e stampe ogni volta che OpenGL o l'hypervisor non riescono a inizializzarsi.
- Se l'emulatore non riesce ad avviare un'istanza
-read-only
simultanea di un AVD, ora tenta di riavviare l'AVD-read-only
altre 3 volte in 3 secondi. Questa modifica aumenta la probabilità che l'emulatore sia in grado di avviare istanze-read-only
simultanee di un AVD se altre istanze scrivibili di questo AVD non hanno completato la pulizia dei file obsoleti. - Per le prossime immagini di sistema, l'emulatore ora supporta Hardware Composer 2.0. Questa modifica dovrebbe ridurre il sovraccarico del driver durante l'esecuzione della maggior parte delle animazioni.
- La build dell'emulatore ora si basa su CMake/Ninja.
- Nell'interfaccia utente dei controlli estesi dell'emulatore, sono state ripristinate le linee di divisione nella tabella delle scorciatoie da tastiera.
- Ora gli utenti possono attivare la fornitura al nostro team di metriche sull'utilizzo di CPU e RAM a intervalli di 10 secondi. Utilizziamo queste metriche per arricchire i nostri dati sull'utilizzo delle risorse dell'emulatore con diversi casi d'uso dei nostri utenti, il che ci consente di rendere l'emulatore più efficiente e reattivo.
Correzioni generali di Project Marble
Questo aggiornamento include anche le seguenti correzioni generali che fanno parte dell'iniziativa Project Marble:
- Sono stati risolti i problemi relativi a tremolii e frame errati visualizzati sui sistemi con GPU Intel quando si utilizzano immagini di sistema Android Q.
- Risolti i problemi per cui veniva visualizzata una schermata nera quando si utilizzavano immagini di sistema Android Q con skin Pixel 2 XL (o qualsiasi skin con una tacca o angoli arrotondati).
- È stato risolto un problema per cui l'opzione della riga di comando
-partition-size
non impostava la dimensione della partizione dei dati. - Risolto un problema per cui pulseaudio sull'emulatore Linx girava e occupava un intero core della CPU in alcune situazioni.
- Sono stati risolti i problemi relativi all'accesso alla memoria fuori dai limiti durante l'elaborazione di texture compresse.
- Sono stati corretti gli errori GL che si verificavano sull'host in
glTexSubImage2D
durante l'aggiornamento di determinati buffer gralloc (con formato RGB 565, RGB10A2, RGB(A)16F). - È stato risolto un problema di visualizzazione nelle immagini di sistema Android Q con snapshot in cui la geometria dell'area notifiche veniva visualizzata con un'impostazione di divisore di istanze errata.
- Sono stati corretti alcuni problemi di arresto anomalo e blocco difficili da riprodurre all'avvio dovuti alla perdita di segnali o a stati instabili e incoerenti di Qt all'avvio.
- Risolti numerosi problemi di concorrenza. Ora possiamo creare l'emulatore Linux con ThreadSanitizer (TSAN), che può facilmente scoprire bug altrimenti difficili da riprodurre.
- Per gli utenti Linux: abbiamo riscontrato che su alcuni kernel host, il kernel Android guest può generare errori e uscire da KVM con un errore hardware generico. L'emulatore
ora
abort()
quando si verifica questo problema per aumentare la possibilità di eseguire il debug (in precedenza, l'emulatore si bloccava). - Per gli utenti Linux: per semplificare le configurazioni CI, puoi utilizzare la nuova
opzione della riga di comando
-stdouterr-file <file-name>
per reindirizzare siastdout
siastderr
a un file. - Risolto un problema per cui
SO_REUSEADDR
veniva utilizzato in modo errato. Per ulteriori informazioni, consulta i dettagli del commit. - Risolto un problema di lunga data con l'emulatore Windows per cui i sottoprocessi, come i comandi ADB, non venivano avviati se il nome utente conteneva spazi.
- Risolto un problema relativo all'inizializzazione mancante di RCU nei thread vCPU di HAXM. Questa correzione può risolvere alcuni arresti anomali e condizioni di competizione.
- È stato risolto un arresto anomalo che si verificava con determinati pattern di salvataggio e caricamento di snapshot dall'interfaccia utente degli snapshot utilizzando le recenti immagini di sistema Android Q.
- È stato risolto un problema per cui la videocamera della scena virtuale risultava vuota quando l'emulatore veniva inizializzato da un'istantanea se una macro AR era in riproduzione al momento del salvataggio dell'istantanea.
- Risolto un problema per cui alcuni utenti con configurazioni di desktop remoto visualizzavano una schermata nera
quando avviavano l'emulatore su Linux. Per evitare questo problema, l'emulatore ora configura
in modo esplicito
MESA_RGB_VISUAL
. Per ulteriori informazioni, consulta i dettagli del commit. - È stato risolto un problema per cui i pulsanti di rotazione venivano visualizzati sugli AVD TV.
- È stato risolto un problema per cui se l'emulatore era impostato sempre in primo piano, la finestra dei controlli estesi veniva visualizzata ogni volta che l'emulatore veniva ruotato.
Profili hardware per dispositivi pieghevoli
L'emulatore ora include profili hardware per i dispositivi pieghevoli. Per utilizzare questi nuovi profili hardware, devi utilizzare Android Studio 3.5 Canary 10 o versioni successive.
Esistono due profili hardware pieghevoli che puoi utilizzare per creare un AVD:
- 7,3" pieghevole: 1536 x 2152 aperto, 4,6" 840 x 1960 chiuso
- 8" pieghevole: 2200 x 2480 aperto, 6,6" 1480 x 2480 chiuso
Quando esegui l'emulatore utilizzando uno di questi profili hardware, puoi chiudere e aprire il dispositivo utilizzando le azioni di chiusura e apertura nella barra degli strumenti dell'emulatore, i comandi della console o le seguenti scorciatoie da tastiera:
- Piegatura:
Ctrl + F
(Command + F
su macOS) - Apri:
Ctrl + U
(Command + U
su macOS)
Macro AR
L'emulatore ora include macro AR che possono aiutarti a testare le azioni AR comuni. Ad esempio, puoi utilizzare una macro per ripristinare lo stato predefinito di tutti i sensori del dispositivo.
Per saperne di più, vedi Testare le azioni AR comuni con le macro.
Supporto Vulkan (Windows, Linux)
Gli utenti Windows e Linux ora possono testare le app Vulkan con Android Emulator fino a Vulkan 1.1 quando utilizzano un'immagine di sistema compatibile (Android Q Beta 3 o versioni successive per Vulkan 1.1, Android Q Beta 2 per Vulkan 1.0) e una GPU host compatibile (la maggior parte delle GPU Intel, NVIDIA e AMD dal 2014 in poi).
Per attivare il supporto di Vulkan, devi aggiungere i seguenti flag di funzionalità al tuo
file ~/.android/advancedFeatures.ini
(crea il file se non esiste):
Vulkan = on
GLDirectMem = on
Supporto iniziale per gli sviluppatori di ROM
Gli sviluppatori di ROM che creano i target sdk_phone_x86
o sdk_phone_x86_64
(varianti userdebug
, eng
) nel ramo AOSP master
ora possono eseguire un
emulatore compatibile con Vulkan.
Questo supporto è ancora sperimentale ed è destinato principalmente agli sviluppatori che lavorano su
immagini di sistema, driver e motori di gioco. Molte estensioni non sono ancora disponibili.
Tuttavia, la memoria HOST_COHERENT
è supportata e ora dovresti essere in grado di eseguire gli esempi del tutorial sull'API Vulkan.
Se utilizzi Linux, puoi provare a farlo utilizzando i seguenti comandi:
mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem
Rendering Skia con Vulkan
Le GPU NVIDIA e AMD che supportano Vulkan supportano anche l'interoperabilità zero-copy con
OpenGL tramite l'estensione GL_EXT_memory_objects
. L'emulatore sfrutta questa
funzionalità per fornire un modo completo per eseguire il rendering dell'interfaccia utente Android utilizzando le API Skia
Vulkan.
Se hai una GPU NVIDIA o AMD che supporta Vulkan, utilizza i seguenti comandi per testare il rendering Skia con un'immagine di sistema compatibile (Android Q Beta 3 e versioni successive):
adb shell
su
setprop debug.hwui.renderer skiavk
stop
start
Supporto di Vulkan per macOS
Il supporto di macOS è ancora sperimentale, ma l'emulatore include già le API Swiftshader, MoltenVK e libportability (gfx-rs). Puoi sperimentare queste API impostando le seguenti variabili di ambiente:
- Swiftshader:
ANDROID_EMU_VK_ICD=swiftshader
- MoltenVK:
ANDROID_EMU_VK_ICD=moltenvk
- libportability:
ANDROID_EMU_VK_ICD=portability
Problemi noti
A volte HAXM non riesce a mappare la memoria coerente di Vulkan all'ospite e chiude l'emulatore. Questo problema verrà risolto in un aggiornamento di HAXM futuro.
Emulatore di streaming gRPC (Linux)
Cerchiamo sempre di rendere l'emulatore il più versatile possibile consentendo il rendering e l'interattività della GPU host nella più ampia gamma di contesti di esecuzione. I nostri utenti di CI e di desktop remoto riscontrano i seguenti problemi di lunga data:
- L'invio programmatico di comandi di input all'emulatore comporta l'esecuzione di comandi adb shell che possono comportare un overhead elevato o l'utilizzo della console telnet, che è più veloce, ma potrebbe non funzionare con determinate configurazioni di rete.
- Gli utenti di CI spesso eseguono emulatori headless, il che può rendere difficile notare problemi che richiedono che lo schermo sia visibile o interattivo.
- Gli utenti del desktop remoto spesso non possono interagire con l'emulatore quando utilizzano il rendering della GPU host perché il rendering della GPU è spesso legato ai display non virtuali dell'host.
Per risolvere questo problema, quando viene eseguito su una macchina Linux, l'emulatore ora gestisce un servizio gRPC. gRPC è un framework generale per RPC che funziona tramite HTTP.
Per impostazione predefinita, il servizio gRPC dell'emulatore è disattivato, ma puoi attivarlo
utilizzando la seguente opzione della riga di comando, dove <port>
è la porta su cui l'emulatore deve gestire le richieste gRPC (di solito 5556
):
-grpc <port>
Una volta avviato il servizio, i comandi gRPC possono essere emessi dai client. L'attuale insieme di comandi consente sia l'invio di eventi di input sia la ricezione di screenshot. Questi comandi consentono di risolvere i seguenti problemi:
- I comandi di input possono essere inviati all'emulatore con un overhead ridotto tramite HTTP. HTTP consente inoltre di inviare comandi in configurazioni di rete aggiuntive.
- I comandi per gli screenshot possono essere inviati per eseguire query sulla schermata corrente, anche se l'emulatore è in esecuzione headless. Per l'interattività, gli eventi di input possono anche essere inviati di nuovo all'emulatore.
- Gli utenti del desktop remoto possono eseguire l'emulatore headless sul display principale con rendering con accelerazione GPU mentre utilizzano gRPC per acquisire screenshot e inviare eventi di input per interagire con l'emulatore.
Per un elenco completo dei comandi disponibili, consulta questo protobuf.
Per aiutarti a iniziare a utilizzare gRPC, abbiamo fornito alcuni client di esempio a cui puoi fare riferimento.
Al momento, sono inclusi i seguenti campioni:
- Un servizio basato su Go che può essere utilizzato per eseguire query sugli stati dell'emulatore.
- Un'app React che dimostra l'interattività remota tramite RPC di screenshot e input. Questo esempio richiede protobuf versione 3.7.0 o successive.
- Un esempio Python che esegue query sulla configurazione della VM dell'emulatore e poi invia una serie di comandi.
28.0.25 (29 marzo 2019)
Questo aggiornamento include i seguenti miglioramenti e correzioni:
Build dell'emulatore headless
L'emulatore è stato difficile da configurare con Docker e altri flussi di lavoro di integrazione continua (CI) a causa delle aspettative implicite del sistema di poter supportare Qt insieme alle sue dipendenze della libreria condivisa (tra gli altri problemi).
Come primo passo per risolvere questo problema, abbiamo introdotto una variante del launcher dell'emulatore con eseguibili QEMU che non dipende da Qt. Su Linux, è
ancora presente un link a libX11
, ma ci auguriamo di rimuoverlo presto.
Per utilizzare l'emulatore headless, esegui l'emulatore dalla riga di comando come di consueto,
ma sostituisci la chiamata al binario dell'emulatore con emulator-headless
. Per maggiori
informazioni, consulta l'aggiornamento
della release 28.1.8 Canary.
- È stato corretto lo sfarfallio e la visualizzazione errata dei frame sulle GPU Intel durante l'esecuzione di immagini di sistema Android Q.
- Sono stati risolti i problemi relativi alla visualizzazione della schermata nera quando si utilizzano immagini di sistema Android Q con skin Pixel 2 XL.
- Ora vengono utilizzati i binari del BIOS più recenti per avviare l'emulatore. Questa modifica può contribuire a ridurre gli errori "Richiesta di arresto della vCPU" che si verificano a volte quando si avvia l'emulatore su Windows.
- È stato eseguito il backporting di una correzione per il problema"visualizzazione errata quando si riprendono le immagini di sistema Android Q da uno snapshot".
- Gli utenti riscontravano problemi con gli emulatori"non autorizzati"
a causa di una modifica incompatibile in ADB in platform-tools 28.0.2. Ora puoi
utilizzare in sicurezza ADB da platform-tools 28.0.2 con l'emulatore. Se riscontri problemi con emulatori "non autorizzati", segui questi passaggi per la risoluzione dei problemi:
- Esci da tutti gli emulatori.
- Elimina sia il file
~/.android/adbkey
che il file~/.android/adbkey.pub
. - Esegui questo comando:
adb kill-server
- Esegui questo comando:
adb devices
- Cancella i dati dell'AVD.
- Riavvia l'emulatore.
28.0.23 (29 gennaio 2019)
Questo aggiornamento include i seguenti miglioramenti e correzioni:
Ingresso audio dell'organizzatore disattivato per impostazione predefinita
Un recente post su Reddit spiegava in dettaglio come il sistema operativo Android guest utilizzasse sempre l'audio del microfono dell'host, consentendo così il funzionamento imprevisto di "Hey Google". Ci scusiamo per questo inconveniente e collaboreremo con il team Android per assicurarci che il rilevamento dell'hotword sia disattivato anche nell'immagine di sistema.
Per risolvere questo problema, abbiamo apportato le seguenti modifiche:
- Ora i dati audio dell'host effettivo vengono eliminati per impostazione predefinita. Quando l'ospite utilizza il microfono, viene trasmesso il silenzio anziché l'audio dell'organizzatore.
- Se vuoi utilizzare i dati audio dell'host, ora puoi attivare questa opzione andando su Controlli estesi > Microfono e attivando Il microfono virtuale utilizza l'input audio dell'host. Questa opzione viene disattivata automaticamente ogni volta che l'emulatore viene riavviato.
Aggiornamenti sulle indagini sull'utilizzo della CPU
Durante le nostre indagini su Project Marble, abbiamo notato che l'utilizzo elevato della CPU sull'emulatore rientra generalmente nelle seguenti tre categorie:
Inattivo: aggiornamenti automatici delle app nelle immagini del Play Store
Abbiamo riscontrato che a intervalli casuali tutte le app installate vengono aggiornate, anche quando l'utente non ha eseguito l'accesso. Durante il processo, l'utilizzo della CPU viene portato al numero di core x 100% (in genere circa il 400%) in GMSCore e dex2oat. Puoi risolvere questo problema disattivando gli aggiornamenti automatici delle app nell'app Play Store.
Inattivo: rilevamento hotword
Quando si è nella schermata Home e non è in primo piano alcuna app, l'utilizzo della CPU può essere elevato (circa il 25% con picchi fino al 50%). Ciò è dovuto al rilevamento hotword che esegue costantemente il ping dell'host. Non puoi risolvere questo problema disattivando l'input audio dell'host perché il costo della CPU è causato principalmente dal tempo necessario per raggiungere l'host dal guest. Tuttavia, puoi mitigare il problema revocando le autorizzazioni di accesso al microfono dall'app Google.
Durante l'attività, a volte inattive: animazioni
La terza causa di un elevato utilizzo della CPU sono le animazioni. Abbiamo scoperto che ottimizzando lo stack dei driver grafici è possibile ridurre l'utilizzo della CPU anche quando l'emulatore non è inattivo. Nell'ambito del progetto Marble, implementeremo gradualmente le ottimizzazioni dei driver grafici.
28.0.22 (21 dicembre 2018)
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- Risolto un problema di lunga data per cui, in alcune impostazioni, l'emulatore Mac si riavviava o si verificava un kernel panic durante il salvataggio di Quickboot. (Problema 120951634)
- Quando si utilizza un file mappato come snapshot della RAM, l'emulatore ora annulla la mappatura del file in modo esplicito all'uscita.
28.0.20 (11 dicembre 2018)
Questo aggiornamento include i seguenti miglioramenti e correzioni:
- Risolto un problema su Windows che causava il blocco dell'emulatore durante il caricamento dello snapshot con determinati modelli di GPU Intel.
- È stato risolto un problema che causava uno stato del dispositivo ADB
unauthorized
quando si utilizzava una posizioneANDROID_SDK_HOME
non standard. - È stato risolto un problema su Windows che causava l'arresto anomalo dell'emulatore durante l'avvio di immagini di sistema con l'accelerazione della CPU disattivata.
- Risolto il problema di visualizzazione dell'emulatore pixelato. Ora il sottocampionamento dovrebbe funzionare.
- Risolto un problema su macOS 10.14 e versioni successive per cui il controllo della visuale con il mouse della videocamera della scena virtuale poteva diventare troppo sensibile a causa di un'interazione con le nuove impostazioni di sicurezza dell'accessibilità.
- È stato corretto un errore nel calcolo del fuso orario che poteva causare cambiamenti sporadici dell'orologio dell'emulatore.
- Sono stati corretti gli errori di rendering in varie app con motori cocos2d e Unreal.
- È stato aggiunto il supporto nell'emulatore per il Wi-Fi peer-to-peer.
Ora due emulatori possono comunicare tra loro direttamente tramite Wi-Fi se utilizzano l'ultima
immagine del Play Store Pie. Per utilizzare il Wi-Fi peer-to-peer, avvia due AVD con gli stessi
argomenti
-wifi-server-port
e-wifi-client-port
:emulator @<server-avd-name> -wifi-server-port 9999
emulator @<client-avd-name>-wifi-client-port 9999
- Aggiunta del supporto di altre webcam su Windows prendendo le dimensioni dei frame incompatibili e ridimensionandole dinamicamente per adattarle all'impostazione della videocamera nel guest Android.
28.0.16 (novembre 2018)
Questo aggiornamento include diverse nuove funzionalità, miglioramenti a quelle esistenti e correzioni di bug.
Utilizzo delle risorse
L'emulatore ora utilizza meno RAM complessivamente, soprattutto quando si utilizzano immagini di sistema con livello API 28 o superiore. Queste immagini di sistema includono un utilizzo della memoria migliorato per i driver grafici lato ospite.
Inoltre, abbiamo migliorato l'utilizzo delle risorse nelle seguenti aree:
- Riduzione dell'utilizzo della memoria dell'emulatore durante i test di lunga durata. Se continui a riscontrare problemi con l'utilizzo della memoria durante i test di lunga durata, crea un problema che descriva il tuo caso d'uso in Issue Tracker.
- Riduzione dell'utilizzo della CPU durante l'esecuzione di app con animazioni.
- Risolto un problema per cui il contesto QEMU AIO poteva subire perdite su Windows.
Esegui più istanze di un singolo AVD contemporaneamente
Ora puoi avviare più istanze dello stesso AVD ed eseguirle contemporaneamente. Le istanze avviate dopo la prima sono di sola lettura e le modifiche apportate al disco virtuale guest vengono eliminate all'uscita.
Per eseguire più istanze dello stesso AVD contemporaneamente, avvia le istanze
dopo la prima dalla riga di comando utilizzando il flag -read-only
.
Questa funzionalità è resa possibile dalla copia dei file QCOW2 associati alle
parti scrivibili dell'immagine Android. Per aiutarti a gestire lo spazio su disco, abbiamo anche
raggruppato lo strumento a riga di comando qemu-img
per consentirti di eseguire il pre-commit dei file QCOW2
prima di avviare più istanze.
Inoltre, se utilizzate in combinazione con la funzionalità Snapshot della RAM guest basati su file , più istanze AVD condividono lo snapshot Quickboot AVD principale come origine comune della RAM guest copy-on-write. Questa proprietà indica che le istanze condividono gran parte della RAM. Utilizza questa funzionalità per eseguire test che richiedono l'esecuzione parallela su più dispositivi.
Apprezziamo il tuo feedback sui possibili casi d'uso che fanno parte del tuo normale flusso di lavoro interattivo o di integrazione continua. Crea o vota i problemi in Issue Tracker.
Snapshot della RAM guest basati su file
Preallocando e mappando la RAM guest come file, l'emulatore ora può salvare gli snapshot di Quickboot durante l'esecuzione, anziché eseguire tutto il lavoro all'uscita. Se attualmente riscontri lunghi tempi di salvataggio quando chiudi gli emulatori, attiva questa funzionalità per migliorare le prestazioni di Quickboot. Per impostazione predefinita, viene salvata un'istantanea di Quickboot all'uscita e viene caricata di nuovo ogni volta, come la sospensione e la riattivazione di un dispositivo reale.
Poiché la RAM ospite di Android ora viene salvata automaticamente per impostazione predefinita, se vuoi definire uno stato del dispositivo e caricarlo ripetutamente, devi indicare all'emulatore di ignorare le modifiche dopo ogni sessione. Puoi farlo nei seguenti modi:
- Utilizza i flag
-no-snapshot-save
o-read-only
quando avvii l'emulatore dalla riga di comando. - Vai a Controlli estesi > Snapshot > Impostazioni e imposta l'opzione Salvataggio automatico dello stato attuale per l'avvio rapido? su No.
- Dopo aver selezionato questa opzione, dovrai riavviare l'emulatore. Se l'emulatore è impostato sul salvataggio automatico, puoi eseguire il comando seguente per impostare un checkpoint:
Dopo aver eseguito questo comando, lo snapshot Quickboot dell'emulatore rimarrà in questo checkpoint. Esegui di nuovo lo stesso comando per caricare l'emulatore dal checkpoint.adb emu avd snapshot remap 0
Gli snapshot acquisiti e caricati tramite la funzionalità UI degli snapshot funzionano come prima, senza mapping dei file.
Poiché si tratta di una modifica importante al funzionamento di Quickboot, ti saremmo grati se potessi comunicarci se migliora le prestazioni di Quickboot e quali tipi di problemi riscontri durante l'utilizzo. Se riscontri problemi, puoi
disattivare questa funzionalità aggiungendo la seguente riga al tuo
file ~/.android/advancedFeatures.ini
:
QuickbootFileBacked = off
Quando avvii l'emulatore da uno snapshot (utilizzando l'opzione della riga di comando -snapshot
o avviando da uno snapshot in AVD Manager), l'emulatore disattiva il salvataggio automatico degli snapshot Quickboot e il salvataggio degli snapshot Quickboot all'uscita. In questo modo si riduce la probabilità che lo snapshot Quickboot venga
sovrascritto involontariamente e si evitano percorsi di fallback lenti che non utilizzano
snapshot Quickboot basati su file.
QEMU 2.12
Abbiamo eseguito il rebase della nostra variante di QEMU da QEMU 2.9 a QEMU 2.12. Questo aggiornamento include le seguenti modifiche di QEMU:
- https://wiki.qemu.org/ChangeLog/2.10
- https://wiki.qemu.org/ChangeLog/2.11
- https://wiki.qemu.org/ChangeLog/2.12
Di seguito sono riportate alcune delle modifiche più importanti che interessano l'emulatore Android:
- x86:
gdbstub
ora fornisce l'accesso ai registri SSE. - Immagini disco: il blocco delle immagini è aggiunto e attivato per impostazione predefinita. Più processi QEMU non possono scrivere nella stessa immagine finché l'host supporta il blocco OFD o POSIX, a meno che non vengano specificate altre opzioni.
qemu-img: qemu-img resize
supporta la preallocazione delle nuove parti dell'immagine.- La riduzione di QCOW2 è ora supportata in
qemu
eqemu-img
.
Accessibilità
- Sono stati risolti i problemi relativi agli screen reader ed è stato aggiunto un supporto migliore per questi strumenti nell'interfaccia utente di Registra schermo e Istantanea.
- Le icone di notifica dell'avvio rapido sono state rese più accessibili agli utenti daltonici.
Grafica
- È stato risolto un problema di accesso alla memoria fuori dai limiti che poteva verificarsi per i puntatori di array di vertici OpenGL ES.
- Alcune GPU meno recenti non supportavano OpenGL 2.1 o versioni successive (obbligatorie) oppure avevano altri problemi di affidabilità. Questi problemi potrebbero causare l'arresto anomalo dell'emulatore all'avvio, il blocco o l'inutilizzabilità con l'impostazione GPU predefinita. L'emulatore ora passa automaticamente al renderer Swiftshader se rileva che queste GPU sono in uso.
- Risolto un problema che impediva all'emulatore di pubblicare il framebuffer corretto se
FBO != 0
era associato al momento dieglSwapBuffers
. - È stato risolto il problema a causa del quale il display virtuale Android veniva visualizzato solo nell'angolo in alto a sinistra. Riteniamo che ciò sia dovuto a variabili di ambiente Qt configurate in modo errato. L'emulatore ora esegue l'override di tutte le variabili di ambiente correlate al ridimensionamento di Qt.
- Risolto un problema per cui l'emulatore si arrestava in modo anomalo in alcune situazioni durante il caricamento di app GLES1 da uno snapshot.
- Risolti problemi di concorrenza in OpenGL e nell'avvio di thread di rendering che potevano causare liberazioni doppie o dati danneggiati.
- Android Emulator ora supporta le texture compresse ASTC LDR
(
GL_KHR_texture_compression_astc_ldr
) per le immagini di sistema che utilizzano il livello API 28 o versioni successive. - La maggior parte delle GPU moderne ora dovrebbe essere in grado di avviare l'emulatore con OpenGL ES 3.x
attivato per impostazione predefinita senza utilizzare il flag di funzionalità
GLESDynamicVersion
. -gpu guest
(rendering software nell'ospite) è stato ritirato. Le immagini di sistema per il livello API 28 o superiore ora passano automaticamente all'utilizzo di Swiftshader (-gpu swiftshader_indirect
).- Se l'emulatore viene avviato dalla riga di comando utilizzando il flag
-no-window
, il renderer predefinito ora è Swiftshader.
Posizione
- L'emulatore ora può aggiornare l'orientamento insieme alla posizione di latitudine e longitudine. Il sensore virtuale magnetometro si adatta dinamicamente al nord magnetico deducendo il movimento durante la riproduzione di un file GPX o KML.
- Ora è possibile impostare la velocità del dispositivo nella pagina Posizione.
- Durante la riproduzione di un file GPX o KML, la velocità viene impostata automaticamente e viene impostata su zero al termine della riproduzione.
- L'altitudine non è più limitata a un valore compreso tra -1000 e +10.000 metri.
- È stato risolto un problema per cui la posizione GPS virtuale non veniva aggiornata periodicamente, a meno che la finestra Controlli estesi non fosse stata aperta almeno una volta.
Fotocamera
Su Windows, ora sono supportate più webcam perché l'emulatore ridimensiona dinamicamente i frame della videocamera forniti dalla webcam. Questa funzionalità impedisce inoltre che gli errori nella pubblicazione dei frame causino il blocco dell'emulatore.
Play Store
Per risolvere i problemi di esaurimento dello spazio su disco nelle immagini del Play Store, l'emulatore ora ridimensiona automaticamente la partizione userdata a 6 GB quando viene eseguito con un AVD Play Store nuovo.
Miglioramenti e correzioni generali della qualità
- Alcuni utenti hanno segnalato che l'emulatore è lento. Abbiamo identificato una
possibile causa per cui la directory temporanea dell'emulatore contiene troppi
file obsoleti. Come soluzione alternativa, l'emulatore non memorizza più i file di controllo
dell'attività di ADB in questa directory. Tuttavia, potrebbe essere utile anche eliminare i contenuti
di questa cartella. La cartella si trova in una delle seguenti posizioni, a seconda del sistema operativo:
- Windows:
C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
- macOS o Linux:
/tmp/android-<username>/*
- Windows:
- Se l'emulatore non può essere avviato a causa di RAM libera insufficiente, ora viene visualizzato un messaggio di errore. Se utilizzi Windows e noti che la RAM è libera, ma non riesci comunque ad avviare l'emulatore, è possibile che il commit charge sia stato superato. Per assistenza in merito a questo problema, consulta la pagina di risoluzione dei problemi dell'emulatore.
- L'opzione della riga di comando
-sysdir
ora esegue correttamente l'override della directory delle immagini di sistema dedotta. - Il modem virtuale ora supporta la query
+MAI
model activity info. - Sono stati risolti vari problemi relativi a perdite di memoria, danneggiamento della memoria e utilizzo della CPU. Se riscontri arresti anomali, perdite di memoria o un altro utilizzo elevato delle risorse, crea un problema in Issue Tracker.
- Risolto un problema riapparso su macOS 10.14 per cui l'utilizzo di cuffie Bluetooth con l'emulatore peggiorava l'audio a livello globale. Per evitare questo problema, l'emulatore ora evita di utilizzare l'audio Bluetooth quando viene eseguito su macOS. (Problema 37070892)
- Risolto un problema su Windows per cui l'orologio dell'emulatore non si trovava nel fuso orario corretto.
- Abbiamo risolto il problema di lentezza e blocco dell'emulatore sui sistemi Linux con dischi rigidi meccanici (HDD).
- Sono stati corretti alcuni avvisi di compilazione che potrebbero causare il danneggiamento dello stack su macOS.
- Risolti problemi che potevano causare report fuorvianti di blocco.
- Risolto un problema relativo all'eliminazione dei pool di thread che poteva causare un arresto anomalo se uno dei thread non veniva creato correttamente.
- Risolto un problema su macOS per cui i timer diventavano inaffidabili, causando blocchi e altri comportamenti anomali. Se riscontri blocchi dell'emulatore su macOS, crea un problema in Issue Tracker.
- Risolto un problema per cui la chiusura dell'emulatore disattivava la UI, ma non chiudeva effettivamente l'emulatore.
- Sono stati risolti problemi relativi ad arresti anomali sporadici, incluso un arresto anomalo dovuto all'apertura di troppe istanze di
/dev/urandom
. - È stato risolto un problema che impediva l'avvio dell'emulatore dopo la prima volta se ADB veniva terminato forzatamente.
- La build MIPS è stata rimossa. Se hai ancora bisogno di MIPS, crea un problema in Issue Tracker.
- Risolto un problema per cui le connessioni ADB potevano danneggiarsi durante il caricamento dello snapshot.
- Risolto un problema per cui la finestra dell'emulatore aveva un'immagine residua o si teletrasportava fuori dallo schermo quando si ripristinava uno snapshot in cui l'orientamento del dispositivo era diverso dall'orientamento predefinito dell'AVD.
- Sono stati risolti i problemi relativi agli arresti anomali durante il salvataggio degli snapshot.
- Su Linux, i file system btrfs possono causare rallentamenti estremi perché l'emulatore
salva automaticamente gli snapshot e utilizza la copia su scrittura per i dispositivi
del disco virtuale. Ti consigliamo di pulire la directory
~/.android/avd
ed eseguire il seguente comando nella directory~/.android/avd
vuota: Vengono creati nuovi snapshot in una cartella in cui la copia in scrittura è disattivata.chattr +C
HAXM 7.3.2
Vorremmo menzionare di nuovo HAXM 7.3.2 perché deve essere installato affinché le immagini di sistema recenti vengano eseguite correttamente sull'emulatore. HAXM 7.3.2 dovrebbe essere già disponibile nel canale stabile e può anche essere installato manualmente da https://github.com/intel/haxm/releases.
Ecco alcuni dei problemi risolti da questa versione di HAXM:
- Sono stati corretti arresti anomali casuali dei sistemi operativi guest che utilizzano un kernel Linux recente (>= 4.6). Ad esempio, Ubuntu 18.04 (#39, #74).
- È stato corretto un bug dell'emulatore di istruzioni x86 che poteva causare l'arresto anomalo dell'host (#93).
Ritiro di Windows a 32 bit
A causa del basso utilizzo e degli elevati costi di manutenzione, prevediamo di ritirare la versione a 32 bit di Android Emulator che viene eseguita su Windows. Prima della rimozione e della fine del ciclo di vita della versione a 32 bit di Android Emulator, implementeremo un piano di transizione. Tuttavia, siamo alla ricerca attiva di feedback o dubbi in merito a questa futura modifica.
Faccelo sapere in Issue Tracker se attualmente utilizzi la versione a 32 bit di Android Emulator che viene eseguita su Windows e comunicaci come possiamo collaborare al meglio con te in futuro.
27.3.10 (agosto 2018)
Questo aggiornamento include la seguente correzione di bug:
Correzione della configurazione delle dimensioni della RAM
Alcuni utenti hanno segnalato che l'emulatore è lento. Abbiamo identificato una
possibile causa per cui la dimensione della RAM dell'AVD nel file config.ini
dell'AVD
è stata impostata in modo errato.
Per risolvere questo problema, l'emulatore aumenta il livello minimo di RAM per le immagini che
utilizzano il livello API 26 o versioni successive al livello predefinito di Android Studio di 1536 MB. Se
il file config.ini
dell'AVD non elenca hw.ramSize
in megabyte,
crea un problema in Issue Tracker.
Puoi trovare il file config.ini
nel seguente percorso:
~/.android/avd/<avdname>.avd/config.ini
27.3.9 (luglio 2018)
Questo aggiornamento include i seguenti miglioramenti e correzioni di bug:
Messaggi di errore migliorati per Windows Hypervisor Platform
Alcuni utenti avevano difficoltà a diagnosticare il motivo per cui l'inizializzazione di Windows Hypervisor Platform
(WHPX) non riusciva quando attivavano un emulatore WHPX. Per aiutarti a
diagnosticare questi problemi, abbiamo aggiunto messaggi di errore più informativi. Puoi
attivare questi messaggi di errore eseguendo l'emulatore dalla riga di comando utilizzando
il flag -verbose
.
Correzioni generali
- Sono stati corretti gli errori OpenGL che si verificano durante il caricamento di uno snapshot nell'app Fotocamera.
27.3.8 (luglio 2018)
Questo aggiornamento include diverse nuove funzionalità, miglioramenti a quelle esistenti e correzioni di bug.
Istantanee
Ora puoi salvare più snapshot AVD per una determinata configurazione del dispositivo e scegliere quale snapshot caricare all'avvio dell'emulatore.
A partire da Android Studio 3.2 Canary 13, ogni configurazione del dispositivo include un controllo nelle impostazioni avanzate della finestra di dialogo Configurazione dispositivo virtuale con cui puoi specificare quale snapshot AVD caricare all'avvio dell'AVD.
Per adattarsi a questa espansione delle funzionalità di snapshot, abbiamo aggiunto una categoria Snapshot alla finestra di dialogo Controlli estesi. Questo nuovo riquadro contiene i controlli per salvare e caricare gli snapshot AVD, inclusi i controlli per salvare e caricare lo snapshot di avvio rapido che in precedenza si trovava nel riquadro Impostazioni.
Puoi modificare il nome e la descrizione di ogni snapshot salvato.
Per maggiori dettagli, vedi Snapshot.
HAXM 7.2.0
HAXM 7.2.0 è ora disponibile in tutti i canali.
Questo aggiornamento include correzioni di bug e un supporto migliorato per grandi quantità di RAM. Inoltre, con questo aggiornamento di HAXM ed Emulator 27.3 e versioni successive, gli snapshot caricano i propri contenuti nella RAM su richiesta anziché caricare l'intero snapshot all'avvio del dispositivo virtuale. Questa modifica dovrebbe ridurre notevolmente il tempo necessario per caricare uno snapshot.
Per maggiori dettagli, vedi Configurazione dell'accelerazione VM.
27.2.9 (maggio 2018)
Questo aggiornamento include diverse nuove funzionalità, miglioramenti a quelle esistenti e correzioni di bug.
Registrazione dello schermo
Ora puoi registrare video e audio dall'emulatore Android e salvare la registrazione in un file WebM o GIF animata.
I controlli di registrazione dello schermo si trovano nella scheda Registrazione schermo della finestra Controlli estesi.
Suggerimento:puoi anche aprire i controlli di registrazione dello schermo premendo Ctrl + Maiusc + R (Comando + Maiusc + R su Mac).
Per iniziare la registrazione dello schermo, fai clic sul pulsante Avvia registrazione nella scheda Registrazione schermo. Per interrompere la registrazione, fai clic su Interrompi la registrazione.
I controlli per riprodurre e salvare il video registrato si trovano nella parte inferiore della scheda Registrazione schermo. Per salvare il video, scegli WebM o GIF dal menu nella parte inferiore della scheda e fai clic su Salva.
Puoi anche registrare e salvare una registrazione dello schermo dall'emulatore utilizzando il seguente comando nella riga di comando:
adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm
Screenshot
Puoi acquisire screenshot dalla riga di comando con uno dei seguenti comandi:
screenrecord screenshot [destination-directory]
adb emu screenrecord screenshot [destination-directory]
Gli screenshot vengono salvati in formato PNG.
Fotocamera per scene virtuali e ARCore
Sviluppare e testare app di realtà aumentata (AR) con ARCore è ora ancora più semplice grazie alla nuova videocamera di scena virtuale, che ti consente di sperimentare la tua esperienza AR all'interno di un ambiente virtuale.
Per informazioni sull'utilizzo della videocamera di scena virtuale nell'emulatore, vedi Eseguire app AR in Android Emulator.
Immagini del Google Play Store su un dispositivo Pixel
Google Play Store è ora attivato per le immagini dei dispositivi Pixel e Pixel 2. Ciò è indicato in AVD Manager in Android Studio 3.2 e versioni successive con il logo Google Play nella colonna Play Store. Gli AVD con Google Play Store abilitato hanno una scheda Google Play nella finestra di dialogo Controlli estesi che fornisce un comodo pulsante per aggiornare Google Play Services sul dispositivo.
Istantanee
Ora puoi caricare uno snapshot di avvio rapido senza riavviare l'emulatore. Per caricare uno snapshot, apri la finestra Controlli estesi nella pagina Impostazioni e fai clic sul pulsante Carica ora.
Abbiamo apportato molti miglioramenti al caricamento e al salvataggio degli snapshot per migliorare l'efficienza dell'utilizzo delle risorse e ridurre al minimo il tempo necessario per ogni operazione. Se i salvataggi continuano a richiedere tempi insolitamente lunghi, segnala un problema, fornendo dettagli su CPU, RAM e impostazioni di eventuali software antivirus / firewall/di sicurezza in esecuzione.
Rendering con Skia
Quando utilizzi immagini per l'API 27 o versioni successive, l'emulatore può eseguire il rendering dell'interfaccia utente Android con Skia, che può eseguire il rendering in modo più fluido ed efficiente.
Per il momento, l'utilizzo di Skia richiede l'attivazione esplicita.
Per attivare il rendering Skia, utilizza i seguenti comandi in adb shell:
su setprop debug.hwui.renderer skiagl stop start
Fotocamera
Su Windows, Android Emulator ora utilizza Media Foundation come backend della webcam, il che migliora notevolmente le prestazioni e la frequenza dei fotogrammi per l'acquisizione della webcam, fino a 720p 30 FPS.
Su Mac, ora puoi utilizzare webcam0 e webcam1 insieme.
Vari
L'opzione della riga di comando -phone-number-prefix
è stata modificata in
-phone-number [number]
, che consente di impostare il numero
di telefono completo.
Ora puoi utilizzare indirizzi SMS alfanumerici.
Correzioni
- La versione Linux di Android Emulator ora è creata utilizzando una moderna toolchain C++ Clang. Questa modifica risolve il problema di mancato avvio dell'emulatore a causa di errori di libGL e libstdc++.
- Sono state corrette diverse cause di arresti anomali e blocchi.
- Per evitare arresti anomali e blocchi causati da spazio libero sul disco insufficiente, l'emulatore ora verifica la presenza di spazio libero sul disco sufficiente all'avvio e non si avvia a meno che non siano disponibili almeno 2 GB.
- Risolto un problema che impediva il rendering di alcuni giochi Unity.
- Risolto il problema DNS che impediva all'emulatore di connettersi alla rete.
- È stato risolto un problema che impediva il funzionamento delle modifiche allo spazio di archiviazione interno allocato a un AVD tramite la finestra di dialogo Configurazione dispositivo virtuale.
- Risolto un problema relativo alla creazione e all'arresto improprio di molti processi adb.
- È stato risolto un problema che causava la mancata risposta dei pulsanti di rotazione e di altre parti dell'interfaccia utente a meno che non fosse aperta la finestra Controlli estesi.
- È stato risolto un problema che impediva il funzionamento del copia e incolla dall'host, a meno che la finestra di dialogo Controlli estesi non fosse stata aperta almeno una volta.
- Il rettangolo di ridimensionamento dell'emulatore senza cornice è stato aggiornato per seguire meglio il tema visivo dell'emulatore.
- Il telefono e gli SMS ora vengono disattivati correttamente quando la modalità aereo è attiva.
- È stato risolto un problema che causava la disattivazione delle funzionalità SMS e cellulare dopo il caricamento di uno snapshot.
- Non riceverai più messaggi di avviso falsi che dicono
“Unable to open... \pstore.bin. Permission denied.”
- Risolto un problema che impediva di riposizionare l'AVD su alcuni schermi Mac.
- Risolti i problemi relativi allo sfarfallio e alle schermate vuote sui MacBook Pro più recenti quando si eseguono AVD con skin Pixel 2 XL.
- Sono stati risolti i problemi relativi alle schermate vuote quando si passa alla modalità con zoom mentre è attivo un emulatore senza cornice.
- È stato risolto un problema che causava lo scorrimento fuori sincronizzazione della skin del dispositivo e dei contenuti dell'emulatore quando si aumentava lo zoom.
Se i blocchi o altri problemi di stabilità persistono, segnala un problema.
27.1.12 (marzo 2018)
Questo aggiornamento include correzioni per i seguenti problemi:
- La qualità dell'audio Bluetooth è peggiorata dopo l'avvio dell'emulatore. (Problema 37095756)
- Le posizioni inviate a un emulatore sono state inviate a tutti. (Problema 73450633)
- La posizione GPS impostata utilizzando la console è stata sostituita dai valori impostati utilizzando Controlli estesi > Posizione nella GUI. (Problema 73471760)
Se i blocchi o altri problemi di stabilità persistono, segnala un problema.
Con questo aggiornamento, un'immagine di sistema attuale e una versione di anteprima di Android Studio, puoi utilizzare Android Emulator per eseguire applicazioni di realtà aumentata create con ARCore. Per requisiti e istruzioni dettagliati, vedi Eseguire app AR in Android Emulator.
27.1.10 (febbraio 2018)
Risoluzione acquisizione fotocamera
Ora è possibile acquisire frame a 720p da una webcam collegata.
Per funzionare con le immagini di sistema Android 8.1 (livello API 27) e versioni successive, qualsiasi webcam collegata deve essere in grado di acquisire frame a 720p.
Correzioni
- Risolto un problema che a volte causava l'acquisizione di immagini distorte o completamente verdi dalla webcam.
- È stato risolto un problema che consentiva di visualizzare il seguente messaggio anche quando non si verificava alcun blocco effettivo: "emulator: ERROR: detected a hanging thread 'Qt event loop'. Nessuna risposta per 15.000 ms".
Se i blocchi o altri problemi di stabilità persistono, segnala un problema.
27.1.7 (febbraio 2018)
Finestra dell'emulatore senza bordi:
Per impostazione predefinita, gli emulatori con file skin del dispositivo ora vengono mostrati senza una cornice della finestra circostante. Per mostrare la cornice della finestra circostante, attiva Mostra cornice della finestra intorno al dispositivo nel riquadro Impostazioni della finestra Controlli estesi.
Miglioramenti di Quick Boot per rendere più efficiente il lavoro con gli snapshot AVD:
- Puoi salvare uno snapshot dell'AVD in qualsiasi momento utilizzando il pulsante Salva ora nel riquadro Impostazioni della finestra di dialogo Controlli estesi.
- L'emulatore riduce il tempo necessario per salvare uno snapshot in molti casi salvando solo la differenza tra lo stato attuale e lo snapshot salvato in precedenza.
Per maggiori dettagli, consulta la documentazione relativa all'avvio rapido.
L'emulatore è stato aggiornato per utilizzare QEMU 2.9.
Alcuni miglioramenti degni di nota includono:
- I/O ottimizzato e blocco dei thread I/O più granulare per prestazioni migliori.
- Correzione dei bug da QEMU 2.8 (26.1.4).
- Nuova implementazione del backend HAXM.
Consulta l'elenco completo delle modifiche nel log delle modifiche di QEMU 2.9.
Implementazione di Swiftshader conforme a OpenGL ES 3.0:
Il renderer Swiftshader dell'emulatore ora è pienamente conforme a OpenGL ES 3.0. Per i dettagli del renderer Swiftshader, consulta la sezione Impostazioni > Avanzate di Controlli estesi.
Correzioni
- È stato risolto un problema per cui la condivisione degli appunti non funzionava a meno che l'opzione Attiva la condivisione degli appunti non fosse disattivata e riattivata.
- È stato risolto un blocco quando si utilizzava il backend di rendering SwiftShader con AVD a bassa risoluzione.
27.0.5 (gennaio 2018)
ANGLE per il rendering su Windows è ora disattivato per impostazione predefinita.
Se ANGLE funziona meglio per te, puoi riattivarlo con il flag della riga di comando
-gpu angle_indirect
. In alternativa, apri la finestra Controlli estesi, vai a Impostazioni > Avanzate e seleziona ANGLE D3D11 per l'impostazione del renderer OpenGL ES.Risolto un problema per cui Maiusc+B non digitava il carattere B maiuscolo.
27.0.2 (dicembre 2017)
La nuova funzionalità Avvio rapido offre tempi di avvio dell'emulatore più rapidi, in base a uno snapshot dell'istanza AVD.
L'avvio rapido è attivato per impostazione predefinita per tutti gli AVD. Anche se la prima volta che avvii un AVD deve eseguire un riavvio a freddo (come l'accensione di un dispositivo), tutti gli avvii successivi sono rapidi e il sistema viene ripristinato allo stato in cui hai chiuso l'emulatore (come il risveglio di un dispositivo).
Se vuoi controllare quando l'emulatore salva uno snapshot, apri la finestra dei controlli estesi dell'emulatore e fai clic su Impostazioni. Qui puoi selezionare una delle seguenti impostazioni per Salva stato avvio rapido all'uscita:
- Sì: salva sempre l'istantanea dell'avvio rapido quando chiudi l'emulatore. Questa è l'impostazione predefinita.
- No: non salvare mai lo snapshot di avvio rapido; esegui sempre un riavvio a freddo.
- Chiedi: chiede se salvare o meno lo snapshot di avvio rapido quando chiudi l'emulatore.
La selezione si applica solo all'AVD attualmente aperto.
Per saperne di più, consulta la documentazione di Quick Boot.
Aggiunto il supporto di Mac OpenGL ES 3 (per le immagini di sistema che utilizzano il livello API 24 e versioni successive, le API di Google e l'ABI x86).
Per una maggiore stabilità nelle app OpenGL ES 2+, l'emulatore ora utilizza il profilo OpenGL Core, se disponibile.
Nuove opzioni per il rendering con Swiftshader / ANGLE:
-gpu swiftshader_indirect
: Variante più veloce e stabile di Swiftshader che funziona con l'avvio rapido.-gpu angle_indirect
(solo Windows): variante più stabile di ANGLE D3D che funziona anche con Quick Boot.
Le opzioni
-gpu swiftshader
e-gpu angle
precedenti sono ora obsolete. Nella finestra Controlli estesi, le opzioni "SwiftShader" e "ANGLE" per l'impostazione del renderer OpenGL ES in Impostazioni > Avanzate ora utilizzano le varianti*_indirect
.Varie altre correzioni di bug.
26.1.4 (agosto 2017)
Questa è una release secondaria con correzioni di bug e i seguenti miglioramenti alla configurazione della GPU:
- Attiva l'animazione di avvio quando viene eseguito il rendering ANGLE
- Disabilita GLES3 durante l'esecuzione sul renderer ANGLE
26.1.3 (agosto 2017)
Si tratta di una release secondaria con correzioni di bug, miglioramenti delle prestazioni e piccole modifiche alle funzionalità.
- Questa versione è ora necessaria per utilizzare le immagini di sistema Android 8.0 più recenti.
Sono conformi a Treble e dispongono di partizioni
vendor.img
separate. - La nuova versione 6.2.0 di HAXM è ora disponibile (controlla SDK Manager) e include i
seguenti aggiornamenti:
- Migliore utilizzo della memoria. Il working set di picco della memoria bloccata da HAXM non è più uguale alle dimensioni della RAM dell'AVD. Al contrario, la memoria viene paginata su richiesta. In questo modo, l'emulatore dovrebbe funzionare in modo più affidabile su macchine con quantità di RAM inferiori.
- L'emulatore con HAXM 6.2.0 ora può avviarsi più velocemente su macOS, saltando una lunga fase di inizializzazione.
- Miglioramenti alla configurazione della GPU
- Sono stati risolti i problemi relativi alla schermata nera all'avvio durante il rendering software lato ospite mediante il fallback al rendering software lato host con Swiftshader. Le revisioni più recenti delle immagini di sistema per i livelli API 19-25 con le API di Google dovrebbero avere il rendering lato ospite funzionante.
- Risolto un problema per cui l'emulatore veniva passato a un renderer software
a causa del rilevamento della presenza di GPU Intel meno recenti, ma l'emulatore
veniva eseguito su una GPU discreta. Le GPU che verranno utilizzate per il rendering ANGLE
o Swiftshader sono determinate come segue:
- Le iGPU Intel meno recenti presentano problemi di driver sia su OpenGL che su ANGLE D3D. Gli utenti con schede grafiche Intel HD Graphics 3xxx e precedenti utilizzeranno Swiftshader.
- Alcuni utenti hanno segnalato l'impossibilità di utilizzare immagini di livello API 25 a causa di un bug per cui "Pixel Launcher continua a bloccarsi". Sembra che si tratti di un problema di driver in alcuni modelli Intel HD 4xxx. Pertanto, passeranno automaticamente all'utilizzo di ANGLE.
- Per ottenere risultati ottimali con l'emulazione della GPU, ti consigliamo di utilizzare una GPU NVIDIA o AMD discreta oppure una GPU Intel più recente (Iris, HD 5xxx, HD 5xx/6xx).
- Risolto un problema per cui l'emulatore non veniva avviato (inizializzazione dell'emulazione OpenGL
non riuscita) se l'AVD era configurato con
hw.gpu.mode=host
e l'emulatore veniva avviato in un client di desktop remoto. - Sono state chiarite le impostazioni "Livello API OpenGL ES (richiede il riavvio)"; è stata aggiunta un'opzione per eseguire il downgrade da OpenGL ES 3 a OpenGL ES 2 in caso di problemi o se è necessario eseguire test su livelli API OpenGL ES inferiori.
- Il renderer Mesa è deprecato;
hw.gpu.mode=mesa
ora verrà automaticamente impostato per utilizzare SwiftShader sull'host.
- Miglioramenti per macOS:
- L'emulatore è ora completamente compatibile con macOS 10.13 High Sierra tramite Hypervisor.Framework o HAXM 6.2.0.
- Hypervisor.framework è ora attivato per impostazione predefinita su macOS per le immagini x86 a 32 bit
per migliorare le prestazioni e la compatibilità con macOS. Se riscontri
problemi specifici, invia una segnalazione di bug e aggiungi
HVF = off
a~/.android/advancedFeatures.ini
(crea questo file se non esiste). - Sono stati risolti i problemi relativi all'assenza di internet / all'impossibilità di collegare il debugger durante l'utilizzo di Hypervisor.framework.
- Per migliorare la compatibilità e le prestazioni dell'acquisizione della webcam, l'acquisizione della videocamera basata su QTKit è stata sostituita da una basata su AVFoundation.
- Aggiunto il supporto per il Wi-Fi in alcune immagini di sistema (attualmente solo il livello API 25).
È disponibile un punto di accesso chiamato "AndroidWifi" e Android si connette automaticamente. Il supporto Wi-Fi può essere disattivato eseguendo l'emulatore con il
parametro della riga di comando
-feature -Wifi
. - Alcuni utenti hanno espresso la preoccupazione che le immagini di sistema del Play Store di dimensioni fisse non avessero spazio di archiviazione sufficiente. Pertanto, abbiamo aumentato le dimensioni a 2 GB per impostazione predefinita (rispetto agli 800 MB precedenti).
- È stata aggiunta una scorciatoia da tastiera (Ctrl+Maiusc+U) per aprire la pagina dell'interfaccia utente per la segnalazione di bug direttamente dalla pagina delle impostazioni.
- Risolto un problema per cui, se veniva utilizzata una CPU meno recente con Intel x86 EPT ma senza UG, l'emulatore non veniva avviato se erano configurati più core.
- Risolto un problema per cui HyperV veniva rilevato in modo errato se l'emulatore veniva eseguito in un hypervisor Xen.
- Risolto un problema per cui l'emulatore si arrestava all'avvio in alcune configurazioni Linux.
26.1.2 (luglio 2017)
Questa release include nuove funzionalità e miglioramenti delle prestazioni.
È stata aggiunta la possibilità di definire una configurazione proxy HTTP personalizzata nei controlli estesi (fai clic su Altro
, poi su Impostazioni e Proxy). Per impostazione predefinita, l'emulatore utilizza le impostazioni proxy HTTP di Android Studio, ma questa schermata ti consente di definire una configurazione proxy manuale.
Aggiunto il supporto VNC per la GPU in modalità ospite, in modo che l'emulatore possa essere visualizzato e controllato da remoto. Ad esempio, puoi avviare l'emulatore e fare in modo che VNC ascolti la porta 5901 nel seguente modo:
- Esegui:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
Apri un visualizzatore VNC, ad esempio tightvnc viewer, per connetterti alla porta 5901.
Per utilizzare il client di condivisione dello schermo integrato di Mac, è necessaria una password VNC all'avvio dell'emulatore. Per impostare una password, usa questo comando:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio
Quindi, inserisci
change vnc password
nella console e una password.
Android O non è attualmente supportato per la modalità VNC.
- Esegui:
È stato aggiunto un pulsante Segnala un bug nella schermata della Guida dei controlli estesi (fai clic su Altro
, poi su Guida e Guida dell'emulatore). Se fai clic su Segnala un bug, si apre una finestra di dialogo in cui puoi visualizzare i dettagli della segnalazione di bug, ad esempio lo screenshot, le informazioni di configurazione dell'AVD e un log della segnalazione di bug. Puoi quindi salvare il report per te o segnalare problemi dell'emulatore.
Aggiunta del sensore giroscopio al pannello dell'emulatore e dei sensori virtuali. Per funzionare, è necessaria un'immagine di sistema con supporto del giroscopio (attualmente livello API 24 e 25).
È stato aggiunto il DNS preferito dall'host all'elenco DNS di Qemu su Windows, quando più interfacce di rete virtuali sull'host introducono più indirizzi DNS che non sono funzionali per l'emulatore.
Aggiunto il supporto sperimentale di macOS Hypervisor.Framework per immagini x86 a 32 bit su macOS 10.10+ tramite flag del server, il che dovrebbe migliorare il tempo di avvio e le prestazioni.
- Se riscontri problemi, aggiungi la riga
HVF = off
in~/.android/advancedFeatures.ini
.
- Se riscontri problemi, aggiungi la riga
OpenGL ES 3.x ora è abilitato per impostazione predefinita per le immagini di sistema e le GPU host che supportano OpenGL ES 3. Al momento, solo Android O (livello API 26) e gli host Windows/Linux supportano OpenGL ES 3.
- Se riscontri problemi con OpenGL ES 3, aggiungi la riga
GLESDynamicVersion = off
in~/.android/advancedFeatures.ini
.
- Se riscontri problemi con OpenGL ES 3, aggiungi la riga
L'emulatore ora utilizza FBO OpenGL off-screen per tutto il rendering, ad eccezione della pubblicazione dell'immagine di visualizzazione finale, il che dovrebbe contribuire a risolvere i problemi di coerenza del colore tra le piattaforme.
Dopo aver raccolto dati sui problemi di rallentamento improvviso dell'emulatore, abbiamo stabilito che il problema potrebbe essere dovuto a un'interazione tra driver OpenGL Intel meno recenti e aggiornamenti di Windows. Pertanto, il rendering degli utenti con Intel HD 4000, 3000, 2000 (e GPU correlate) è ora impostato per impostazione predefinita su un renderer D3D (ANGLE) o Swiftshader (renderer software).
26.0.0 (marzo 2017)
Questa release è compatibile con il livello API 26. Include anche una serie di miglioramenti delle prestazioni e correzioni di bug.
Revisione secondaria 26.0.3 (maggio 2017)
- Aggiunge flag delle funzionalità aggiornabili online per risolvere rapidamente i problemi derivanti da configurazioni hardware problematiche. In questo modo Google può implementare correzioni e funzionalità che dipendono dalle configurazioni utente aggiornando i flag lato server. Se noti problemi con hardware specifici, segnala un bug in modo che possiamo esaminare il problema.
- Nuovo supporto per l'input rotativo per le immagini di sistema del livello API 25 di Android Wear. Per emulare il quadrante di input rotativo su un dispositivo Wear, fai clic sulla scheda Input rotativo nella finestra estesa.
- La finestra di dialogo Segnalazione arresti anomali ora è ridimensionabile e non reimposta più Quando inviare le segnalazioni di arresto anomalo su Chiedi senza input.
- L'emulatore a 32 bit ora richiede che le dimensioni massime della RAM dell'AVD siano inferiori o uguali a 512 MB, per evitare che l'emulatore esaurisca lo spazio nello spazio di indirizzi virtuale di 2 GB.
- Aggiunge il supporto per i percorsi assoluti nelle immagini dell'emulatore.
- Aggiunge una nuova scheda nella finestra estesa per le immagini del Google Play Store che mostra la versione di Play Services e un pulsante per verificare la disponibilità di aggiornamenti di Play Services.
- Aggiunge un menu a discesa per selezionare il renderer OpenGL nella pagina Impostazioni emulatore. Se riscontri problemi con il driver OpenGL su un computer Windows, prova a utilizzare le opzioni ANGLE (D3D11) o ANGLE (D3D9) (è necessario un riavvio). Se riscontri problemi con il driver OpenGL su un computer non Windows, prova a utilizzare il renderer software Swiftshader (richiede un riavvio).
- Corregge un raro arresto anomalo all'uscita quando l'emulatore riceve i comandi
exit
eminimize
. - Corregge un problema di scalabilità quando si cambiano i display su un computer Mac. (Problema 268296)
- Corregge un problema per cui l'emulatore occupa il 300% della CPU e la mantiene dopo la riattivazione del computer host dalla modalità sospensione o quando l'emulatore è in esecuzione da molto tempo.
- Corregge un arresto anomalo durante l'arresto dell'emulatore.
Aggiornamenti con HAXM v6.1.1 (marzo 2017)
Nota:HAXM v6.1.1 è disponibile per gli utenti Mac tramite SDK Manager a partire dal 30 marzo e sarà disponibile a breve per gli utenti Windows.
La versione 26.0.0 di Android Emulator supporta HAXM v6.1.1, che include i seguenti aggiornamenti:
- Consente l'emulazione delle unità di monitoraggio delle prestazioni (PMU). (Problema 223377)
- Correzioni della coesistenza con VirtualBox e Docker sui Mac. (Problema 197915)
- Modifica il messaggio di errore di installazione visualizzato quando il programma di installazione non rileva Intel VT-x su Windows, in genere perché Hyper-V è abilitato.
- Aggiunge il supporto per l'accelerazione dell'emulatore Android in una VM Windows basata su Hyper-V. Questo aggiornamento richiede che l'istanza Hyper-V host (quella che gestisce la VM/guest Windows) utilizzi l'ultima versione di Hyper-V con la virtualizzazione nidificata attivata. Hyper-V deve essere disattivato nell'istanza Hyper-V guest (la VM Windows).
Dipendenze
- Android SDK Platform-Tools revisione 25.0.4 o successive.
- Strumenti SDK Android revisione 26.0.0 o successive.
Nuove funzionalità e correzioni di bug
- Compatibile con il livello API 26.
- Completamente conforme a GLES 2.0. Se viene fornita una GPU host con driver OpenGL per desktop conformi, l'emulatore ora supera il 100% dell'elenco
mustpass
dEQP-GLES2 di Android CTS. Questa funzionalità è stata rilasciata per le immagini x86 del livello API 24 (revisione 11 e successive) e verrà presto inclusa in tutte le immagini di sistema. - Prestazioni di riproduzione video migliorate. L'emulatore ora archivia tutti i buffer di colore video nella memoria condivisa host/guest ed esegue la conversione YUV in RGB finale necessaria nella GPU. 1080p30 dovrebbe essere alla portata della maggior parte dei sistemi attuali. Questa funzionalità è stata rilasciata per le immagini x86 del livello API 24 (revisione 11 e successive) e verrà presto inclusa in tutte le immagini di sistema.
- L'emulatore ora si annulla correttamente dalla lista
adb devices
all'uscita e chiude le porte TCP aperte sulle macchine Linux. - Le connessioni adb ora sono più affidabili. Un emulatore in esecuzione viene rilevato più velocemente e non passa più allo stato "offline" o "non autorizzato".
25.3.0 (marzo 2017)
A partire da questa release, l'emulatore Android verrà rilasciato separatamente dagli strumenti SDK. Questa release contiene una serie di miglioramenti delle prestazioni, nuove funzionalità e correzioni di bug.
Revisione secondaria 25.3.1 (marzo 2017)
- Risolto un arresto anomalo che si verificava in alcune configurazioni GPU disattivando GLAsyncSwap per impostazione predefinita.
Questa funzionalità è stata aggiunta nella versione 25.3.0 per migliorare la sincronizzazione dei frame e i frame al secondo per giochi
e video, ma causa l'errore dell'emulatore in alcune configurazioni di macchine sconosciute. Puoi
attivarla manualmente aprendo il
file
android_sdk/emulator/lib/advancedFeatures.ini
e impostandoGLAsyncSwap = on
.
Dipendenze
- Revisione 24 o successive di Android SDK Platform-Tools.
- Revisione 25.3.0 degli strumenti SDK Android.
Nuove funzionalità e correzioni di bug
- Motore di emulazione aggiornato a QEMU 2.7, incluse tutte le recenti correzioni di bug, prestazioni migliorate e nuove funzionalità.
- Nuovo supporto IPv6.
- L'emulatore ora utilizza SwiftShader come renderer software puro sull'host.
- Miglioramenti delle prestazioni di Android Pipe: Android Pipe, il canale di comunicazione principale tra l'emulatore e il sistema operativo Android, ora è un ordine di grandezza più veloce, ha una latenza inferiore e offre prestazioni multithread migliori. Ciò comporta una serie di miglioramenti
delle prestazioni dell'emulatore, tra cui:
- Velocità di push/pull ADB migliorata.
- Supporto migliore dell'accelerazione 3D.
- Maggiore reattività complessiva dell'emulatore.
- Prestazioni grafiche migliorate.
- L'emulatore ora utilizza buffer lato GPU (glBindBuffers/glBufferData) quando l'ospite li richiede, riducendo il sovraccarico della CPU in alcune app.
- Supporto audio migliorato.
- I/O del disco più veloce: l'emulatore ora utilizza thread separati per inviare l'I/O del disco, con conseguente latenza inferiore e velocità effettiva migliore (velocità di I/O sequenziale circa 1,5 volte superiore, velocità di I/O ad accesso casuale circa 5 volte superiore). In questo modo viene ridotto anche il numero di scaricamenti su disco, con conseguente carico molto inferiore sul dispositivo fisico.
- L'emulatore ora utilizza file sparsi per gli avvii del disco sulle macchine Windows, velocizzando sia il primo avvio sia gli avvii "wipe-data". Quando crei o reimposti un AVD, l'emulatore ora scrive 100-200 MB di dati su disco, anziché 2 GB o più.
- Vari miglioramenti della GUI:
- L'emulatore ora utilizza Qt 5.7.0, che include correzioni di bug e miglioramenti delle prestazioni.
- L'inizializzazione della UI non tenta più di caricare tutti gli eseguibili dell'emulatore come plug-in Qt, quindi è molto più breve, soprattutto sugli HDD.
- Le interazioni con la UI ora sono più veloci e fluide, tra cui rotazione, ridimensionamento della finestra e caricamento e chiusura della finestra dei controlli estesi.
OpenXR™ e il logo OpenXR sono marchi di proprietà di The Khronos Group Inc. e sono registrati come marchi in Cina, nell'Unione Europea, in Giappone e nel Regno Unito.