Note di rilascio dell'emulatore

Android Emulator è incluso in Android Studio.

Le versioni dell'emulatore precedenti alla 25.3.0 sono state distribuite nell'ambito degli Strumenti SDK Android.

Per assicurarti di avere la versione più recente, controlla se sono presenti aggiornamenti in SDK Manager.

Per scaricare le versioni precedenti di Android Emulator, consulta l'archivio dei download dell'emulatore.

Per le note di rilascio delle versioni dell'emulatore precedenti alla 25.3.0, consulta le note di rilascio di Android SDK Tools.

Per problemi noti e risoluzione dei problemi, consulta la sezione Risoluzione dei problemi dell'emulatore.

35.4.4 Canary (12 dicembre 2024)

Nuovo emulatore Android XR

Abbiamo aggiunto un nuovo emulatore Android XR sperimentale per lo sviluppo e il test di app create con l'SDK Jetpack XR per i visori. Consulta questa guida per informazioni sull'installazione dell'emulatore Android XR e sulla configurazione dell'ambiente di sviluppo.

L'emulatore Android XR è uno strumento sperimentale. Tuttavia, abbiamo deciso di condividere questa novità in anteprima per consentirti di effettuare i test in anticipo. Prevedi problemi, in particolare su alcune configurazioni di driver e GPU Windows. Potrebbero verificarsi problemi anche in relazione ai test di compatibilità delle app mobile 2D esistenti. Il tuo feedback ci aiuterà a migliorare e a stabilire le 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 critici del sistema durante l'avvio o l'esecuzione di applicazioni. Assicurati che Windows Hypervisor Platform (WHPX) sia attivata seguendo la Guida per gli sviluppatori di Android Studio per attivare WHPX.
  • Problemi come elementi AVD o UI non responsivi sui laptop dopo un ciclo di sospensione e ripresa (ad esempio la chiusura e l'apertura di un laptop).
  • Arresti anomali occasionali quando si passa da "modalità schermata Home" a "modalità a schermo intero"
  • Le API Gemini non sono ancora disponibili; l'app del modello iniziale dell'API Gemini si arresterà in modo anomalo.

Emulatore - Simulazione di input e output:

  • La tastiera virtuale per i campi di ricerca e modifica potrebbe essere visibile solo parzialmente nel campo visivo
  • Non è possibile spostare gli elementi nella direzione z (dentro e fuori dallo schermo) utilizzando il mouse e la tastiera

  • L'instabilità dell'input audio dell'host del microfono AVD può causare riavvii e arresti anomali dell'AVD.

  • A volte l'audio è distorto o presenta interferenze.

  • 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. (Un riavvio dell'emulatore lo ripristinerà).

  • La connessione di rete si interrompe quando la macchina host cambia rete Wi-Fi.

  • Con Bloc Maiusc attivo, le lettere minuscole vengono comunque digitate.

  • Lo scorrimento con il trackpad su Mac non è fluido.

  • Lo scorrimento tramite clic e trascinamento su alcuni elementi dell'interfaccia utente potrebbe non funzionare per impostazione predefinita. In caso contrario, utilizza la rotellina del mouse per scorrere.

  • Testo sfocato, interfaccia utente e altri glitch in Chrome su alcune configurazioni di sistema Windows. Probabile soluzione: attivazione del WHP.

Emulatore: simulazione di aerei e ancore:

  • A volte le ancore non respawnano vicino alla stessa posizione
  • I riquadri mobili potrebbero non essere ancorati alle pareti o al soffitto
  • I piani simulati non corrispondono al layout fisico della stanza 3D in modalità passthrough
  • Aree limitate complessive per ancorare gli oggetti nella stanza virtuale
  • Piccolo artefatto visibile nella visualizzazione passthrough su Windows
  • In alcuni casi, l'inserimento di ancore può causare l'arresto anomalo dell'app
  • Quando si spostano le app vicino al suolo su Windows, potrebbero apparire linee nere sopra le app

Emulatore - Altro:

  • L'emulatore si avvia solo in modalità "autonoma". La modalità "Incorporata" (interfaccia utente incorporata) non è ancora supportata.
  • L'accesso con gli account sull'emulatore su Windows potrebbe causare il blocco dell'emulatore
  • I contenuti dell'interfaccia utente delle finestre potrebbero scomparire dopo il ridimensionamento (soluzione alternativa: premere il pulsante "Home")
  • Nell'app JXRCore ActivityPanelTest il riquadro secondario non viene visualizzato inizialmente
  • Gli elementi delle Impostazioni rapide potrebbero scomparire dalle impostazioni di sistema dopo un periodo di tempo prolungato.
  • L'interfaccia utente dell'emulatore potrebbe inizialmente apparire al di fuori della regione dello schermo. In questo caso, regola leggermente le dimensioni della finestra dell'emulatore e dovrebbe tornare a posto.
  • L'emulatore potrebbe non avviarsi quando utilizzi Chrome Remote Desktop su Windows
  • Finora Open XR non è supportato nell'emulatore e le app Open XR potrebbero causare un arresto anomalo dell'emulatore
  • Errori rari durante il tentativo di inviare segnalazioni di bug tramite le impostazioni estese di Android Studio su Windows
  • L'icona "Torna indietro" non è visibile correttamente nell'app Impostazioni finché il cursore non passa vicino su Mac
  • In alcuni casi, la compilazione potrebbe generare errori quando si utilizza il modulo "Profilo di riferimento" all'interno di un progetto di modello XR
  • Finora l'accessibilità di "XR Talkback" è stata integrata solo parzialmente nell'emulatore

App Scene Viewer:

  • Lo spostamento degli elementi all'interno di Scene Viewer potrebbe causare un arresto anomalo. Per risolvere il problema, allontana leggermente la posizione della testa dalla posizione iniziale (ad esempio utilizzando la panoramica, la dolly, i tasti WASD e così via) prima di tentare di spostare l'elemento.
  • La funzionalità di 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 al 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
  • È stata aggiunta una nuova immagine di sistema per tablet per Vanilla Ice Cream (API 35)

35.1.20 (29 agosto 2024)

  • È stato aggiunto l'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 di arresti anomali e blocchi su Windows con applicazioni che utilizzano Vulkan

34.2.16 (9 luglio 2024)

  • [Correzione di bug] Blocchi dell'interfaccia utente che si verificano su Pixel Fold durante l'apertura/la chiusura
  • [Correzione di bug] Visualizzazione errata della versione di Android come Android Vanilla Ice Cream Preview anziché API 35 su Mac M1.
  • [Correzione di bug] Issue #296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE restituisce true sull'emulatore del tablet Pixel C

34.2.15 (31 maggio 2024)

  • Varie correzioni di arresti anomali relativi alla modalità swangle e alla pulizia degli inserzionisti

34.2.14 (20 maggio 2024)

Testato con la patch 1 della versione stabile di Android Studio Jellyfish.

  • [Correzione di bug] A volte lo snapshot si blocca nell'emulatore incorporato
  • [Correzione di bug] I pulsanti "No" e "Annulla" non funzionano correttamente nello snapshot
  • [Correzione di bug] I pulsanti del pad direzionale non funzionano
  • [Correzione di bug] È stato risolto il problema riscontrato su Windows che impediva l'avvio dell'emulatore in alcune condizioni quando si utilizzano le modalità GPU con ANGLE e restituiva il messaggio di errore "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 di bug] La scorciatoia per la posizione sulla tastiera carica una mappa inutilizzabile
  • [Correzione di bug] Durante l'impostazione della posizione, la finestra di dialogo "Salva percorso" non è presente

34.2.13 (30 aprile 2024)

Testato con Android Studio Jellyfish Stable.

  • Aggiornamento a Qt 6.5.3
  • La compatibilità con gli aggiornamenti dell'API di Google Maps utilizzata nelle funzionalità di geolocalizzazione nei controlli estesi dell'emulatore, che avverrà a fine maggio.
  • Correzioni di arresti anomali di alto impatto
  • Varie correzioni agli AVD Pixel
  • Aggiornare la libreria grafica utilizzata per il rendering software
  • [Correzione bug]Issue 225541819 Avvio di Chrome causa arresti anomali dell'emulatore su x86_64
  • [Correzione di bug]Issue 314614435 L'opzione -http-proxy viene analizzata in modo errato

34.1.20 (1° aprile 2024)

Testato con Android Studio Iguana Stable.

  • [Correzione di bug] Issue #314614435: correzione del problema relativo all'analisi non corretta dell'opzione -http-proxy

34.1.19 (7 marzo 2024)

Testato con Android Studio Iguana Stable.

  • [Correzione di bug] Issue #312677259: è stato corretto il blocco dello schermo nell'emulatore incorporato dopo il ridimensionamento della finestra.

34.1.18 (29 febbraio 2024)

Testato con Android Studio Iguana Stable.

  • All'emulatore sono stati aggiunti i seguenti dispositivi:
    • 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 che consentono di testare scenari realistici. Questa funzionalità consente agli sviluppatori di interagire in sicurezza con l'endpoint gRPC ospitato dall'emulatore Android dai test di strumentazione Android.
  • Varie correzioni di bug
    • Correzione di bug: miglioramenti all'usabilità dei dispositivi pieghevoli
    • Correzione di bug: regola la posizione dell'emulatore dopo la rotazione
    • Correzioni di arresti anomali

33.1.24 (28 dicembre 2023)

Testato con Android Studio Hedgehog Stable e Iguana Beta 1.

  • È stato risolto il problema relativo alla webcam dell'emulatore che non consente la registrazione dello schermo in formato mp4.
  • Correzione dell'arresto anomalo dell'emulatore nell'AVD Pixel Fold quando è aperto durante una registrazione dello schermo.
  • Risolto il problema per cui Pixel Fold mostra una cover 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 corrette alcune 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'API 34 più recente
  • Aggiornamento del backend della grafica: abbiamo implementato il protocollo gfxstream per il nostro backend della grafica. Questo miglioramento migliora le prestazioni e la stabilità complessive della grafica del sistema. Inoltre, viene introdotto il supporto di Vulkan 1.3 a partire dall'immagine di sistema con API 34
  • Richiesta di funzionalità: opzione per disattivare il gesto pizzica per aumentare lo zoom o per riassegnare la relativa hotkey
  • [Correzione di bug] Issue #302562962 Correzione dell'arresto anomalo della webcam dell'emulatore quando si utilizza macOS Sonoma
  • [Correzione di bug] Issue #293503871 Risolto il problema per cui l'impostazione "Microfono" non viene salvata quando l'emulatore viene riavviato
  • [Correzione di bug] Issue #270386314 Correzione dell'errore di animazione per cui la barra laterale rimane aperta dopo la minimizzazione della schermata dell'AVD
  • [Correzione di bug] Issue #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.

  • Soddisfare i requisiti hardware GAS per i sensori nell'emulatore AAE
  • [Correzione di bug] Issue #266201208 L'SMS in ebraico non viene inviato con l'API 33
  • [Correzione di bug] Issue #257097404 L'emulatore non mostra l'ora corretta dopo il risveglio dell'host sulle API 29 e 30
  • [Correzione bug] Issue #228201899 Impossibile vedere Google Maps all'interno dei controlli estesi dell'emulatore Android

32.1.14 (27 giugno 2023)

Testato con Android Studio Hedgehog Canary 8, Giraffe Beta 5 e Flamingo Stable.

  • Correggi gli orientamenti e le distorsioni della fotocamera dell'emulatore.
  • [Correzione di bug] Issue #257097404 "L'emulatore non mostra l'ora corretta dopo il risveglio dell'host". Questo bug è ancora riproducibile per le API 29 e 30.
  • [Correzione di bug] Issue #243456582 "Le release di Android successive all'API 30 potrebbero non avviarsi correttamente nell'emulatore su Mac M1"

32.1.13 (22 maggio 2023)

Testato con Android Studio Hedgehog Canary 2, Giraffe Beta 1 e Flamingo Stable.

  • Aggiunta del supporto per gli AVD di Pixel Fold e Pixel Tablet.
  • Migliorare il problema di arresto anomalo di gLinux.
  • [Correzione di bug] Issue #215231636 "Emulator with API above API 30 not working in Intel 12th gen processor".
  • [Correzione di bug] Issue #275397905 Alto livello di arresti anomali su Android Emulator M1 quando si sposta ripetutamente il cursore all'interno e all'esterno dell'emulatore.
  • Problema noto con il lancio dell'AVD Issue #281725854. Per ulteriori informazioni, consulta la sezione Risoluzione dei problemi relativi all'emulatore.

32.1.12 (21 marzo 2023)

Testato con Android Studio Giraffe Canary 10, Flamingo RC ed Electric Eel Patch 2.

  • [Correzione di bug] Issue #267647323 La rete non funziona nell'emulatore avviato da Android Studio
  • [Correzione di bug] Problema 268498686 Lo schermo dell'emulatore sfarfalla
  • [Correzione di bug] Problema 270034824 Prestazioni dell'emulatore peggiorate dopo l'aggiornamento alla versione 33.1.1
  • [Correzione di bug] Issue #225541819 L'avvio di Chrome causa l'arresto anomalo dell'emulatore su x86_64
  • [Correzione di bug] Issue #257097404 L'emulatore non mostra l'ora corretta dopo il risveglio dell'host
  • Aggiunta la segnalazione degli arresti anomali per i dispositivi Apple M1

32.1.11 (8 febbraio 2023)

Testato con Android Studio Giraffe Canary 2, Flamingo Beta 1 ed Electric Eel Patch 1.

  • Ottimizzazioni della velocità di rete
  • Supporto del mouse nell'emulatore incorporato
  • Miglioramenti a Virtio-snd
  • Disattivare l'utilizzo dei link simbolici durante lo scompattamento dell'emulatore Android durante l'installazione
  • Correggere 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 di bug] Risolto il problema degli arresti anomali dell'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.

31.3.12 (10 ottobre 2022)

Testato con Android Studio Dolphin ed Electric Eel Beta 1.

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • [Correzione di bug] Issue #247843000: AVD relative path handling error
  • 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'emulatore AVD incorporato nella finestra dei controlli avanzati
  • [Correzione di bug] Issue #183139207: Audio issues associated with Emulator activating microphone
  • [Correzione di bug] Problema 229764024: bug del tocco bloccato AVD che causa problemi di comportamento dell'interfaccia utente
  • [Correzione bug] Errore durante l'avvio dell'AVD API 33 su Mac M1.
  • [Correzione di bug] Problema 243053479: velocità di rete lenta dopo l'aggiornamento dell'emulatore
  • [Correzione di bug] Problema 244617627: posizione di Maps non funzionante su Windows e Linux
  • [Correzione di bug] Problema 232971796: pulsante "Chiama dispositivo" non funzionante nella pagina Controlli avanzati > Telefono
  • Aggiornare l'emulatore Android a minigbm
  • Migrazione degli script di compilazione a Python 3

31.3.10 (18 agosto 2022)

Testato con Android Studio Dolphin Beta 5 ed Electric Eel Canary 9.

Sono ora disponibili i download autonomi dell'emulatore. Se riscontri qualsiasi problema o arresto anomalo con questa ultima release stabile, segnala un bug e valuta la possibilità di scaricare una versione precedente funzionante dai 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 essere completato.
  • Design e impostazioni predefinite degli AVD pieghevoli aggiornati
  • Pulsanti dell'emulatore Wear aggiornati
  • Miglioramenti allo streaming audio gRPC
  • È stato 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:

  • Aggiungere un'utilità per caricare le funzioni Vulkan con i valori di riserva
  • [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 di bug] Ignorare 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 di bug] Issue #215368358: "adb reboot" sulla piattaforma Intel causerà l'arresto anomalo dell'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 sulle 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 i pulsanti Wear all'emulatore Wear OS.
  • È stato reso possibile modificare tutte le proprietà del veicolo nella scheda VHAL.
  • [Correzione bug] Con GmsCore 21.42.18 non è andata a buon fine l'autenticazione dell'Account Google.
  • [Correzione di bug] Netshaper non funzionava bene con VirtioWifi.
  • [Correzione di bug] Il comando della console del mouse dell'evento 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 regoli le dimensioni di una finestra su più display, l'orientamento viene ignorato.
  • Wi-Fi: è stato aggiunto il supporto per l'esclusione dei pacchetti unicast in base all'indirizzo MAC MAT.
  • Wi-Fi: è stato risolto un arresto anomalo quando vmnet è in uso.

30.9.5 (15 dicembre 2021)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • È stata aggiunta la possibilità di ridimensionare facilmente la finestra in base alle dimensioni di un computer o di un tablet.
  • È stato aggiunto il supporto dell'input multi-touch da dispositivi host compatibili.
  • VirtioWifi: è stato aggiunto il supporto per la rete tap.
  • È stato attivato l'input rotatorio per le immagini di sistema Wear.
  • È stato risolto il problema di configurazione dell'audio gRPC.
  • È stata aggiornata la riproduzione dell'emulatore SensorReplay per supportare i sensori Android standard.
  • L'emulatore è stato collegato a periferiche e dispositivi tramite USB con passthrough USB.

30.4.5 (23 febbraio 2021)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • macOS: sono stati risolti i problemi di distorsione dell'input audio.
  • È stato aggiunto il supporto di virtio-vsock nello spazio utente.
  • Le immagini di sistema future utilizzeranno virtio-console per i messaggi logcat e del kernel.
  • Accelera il rendering Vulkan.
  • È stato aggiunto il supporto per il debug degli snapshot in caso di errore di test.
  • virtio-gpu: definizioni aggiornate per supportare gli enum delle risorse blob più recenti.
  • È stato aggiunto il supporto degli snapshot per i trasferimenti di elementi grafici di tipo "asg".
  • macOS: è stato aggiunto il supporto per la compilazione con macOS SDK 11.1 e versioni successive.
  • KVMclock è abilitato per impostazione predefinita nelle immagini di sistema più recenti.
  • È stato aggiunto il supporto di un sensore per il battito cardiaco agli emulatori Wear.
  • È stato rimosso il backend Vulkan di libportability.
  • È stato aggiunto il supporto di altre funzionalità nel simulatore di modem.

30.0.26 (16 agosto 2020)

Questo aggiornamento include diverse nuove funzionalità, miglioramenti alle funzionalità esistenti e correzioni di bug.

Supporto dei dispositivi pieghevoli con sensore cerniera virtuale e visualizzazione 3D

  • È stato aggiunto il supporto per i sensori cerniera per i dispositivi pieghevoli. Ciò richiede un'immagine di sistema Android 11 futura e una configurazione AVD. I parametri della cerniera e della visualizzazione del pieghevole 3D ora sono integrati con i preset per i pieghevoli esistenti. I seguenti parametri possono essere utilizzati, 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
    
  • I dispositivi pieghevoli ora hanno anche un parametro di tipo secondario. La proprietà config.ini hw.sensor.hinge.sub_type = hinge/fold è ora disponibile. Per saperne di più, consulta il post del blog Sviluppo per Android 11 con l'emulatore Android.

  • Il sensore cerniera è ora attivo per impostazione predefinita.

  • Se è configurato un dispositivo pieghevole, ora l'emulatore invia all'ospite aggiornamenti dei sensori dell'angolo della cerniera e modifiche della postura. I dispositivi pieghevoli esistenti ora aggiorneranno l'angolo e la posizione 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 x86_64 ad arm64 in modo da poter eseguire immagini di sistema arm64 con la virtualizzazione KVM. Al momento, è supportato solo -gpu swiftshader_indirect (rendering dell'host Swiftshader arm64), ma è possibile utilizzare anche un insieme compatibile di librerie libEGL/libGLESv2 GPU host sostituendo lib64/gles_swiftshader e riavviare con -gpu swiftshader_indirect. Anche 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

  • È stato aggiunto il supporto lato host per le risorse di blob coerenti dell'host virtio-gpu future.
  • A causa del funzionamento del rendering dell'emulatore, ora elaboriamo la coda virtuale virtio-gpu nel thread vcpu (poiché il rendering viene comunque offloaded su altri thread). Il rendering virtio-gpu verrà attivato in una versione futura dell'immagine di sistema e dell'emulatore.
  • In una futura immagine di sistema, l'emulatore potrà eseguire tutte le immagini 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>. (dovrebbe anche essere già in funzione su Linux e macOS)
  • Librerie WebRTC aggiornate alla versione M83.
  • L'emulatore ora supporta lo streaming audio nei contenitori tramite WebRTC.
  • L'endpoint della pipeline darwinn è stato rimosso.
  • La decodifica CUDA VPx per i video è ora disponibile, se la decodifica CUDA VPx è disponibile in 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 puoi migliorare la precisione delle misurazioni del tempo da parte dell'ospite.
  • Ora nelle metriche viene monitorato il riquadro di controllo esteso selezionato dall'utente.
  • L'emulatore Linux ora utilizza il clock paravirtualizzato KVM quando la versione del kernel guest è >= 5.4 (immagini di sistema R o successive).
  • Ora l'emulatore 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 integrato in Studio e il percorso agli 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 risparmiare più facilmente spazio sullo schermo verticale, abbiamo aggiunto un'opzione per nascondere il riquadro del dispositivo per l'AVD corrente in Controlli avanzati > Impostazioni. Per nascondere globalmente i frame del dispositivo per tutti gli AVD, abbiamo reso disponibile il feature flag NoDeviceFrame, che può essere attivato avviando l'emulatore da riga di comando con il frame -feature NoDevice oppure per bloccarlo, aggiungendo NoDeviceFrame = on a ~/.android/advancedFeatures.ini (crea questo file se non esiste già).

  • È stato aggiunto un elemento a discesa nella pagina della rete mobile per attivare e disattivare il supporto della misurazione. Questa operazione non viene eseguita per le immagini di sistema meno recenti 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
  • Upgrade della toolchain / della compilazione a C++17.

Correzioni: emulatore incorporato

  • Ora la funzionalità Appunti dovrebbe funzionare.
  • È stato risolto il problema per cui i caratteri maiuscoli venivano visualizzati come 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 corruzione degli snapshot durante l'invio di comandi di snapshot tramite gRPC, nonché quando si preme il pulsante di salvataggio dello snapshot nell'emulatore integrato di Android Studio.
  • Quando utilizzi l'emulatore Linux incorporato in Studio, abbiamo riscontrato che se lo fai tramite Chrome Remote Desktop, esiste un bug per cui XDG_RUNTIME_DIR non è impostato e potrebbe causare la mancata visualizzazione dell'emulatore incorporato a causa della collocazione dei file di rilevamento dell'emulatore in XDG_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 possibly-different basata sull'UID utente: /run/user/&lt;uid>.

  • Emulatore integrato: i dispositivi con angoli arrotondati/notch ora modificano correttamente il layout per fare spazio agli angoli e al notch. Ciò richiede 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à con l'emulatore Windows con Riot Vanguard attivo. L'emulatore Windows ora rileva Vanguard Anti-Cheat e visualizza un messaggio di avviso se viene rilevato.
  • È stato corretto l'errore FD_SETSIZE su Windows. Ora utilizziamo WSAEventSelect() anziché select() per stabilire connessioni non bloccanti ai server loopback.
  • È stato aggiunto il supporto della funzionalità CPUID F16C all'emulatore Linux con la correzione dei problemi di esecuzione di alcune applicazioni ARM64 tramite la traduzione NDK; macOS/Windows in corso.
  • È stato corretto il problema di riproduzione dei percorsi gpx/kml in modo che seguano i timestamp.
  • È stata corretta l'icona che si muove all'avvio per macOS.
  • Se hw.audioInput=no e hw.audioOutput=no in config.ini, l'audio dell'emulatore è ora disabilitato correttamente.
  • È stato risolto un problema per cui, se la finestra dell'emulatore era ridotta a icona mentre la finestra dei controlli avanzati era aperta ma non attiva, la finestra dei controlli avanzati continuava a essere visualizzata quando si ridimensionava la finestra dell'emulatore. Rimuoveremo completamente il comportamento (la richiesta con la finestra dei controlli avanzati attivi) in un aggiornamento futuro.
  • È stato corretto un bug intermittente relativo alla mancata connessione alla rete Wi-Fi all'avvio dell'emulatore.
  • È stato corretto l'arresto anomalo all'uscita quando l'emulatore emette 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 l'interruzione quando viene utilizzata l'opzione -wifi-server-port.
  • Ora l'emulatore stampa un avviso se vengono passate opzioni non supportate a -prop (sono supportate solo le proprietà qemu.*).
  • Quando crei l'emulatore su Windows, è meno probabile che si verifichino errori intermittenti di scrittura nei file. Per ulteriori informazioni, consulta le istruzioni per la compilazione su Windows.
  • È stato disattivato il pulsante Zoom per gli AVD pieghevoli, che causava problemi.
  • Ora l'emulatore registra correttamente il tempo di avvio derivante da un riavvio del dispositivo.
  • Linux: se le autorizzazioni KVM non sono sufficienti, ora l'emulatore stampa le istruzioni di debug più rapidamente.
  • È stato risolto il problema per cui l'emulatore non riusciva ad avviare immagini di sistema recenti senza accelerazione.
  • È stato corretto un problema di corruzione della memoria o di arresto anomalo all'avvio da un rilevatore di completamento del boot.
  • È stata risolta la perdita di memoria durante le sessioni di registrazione dello schermo lunghe.
  • Le icone degli emulatori sono state aggiornate in base al branding di Studio 4.1.
  • È stato aggiunto un supporto migliore per il rilevamento delle sessioni remote su Windows.

Correzioni: decodifica video e grafica

  • È 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 gara durante lo smantellamento dello stato Vulkan al termine dell'esecuzione di un'app Vulkan ospite.
  • Gli shader di emulazione Vulkan ASTC/ETC2 sono ora incorporati nella libreria libOpenglRender. Questo sarà più affidabile rispetto alla lettura dal file system.
  • È stato risolto un problema in Vulkan per cui, se in esecuzione con un'istanza Vulkan 1.0 sull'host, vkGetImageMemoryRequirements2KHR cancellava in modo errato il campo pNext della struttura VkMemoryRequirements2 restituita.
  • È stata risolta una perdita di memoria nel Vulkan Renderer.
  • È stata corretta una recente 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 possibili errori di compilazione degli shader su Linux.
  • Ora facciamo arrestare in modo anomalo l'emulatore se non riesce a compilare lo shader di blit framebuffer di base, per tenere traccia del fenomeno.
  • Traduttore di shader ANGLE aggiornato per stare al passo con ANGLE a monte. È stato risolto un problema di corruzione della memoria durante la traduzione e la compilazione con costante degli shader OpenGL ES che utilizzavano matrici non quadrate. Il traduttore di shader ora è una libreria condivisa distinta, libshadertranslator.dll.
  • Risolto un problema di inizializzazione di Vulkan su alcuni driver GPU, in cui non sono state trovate determinate funzioni del dispositivo 1.1.
  • Vulkan: abbiamo ripristinato l'utilizzo del caricatore precompilato perché il caricatore Vulkan di sistema ha causato problemi in alcune configurazioni. Troveremo una soluzione migliore.
  • Risolto un problema relativo all'utilizzo della memoria esterna Vulkan, in cui è stato 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'enum non era supportato sull'host.
  • È stato risolto un problema per cui su alcune GPU host non era possibile compilare gli shader Skia a causa di errori correlati a GL_EXT_shader_framebuffer_fetch.
  • Poiché la nostra copia del renderer ANGLE D3D9 è stata rimossa alcune versioni fa, ora passiamo automaticamente gli utenti che utilizzavano questo renderer a ANGLE D3D11 se è stato selezionato nelle preferenze dell'interfaccia utente.
  • Sono state aggiunte ulteriori informazioni di debug all'inizializzazione WGL su Windows per tracciare gli errori.
  • Quando hw.gltransport=virtio-gpu-pipe, le prestazioni vengono migliorate evitando di eseguire il polling sull'host durante i trasferimenti dall'host all'ospite.
  • Sono stati aggiunti ulteriori log di debug per i casi in cui l'inizializzazione dell'emulazione OpenGLES non va a buon fine.
  • È stato risolto un problema relativo ai video di YouTube che tremolano o non vengono visualizzati al caricamento della foto istantanea.
  • 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 di decodifica hardware CUDA supportata 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 dei 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 tuo IDE e il flusso di lavoro dell'emulatore in un'unica finestra dell'applicazione.

Modalità finestra a forma libera

Ora puoi creare un AVD con la modalità finestra Freeform abilitata selezionando il profilo hardware del tablet Freeform da 13,5" 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

Al momento, il ridimensionamento delle finestre a forma libera non è disponibile a causa di problemi di trasferimento del fuoco al gestore delle finestre. Questo problema verrà risolto in una release futura dell'immagine di sistema Android 11.

30.0.0 (19 febbraio 2020)

Questo aggiornamento include immagini di sistema Android 11 (livello API 30) e un miglioramento delle prestazioni durante l'esecuzione di binari ARM.

Immagini di sistema Android 11

Ora puoi creare un AVD che esegue Android 11 selezionando una delle immagini di sistema con 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 nelle immagini di sistema Android 9 e 11

Se in precedenza non riuscivi a utilizzare l'emulatore Android perché la tua app dipendeva dai 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 file binari ARMv7 non riescono a essere eseguiti sulle immagini di sistema Android 11 x86 e x86_64. Valuta la possibilità di eseguire il build per ARM64 se scegli come target Android 11.

29.0.11 (29 maggio 2019)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • Windows: ora l'emulatore si basa sulla DLL libgcc che forniamo anziché essere compilato con libgcc in modo statico.
  • Linux: è stato aggiunto il supporto di logcat all'API gRPC. Per ulteriori informazioni su gRPC, consulta Emulatore di streaming gRPC (Linux).
  • L'emulatore ora include una build headless per gli ospiti x86 a 32 bit (qemu-system-i386). Questa funzionalità consente di eseguire le 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, sebbene lo spazio utente sia a 32 bit, il kernel è a 64 bit. Android Studio utilizza il kernel per selezionare i motori di emulazione.
  • Ora puoi specificare percorsi delle librerie Qt personalizzate utilizzando la variabile d'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]) sono posizionati nella directory dell'emulatore.
  • Windows: è stato risolto un problema che a volte poteva causare l'arresto anomalo dell'emulatore con un messaggio "Richiesta di arresto della vCPU".
  • È 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 di proxy HTTP quando veniva utilizzata la codifica di trasferimento con chunking. 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 e la webcam della scena virtuale non funzionavano sull'emulatore.

29.0.8 (6 maggio 2019)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • È stato aggiunto il supporto di più display hardware virtuali quando è presente un servizio guest per enumerare e impostare ogni display. Più display hardware virtuali verranno inclusi in un aggiornamento futuro dell'immagine di sistema dell'emulatore.
  • È stata aggiunta una nuova opzione della riga di comando: -delay-adb. Questa opzione elimina l'elaborazione dei pacchetti ADB fino al completamento dell'avvio del guest (da un avvio 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 contemporaneamente DDMS.
  • È stato corretto un errore che si verificava durante il caricamento degli snapshot, in cui glIsRenderbuffer restituisce il valore errato.
  • Sono stati risolti alcuni problemi relativi allo stato obsoleto al riavvio dell'utente ospite Android.
  • Windows: sono stati risolti i problemi che impedivano l'avvio dell'emulatore quando il nome utente di Windows conteneva spazi o caratteri non ASCII.

Problemi noti

  • L'interfaccia utente degli snapshot è disattivata per le immagini di sistema Automotive perché al momento non sono supportate per queste immagini di sistema.

29.0.6 (1° maggio 2019)

Questo aggiornamento include diverse nuove funzionalità, miglioramenti alle funzionalità esistenti e correzioni di bug.

Rimozione del supporto di QEMU1 e Windows a 32 bit

Per una migliore gestione dell'emulatore, non forniamo più i file binari di 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 di 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 di release) o successiva.

Miglioramenti di Project Marble

Questo aggiornamento prosegue il nostro lavoro sull'iniziativa Project Marble annunciata all'Android Developer Summit di novembre 2018. Per ulteriori informazioni su altri miglioramenti di Project Marble nelle release precedenti, consulta Android Emulator: Project Marble Improvements.

Per questo aggiornamento, la maggior parte dei nostri sforzi di Project Marble è stata dedicata alla riduzione dell'utilizzo delle risorse dell'emulatore, ad esempio l'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 generali di qualità.

Le sezioni seguenti descrivono i miglioramenti di Project Marble inclusi in questo aggiornamento:

Miglioramenti al comportamento 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'host, puoi attivare questa opzione andando su Controlli avanzati > Microfono e attivando Il microfono virtuale utilizza l'input audio dell'host. Questa opzione viene disattivata automaticamente ogni volta che l'emulatore viene riavviato.

Se utilizzi la riga di comando, puoi anche attivare l'audio host utilizzando l'opzione -allow-host-audio e puoi utilizzare i seguenti comandi ADB per attivare o disattivare rispettivamente i dati audio host:

  • 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 l'interfaccia utente. Puoi utilizzare le build headless per aiutarti a configurare l'emulatore per i flussi di lavoro di Docker e 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 al seguente elenco:

  • 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

Aggiornamento delle librerie Qt UI alla versione 5.12 LTS

Questo aggiornamento include i seguenti miglioramenti rispetto alla release LTS Qt 5.12:

  • Per evitare arresti anomali nella decodifica di libpng di Qt all'avvio di determinate immagini di sistema, ora l'emulatore utilizza una propria copia di libpng per decodificare le immagini PNG.
  • Per risolvere i problemi relativi ad alcune installazioni Linux contenenti versioni incompatibili di alcune librerie dipendenti da Qt, ora pacchettizziamo libfreetype, libsoftokn, libsqlite3 e libxkbcommon con l'emulatore.
  • Ora l'emulatore utilizza le librerie di gestione delle finestre native della piattaforma per ottenere le dimensioni del monitor, anziché le librerie Qt che restituivano risultati inaffidabili.

Ottimizzazioni automatiche della CPU dopo il cold boot

Per risolvere il problema di utilizzo della CPU, ora l'emulatore esegue i seguenti comandi ADB su un riavvio 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 viene ridotto notevolmente.
In modalità di ricarica CA, le operazioni in background di GMSCore, come gli aggiornamenti delle app, possono assumere il controllo di tutti i core della CPU del dispositivo e, per estensione, del computer dell'utente senza alcun avviso.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
Questo comando revoca le autorizzazioni di accesso al microfono per l'app Ricerca Google, il che consente di ridurre notevolmente l'utilizzo della CPU in background nella schermata Home e nel programma di avvio quando l'app Ricerca Google è attiva.
Questo comando viene eseguito oltre al comportamento predefinito dell'emulatore di disattivare l'audio dell'host per l'host. Inoltre, fornisce automaticamente la mitigazione dell'utilizzo della CPU descritta per il rilevamento della hotword dalla release 28.0.23.

Nuove variabili di ambiente per il monitoraggio delle prestazioni

Ora puoi utilizzare due nuove variabili di ambiente per abilitare il monitoraggio dettagliato del rendimento e dell'utilizzo delle risorse dell'emulatore.

SHOW_PERF_STATS=1
Questa variabile di ambiente consente di monitorare l'utilizzo della CPU e della RAM. Il monitoraggio per l'utilizzo della RAM distingue tra l'utilizzo della grafica e la memoria residente totale.
ANDROID_EMU_TRACING=1
Questa variabile di ambiente attiva la stampa ogni volta che un'operazione di input o grafica richiede molto tempo (più di 1 ms).
Utilizziamo questa variabile di ambiente anche per diagnosticare i problemi riscontrati dagli utenti Windows con più jerk (frame persi) rispetto agli 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 nell'emulatore tramite i seguenti comandi della console:
    • adb emu avd pause
    • adb emu avd resume
  • È stato notevolmente ridotto il sovraccarico del disegno OpenGL. Questo miglioramento riduce l'utilizzo della CPU durante la riproduzione delle animazioni nell'emulatore.
  • È stato 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 con bridge. In un ambiente di rete con bridge, l'emulatore viene visualizzato sulla rete host e la rete host viene visualizzata sull'emulatore.
  • Per avviare l'emulatore vengono ora utilizzati i file binari del BIOS appropriati per QEMU 2.12.
  • È stato eseguito l'upgrade della versione ffmpeg alla 3.4.5 per la codifica e la decodifica video.
  • È stato notevolmente ridotto l'overhead dell'I/O del loop principale di QEMU su macOS sostituendo il loop principale basato su select() con un loop principale basato su kqueue.
  • Le dimensioni del buffer di Logcat sono state aumentate a 2 MB per risolvere i problemi relativi a EOF imprevisti e inaffidabili 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 arresti anomali e incompatibilità associati all'esecuzione dell'emulatore in diversi paesi.
  • Ora puoi monitorare l'utilizzo della CPU e della RAM dell'emulatore utilizzando le statistiche sul rendimento a cui puoi accedere in Controlli avanzati > Impostazioni > Avanzate > Statistiche sul rendimento. 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 dell'host anziché uno simulato. Questa modifica consente di risolvere i problemi relativi alla mancata visualizzazione di immagini e asset a causa di un formato non corretto per la lettura.
  • È stato aggiunto il supporto per le estensioni OpenGL ES GL_EXT_texture_format_BGRA8888 e GL_APPLE_texture_format_BGRA8888 se queste estensioni sono supportate dall'hosting.
  • Sono state aggiunte ulteriori informazioni di diagnostica all'interfaccia utente di Bugreport. Inoltre, puoi accedere ai report di 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.
  • È stata aggiunta una maggiore registrazione e stampa ogni volta che non riesce a inizializzare OpenGL o l'hypervisor.
  • Se l'emulatore non riesce a 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 possa avviare istanze -read-only simultanee di un AVD se altre istanze scrivibili di quell'AVD non hanno completato la pulizia dei file obsoleti.
  • Per le immagini di sistema future, 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 compilazione dell'emulatore ora si basa su CMake/Ninja.
  • Nell'interfaccia utente dei controlli estesi dell'emulatore, le linee di separazione nella tabella delle scorciatoie da tastiera sono state ripristinate.
  • Ora gli utenti possono attivare la fornitura al nostro team di metriche sull'utilizzo di CPU e RAM in un intervallo 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 sfarfallii e frame errati visualizzati su sistemi con GPU Intel quando si utilizzano le immagini di sistema Android Q.
  • Sono stati corretti i problemi relativi alla visualizzazione di una schermata nera quando si utilizzano immagini di sistema Android Q con skin di 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 di dati.
  • Risolto un problema per cui pulseaudio sull'emulatore Linx si avviava 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 delle texture compresse.
  • Sono stati corretti gli errori GL che si sono verificati sull'host in glTexSubImage2D durante l'aggiornamento di alcuni buffer gralloc (con formato RGB 565, RGB10A2, RGB(A)16F).
  • È stato risolto un problema di visualizzazione nelle immagini di sistema di Android Q con istantanee in cui la geometria dell'area notifiche veniva visualizzata con un'impostazione di divisore di istanze non corretta.
  • Sono stati corretti alcuni problemi di arresto anomalo e blocco difficili da riprodurre all'avvio che si verificavano a causa della perdita di indicatori da parte di Qt o di stati incoerenti e instabili all'avvio.
  • Sono stati risolti numerosi problemi di concorrenza. Ora siamo in grado di compilare l'emulatore Linux con ThreadSanitizer (TSAN), che può rilevare facilmente bug altrimenti difficili da riprodurre.
  • Per gli utenti Linux: abbiamo riscontrato che su alcuni kernel host, il kernel Android ospite può generare un errore ed uscire in KVM con un errore hardware generico. In questo caso, l'emulatore abort() per aumentare la possibilità di eseguire il debug (in precedenza, l'emulatore si bloccava).
  • Per gli utenti Linux: per comodità con le configurazioni CI, puoi utilizzare la nuova opzione -stdouterr-file <file-name> della riga di comando per reindirizzare sia stdout sia stderr a un file.
  • Risolto un problema per cui SO_REUSEADDR veniva utilizzato in modo errato. Per ulteriori informazioni, consulta i dettagli del commit.
  • È stato risolto un problema di lunga data con l'emulatore Windows per cui i sottoprocessi, come i comandi ADB, non riuscivano ad avviarsi se il nome utente conteneva spazi.
  • È stato risolto un problema relativo all'inizializzazione mancante di RCU nei thread vCPU di HAXM. Questa correzione potrebbe risolvere alcuni arresti anomali e condizioni di gara.
  • È stato corretto un arresto anomalo che si verificava con determinati pattern di salvataggio e caricamento degli snapshot dall'interfaccia utente degli snapshot utilizzando immagini di sistema Android Q recenti.
  • È stato risolto un problema per cui la videocamera della scena virtuale era vuota quando l'emulatore veniva inizializzato da uno snapshot se una macro AR era in riproduzione al momento del salvataggio dello snapshot.
  • È stato 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, ora l'emulatore configura esplicitamente MESA_RGB_VISUAL. Per ulteriori informazioni, consulta i dettagli del commit.
  • È stato risolto un problema relativo alla visualizzazione dei pulsanti di rotazione sugli AVD TV.
  • È stato risolto un problema per cui, se l'emulatore era impostato sempre in primo piano, la finestra dei controlli avanzati veniva visualizzata ogni volta che l'emulatore veniva ruotato.

Profili hardware per i 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:

  • Pieghevole da 7,3": 1536 x 2152 da aperto, 4,6" 840 x 1960 da chiuso
  • Pieghevole da 8": 2200 x 2480 da aperto, 6,6" 1480 x 2480 da chiuso

Quando esegui l'emulatore utilizzando uno di questi profili hardware, puoi piegare e aprire il dispositivo utilizzando le azioni di piegatura e apertura nella barra degli strumenti dell'emulatore, i comandi della console o le seguenti scorciatoie da tastiera:

  • Piega: 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 reimpostare tutti i sensori del dispositivo allo stato predefinito.

Per ulteriori informazioni, vedi Testare le azioni AR comuni con le macro.

Supporto Vulkan (Windows, Linux)

Ora gli utenti Windows e Linux possono testare le app Vulkan con l'emulatore Android fino a Vulkan 1.1 se 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 (inclusa 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 ~/.android/advancedFeatures.ini file (crea il file se non esiste):

  • Vulkan = on
  • GLDirectMem = on

Supporto iniziale per gli sviluppatori di ROM

Gli sviluppatori di ROM che stanno creando target sdk_phone_x86 o sdk_phone_x86_64 (varianti userdebug, eng) sul ramo master di AOSP ora possono eseguire un emulatore compatibile con Vulkan.

Questo supporto è ancora sperimentale ed è rivolto principalmente agli sviluppatori che si occupano di immagini di sistema, driver e motori di gioco. Mancano ancora molte estensioni. 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 utilizzare 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 di Android utilizzando le API Skia Vulkan.

Se hai una GPU NVIDIA o AMD che supporta Vulkan, utilizza i seguenti comandi per testare il rendering di 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 eseguire esperimenti con 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 arresta l'emulatore. Questo problema verrà risolto in un prossimo aggiornamento di HAXM.

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 desktop remoto riscontrano i seguenti problemi di lunga data:

  • L'invio programmatico di comandi di input all'emulatore prevede l'esecuzione di comandi adb shell che possono presentare un overhead elevato oppure l'utilizzo della console telnet, che è più veloce, ma potrebbe non funzionare con determinate configurazioni di rete.
  • Gli utenti di CI spesso eseguono emulatori senza interfaccia, il che può rendere difficile notare i problemi che richiedono che lo schermo sia visibile o interattivo.
  • Spesso gli utenti del desktop remoto non riescono a interagire con l'emulatore quando utilizzano il rendering GPU dell'host perché questo è spesso associato ai display non virtuali dell'host.

Per risolvere il problema, quando viene eseguito su una macchina Linux, l'emulatore ora fornisce un servizio gRPC. gRPC è un framework generale per le RPC che funziona su HTTP.

Per impostazione predefinita, il servizio gRPC dell'emulatore è disattivato, ma puoi attivarlo utilizzando la seguente opzione a 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 di screenshot possono essere inviati per eseguire query sullo schermo corrente, anche se l'emulatore è in esecuzione senza interfaccia utente. Per l'interattività, gli eventi di input possono essere inviati anche all'emulatore.
  • Gli utenti di desktop remoto possono eseguire l'emulatore senza interfaccia sul display principale con il rendering accelerato GPU, utilizzando 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.

Attualmente sono inclusi i seguenti esempi:

  • Un servizio basato su Go che può essere utilizzato per eseguire query sugli stati dell'emulatore.
  • Un'app React che dimostra l'interattività da remoto tramite screenshot e RPC di input. Questo esempio richiede protobuf versione 3.7.0 o successive.
  • Un esempio di 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:

Compilazione 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 essere in grado di supportare Qt e le relative dipendenze delle librerie condivise (tra gli altri problemi).

Come primo passo per risolvere il problema, abbiamo introdotto una variante del programma di lancio dell'emulatore con file eseguibili QEMU che non dipendono da Qt. Su Linux è ancora presente un link a libX11, ma ci auguriamo di rimuoverlo a breve.

Per utilizzare l'emulatore senza interfaccia, eseguilo dalla riga di comando come di consueto, ma sostituisci l'invocazione del file binario dell'emulatore con emulator-headless. Per ulteriori informazioni, consulta l'aggiornamento della release 28.1.8 Canary.

  • È stato corretto il tremolio e la visualizzazione errata dei frame sulle GPU Intel durante l'esecuzione delle immagini di sistema Android Q.
  • Sono stati risolti i problemi relativi alla visualizzazione di una schermata nera quando si utilizzano le immagini di sistema Android Q con skin di Pixel 2 XL.
  • Per avviare l'emulatore vengono ora utilizzati i binari BIOS più recenti. Questa modifica può contribuire a ridurre gli errori di "Richiesta di arresto delle vCPU" che si verificano a volte quando si avvia l'emulatore su Windows.
  • È stata eseguita la backporting di una correzione per il problema"Visualizzazione errata al riavvio delle 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", svolgi i seguenti passaggi per la risoluzione dei problemi:
    1. Esci da tutti gli emulatori.
    2. Elimina entrambi i file ~/.android/adbkey e ~/.android/adbkey.pub.
    3. Esegui il seguente comando: adb kill-server
    4. Esegui il seguente comando: adb devices
    5. Resetta i dati dell'AVD.
    6. 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 post recente su Reddit descriveva in dettaglio in che modo il sistema operativo Android guest avrebbe sempre utilizzato l'audio del microfono dell'host, consentendo così a "Hey Google" di funzionare in modo imprevisto. Siamo spiacenti per questo e lavoreremo con il team di Android per assicurarci che il rilevamento delle hotword sia disattivato anche nell'immagine di sistema.

Per risolvere il problema, abbiamo apportato le seguenti modifiche:

  • I dati audio effettivi dell'host vengono ora attenuati 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 a Controlli avanzati > Microfono e attivando Il microfono virtuale utilizza l'input audio dell'host. Questa opzione viene disattivata automaticamente ogni volta che viene riavviato l'emulatore.

Aggiornamenti sulle indagini sull'utilizzo della CPU

Durante le nostre indagini di 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 rilevato che a intervalli casuali, tutte le app installate vengono aggiornate, anche quando l'utente non ha eseguito l'accesso. Durante la procedura, l'utilizzo della CPU viene impostato sul numero di core x 100% (in genere circa il 400%) in GMSCore e dex2oat. Puoi attenuare questo problema disattivando gli aggiornamenti automatici delle app nell'app Play Store.

Inattivo: rilevamento hotword

Quando sei nella schermata Home e non è attiva alcuna app in primo piano, l'utilizzo della CPU può essere molto elevato (~25% con picchi fino al 50%). Questo accade a causa del rilevamento di hotword che invia costantemente ping all'host. Non puoi ovviare a questo problema disattivando l'input audio dell'host perché il costo della CPU è causato principalmente dal tempo necessario per raggiungere l'ospite dall'host. Tuttavia, puoi mitigare il problema revocando le autorizzazioni di accesso al microfono dall'app Google.

Quando è attivo, a volte in caso di inattività: animazioni

La terza fonte di elevato utilizzo della CPU è rappresentata dalle animazioni. Abbiamo scoperto che ottimizzando la pila del driver grafico possiamo anche ridurre l'utilizzo della CPU anche quando l'emulatore non è inattivo. Implementeremo le ottimizzazioni dei driver grafici in modo incrementale nell'ambito di Project Marble.

28.0.22 (21 dicembre 2018)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • È stato risolto un problema di lunga data per cui, in alcune impostazioni, l'emulatore Mac si riavviava o si verificava un panico del kernel al salvataggio del Quickboot. (Issue 120951634)
  • Quando si utilizza un file mappato come istantanea della RAM, ora l'emulatore annulla la mappatura del file esplicitamente all'uscita.

28.0.20 (11 dicembre 2018)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • È stato 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 veniva utilizzato un percorso ANDROID_SDK_HOME non standard.
  • È stato risolto un problema su Windows che causava l'arresto anomalo dell'emulatore durante l'avvio delle immagini di sistema con l'accelerazione della CPU disattivata.
  • È stato risolto il problema di visualizzazione dell'emulatore con pixel. Il downsampling ora dovrebbe funzionare.
  • È stato risolto un problema su macOS 10.14 e versioni successive per cui il controllo della visualizzazione della videocamera della scena virtuale poteva diventare troppo sensibile a causa di un'interazione con le nuove impostazioni di sicurezza di accessibilità.
  • È stato corretto un errore nel calcolo del fuso orario che poteva causare la variazione sporadica dell'orologio dell'emulatore.
  • Sono stati corretti gli errori di rendering in varie app cocos2d e Unreal Engine.
  • Nell'emulatore è stato aggiunto il supporto per il Wi-Fi peer-to-peer. Ora due emulatori possono comunicare tra loro direttamente tramite Wi-Fi se utilizzi l'immagine del Play Store di Pie più recente. Per utilizzare il peer-to-peer Wi-Fi, avvia due AVD con gli stessi parametri -wifi-server-port e -wifi-client-port:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • È stato aggiunto il supporto di altre webcam su Windows prendendo le dimensioni del frame incompatibili e ridimensionandole dinamicamente in base all'impostazione della fotocamera nell'apposita sezione di Android guest.

28.0.16 (novembre 2018)

Questo aggiornamento include diverse nuove funzionalità, miglioramenti alle funzionalità esistenti e correzioni di bug.

Utilizzo delle risorse

Ora l'emulatore utilizza meno RAM in generale, in particolare quando si utilizzano immagini di sistema con livello API 28 o superiore. Queste immagini di sistema includono un utilizzo migliorato della memoria per i driver grafici lato guest.

Inoltre, abbiamo migliorato l'utilizzo delle risorse nelle seguenti aree:

  • Utilizzo ridotto 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.
  • È stato risolto un problema per cui il contesto AIO di QEMU poteva verificarsi su Windows.

Esegui contemporaneamente più istanze di un singolo AVD

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 ignorate 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 fornito lo strumento a riga di comando qemu-img per consentirti di eseguire il precommit dei file QCOW2 prima di lanciare più istanze.

Inoltre, se utilizzata 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 con copia su scrittura. Questa proprietà indica che le istanze condividono gran parte della RAM. Utilizza questa funzionalità per eseguire test che richiedono l'esecuzione in parallelo di più dispositivi.

Apprezziamo il tuo feedback sui possibili casi d'uso che fanno parte del tuo normale flusso di lavoro interattivo o CI. Crea o dai un voto positivo ai 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 tempi di salvataggio lunghi quando chiudi gli emulatori, attiva questa funzionalità per migliorare il rendimento di Quickboot. Per impostazione predefinita, un'istantanea di Quickboot viene salvata all'uscita e caricata di nuovo ogni volta, ad esempio come la sospensione e il risveglio di un dispositivo reale.

Poiché la RAM guest di Android viene ora salvata automaticamente per impostazione predefinita, se vuoi definire uno stato del dispositivo e caricarlo ripetutamente da questo stato, 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 avanzati > Istantanee > Impostazioni e imposta Salva automaticamente lo stato corrente come avvio rapido? su No.
  • Dovrai riavviare l'emulatore dopo aver selezionato questa opzione. Se l'emulatore è impostato su salvataggio automatico, puoi eseguire il seguente comando per impostare un checkpoint:
    adb emu avd snapshot remap 0
    
    Dopo aver eseguito questo comando, lo snapshot di Quickboot dell'emulatore rimarrà in quel checkpoint. Esegui di nuovo lo stesso comando per caricare l'emulatore dal punto di controllo.

Gli snapshot acquisiti e caricati tramite la funzione dell'interfaccia utente degli snapshot come accadeva in precedenza, senza mappatura dei file.

Poiché si tratta di una modifica significativa al funzionamento di Avvio rapido, ti saremmo molto grati se ci fornissi un feedback sul fatto che questa modifica migliora il rendimento di Avvio rapido e su quali tipi di problemi riscontri durante l'utilizzo. Se riscontri problemi, puoi disattivare questa funzionalità aggiungendo la seguente riga al file ~/.android/advancedFeatures.ini:

QuickbootFileBacked = off

Quando avvii l'emulatore da uno snapshot (utilizzando l'opzione -snapshot della riga di comando o avviandolo da uno snapshot nel gestore AVD), l'emulatore disattiva sia il salvataggio automatico per gli snapshot di Quickboot sia il salvataggio degli snapshot di Quickboot all'uscita. In questo modo si riducono le probabilità che lo snapshot di Quickboot venga soprascritto involontariamente ed è possibile evitare percorsi di riserva lenti che non utilizzano snapshot di Quickboot basati su file.

QEMU 2.12

Abbiamo cambiato la base della nostra variante di QEMU da QEMU 2.9 a QEMU 2.12. Questo aggiornamento include le seguenti modifiche a QEMU:

Di seguito sono riportate alcune delle modifiche significative che influiscono sull'emulatore Android:

  • x86: gdbstub ora fornisce l'accesso ai registri SSE.
  • Immagini disco: il blocco delle immagini viene aggiunto e attivato per impostazione predefinita. Più processi QEMU non possono scrivere nella stessa immagine, a condizione che l'host supporti OFD o i blocchi posix, a meno che non vengano specificate altre opzioni.
  • qemu-img: qemu-img resize supporta la preallocazione delle nuove parti dell'immagine.
  • Il ridimensionamento QCOW2 è ora supportato in qemu e qemu-img.

Accessibilità

  • Sono stati corretti i problemi relativi agli screen reader ed è stato aggiunto un supporto migliore per questi strumenti nell'interfaccia utente di Registrazione schermo e Istantanea.
  • Le icone di notifica di Avvio rapido sono state rese più accessibili agli utenti dal daltonismo.

Grafica

  • È stato risolto un problema di accesso alla memoria fuori dai limiti che potrebbe verificarsi per i puntatori agli array di vertici OpenGL ES.
  • Alcune GPU meno recenti non supportavano OpenGL 2.1 o versioni successive (obbligatorie) o avevano altri problemi di affidabilità. Questi problemi potrebbero causare l'arresto anomalo dell'emulatore all'avvio, il blocco o l'impossibilità di utilizzarlo con l'impostazione GPU predefinita. Ora l'emulatore passa automaticamente al renderer Swiftshader se rileva che queste GPU sono in uso.
  • È stato risolto un problema che causava la mancata pubblicazione del framebuffer corretto da parte dell'emulatore se FBO != 0 era associato al momento di eglSwapBuffers.
  • È stato risolto il problema per cui il display Android virtuale veniva visualizzato solo nell'angolo superiore sinistro. Riteniamo che il problema sia dovuto a variabili di ambiente Qt configurate in modo errato. Ora l'emulatore sostituisce tutte le variabili di ambiente relative alla scalabilità 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.
  • Sono stati corretti i problemi di concorrenza in OpenGL e nell'avvio dei thread di rendering che potevano portare a svuotamenti doppi 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 versioni successive 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

  • Ora l'emulatore può aggiornare la direzione insieme alla posizione di latitudine e longitudine. Il sensore virtuale del magnetometro si regola in modo dinamico in base al nord magnetico deducendo il movimento durante la riproduzione di un file GPX o KML.
  • Ora la velocità del dispositivo può essere impostata nella pagina Posizione.
  • Quando riproduci 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 intervallo 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 avanzati non fosse stata aperta almeno una volta.

Fotocamera

Su Windows, ora sono supportate più webcam perché l'emulatore ridimensiona dinamicamente i frame della videocamera inviati dalla webcam. Questa funzionalità impedisce inoltre che gli errori di invio dei frame causino il blocco dell'emulatore.

Play Store

Per risolvere i problemi di esaurimento dello spazio su disco nelle immagini del Play Store, ora l'emulatore ridimensiona automaticamente la partizione userdata a 6 GB quando viene eseguito con un AVD del 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 della funzionalità di ADB in quella directory. Tuttavia, potrebbe essere utile anche eliminare i contenuti della 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>/*
  • Se l'emulatore non riesce ad avviarsi 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 ancora ad avviare l'emulatore, è possibile che l'impegno sia stato superato. Per assistenza in merito a questo problema, consulta la pagina Risoluzione dei problemi dell'emulatore.
  • L'opzione della riga di comando -sysdir ora sostituisce correttamente la directory delle immagini sistema dedotta.
  • Il modem virtuale ora supporta la query +MAI informazioni sull'attività del modello.
  • Sono stati corretti vari problemi relativi a perdite di memoria, danneggiamento della memoria e utilizzo della CPU. Se si verificano arresti anomali, perdite di memoria o altro utilizzo elevato delle risorse, crea un problema in Issue Tracker.
  • Risolto un problema che si è ripresentato su macOS 10.14: l'utilizzo di cuffie Bluetooth con l'emulatore degradava l'audio a livello globale. Per evitare questo problema, ora l'emulatore evita di utilizzare l'audio Bluetooth quando viene eseguito su macOS. (Issue 37070892)
  • È stato risolto un problema su Windows per cui l'orologio dell'emulatore non era nel fuso orario corretto.
  • Sono stati corretti i problemi di lentezza e blocco dell'emulatore sui sistemi Linux con unità disco rigido meccaniche (HDD).
  • Sono stati corretti alcuni avvisi di compilazione che potrebbero causare la corruzione dello stack su macOS.
  • Sono stati risolti i problemi che potrebbero causare segnalazioni fuorvianti di blocchi.
  • 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 non erano affidabili, causando blocchi e altri comportamenti insoliti. Se l'emulatore si blocca su macOS, crea un problema nel tracker dei problemi.
  • È stato risolto un problema per cui la chiusura dell'emulatore disattivava l'interfaccia utente, ma non chiudeva effettivamente l'emulatore.
  • Sono stati risolti i problemi relativi ad arresti anomali sporadici, tra cui un'interruzione dovuta all'apertura di troppe istanze di /dev/urandom.
  • È stato risolto un problema che causava il mancato 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.
  • È stato risolto un problema per cui le connessioni ADB potevano essere danneggiate durante il caricamento dello snapshot.
  • È stato risolto un problema per cui la finestra dell'emulatore mostrava un'immagine fantasma o un teletrasporto fuori schermo quando si riprendeva uno snapshot in cui l'orientamento del dispositivo era diverso da quello predefinito dell'AVD.
  • Sono stati risolti i problemi relativi agli arresti anomali durante il salvataggio degli istantanei.
  • 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 suoi dispositivi virtuali del disco. Ti consigliamo di svuotare la directory ~/.android/avd ed eseguire il seguente comando nella directory ~/.android/avd vuota:
    chattr +C
    
    In questo modo vengono creati nuovi snapshot in una cartella in cui la copia su scrittura è disattivata.

HAXM 7.3.2

Vorremmo ricordare ancora una volta che HAXM 7.3.2 deve essere installato affinché le immagini di sistema recenti funzionino correttamente nell'emulatore. HAXM 7.3.2 dovrebbe essere già disponibile nel canale stabile e può essere installato anche manualmente da https://github.com/intel/haxm/releases.

Ecco alcuni dei problemi risolti da questa versione di HAXM:

  • Sono stati corretti i crash 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 potrebbe causare un 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 dell'emulatore Android che funziona su Windows. Implementeremo un piano di transizione prima della rimozione e del ritiro della versione a 32 bit dell'emulatore Android. Tuttavia, stiamo cercando attivamente feedback o dubbi in merito a questa futura modifica.

Facci sapere nel Issue Tracker se al momento utilizzi la versione a 32 bit dell'emulatore Android che funziona su Windows e indicaci come possiamo collaborare al meglio in futuro.

27.3.10 (agosto 2018)

Questo aggiornamento include la seguente correzione di bug:

Correzione della configurazione della dimensione 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 non era impostata correttamente.

Per ovviare al 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 nel file config.ini dell'AVD non è indicato hw.ramSize in megabyte, crea un problema in Issue Tracker. Puoi trovare il file config.ini nella seguente posizione:

~/.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 andava a buon fine 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 alle funzionalità esistenti e correzioni di bug.

Istantanee

Ora puoi salvare più snapshot AVD per una determinata configurazione del dispositivo e scegliere quale 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 istantanea AVD caricare all'avvio dell'AVD.

Per supportare questa espansione delle funzionalità degli snapshot, abbiamo aggiunto una categoria Snapshot alla finestra di dialogo Controlli avanzati. Questo nuovo riquadro contiene i controlli per il salvataggio e il caricamento degli snapshot AVD, inclusi i controlli per il salvataggio e il caricamento dello snapshot di avvio rapido che in precedenza si trovavano nel riquadro Impostazioni.

Puoi modificare il nome e la descrizione di ogni istantanea salvata.

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 e con Emulator 27.3 e versioni successive, gli snapshot caricano i 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 Configurare l'accelerazione delle VM.

27.2.9 (maggio 2018)

Questo aggiornamento include diverse nuove funzionalità, miglioramenti alle funzionalità 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 della registrazione dello schermo si trovano nella scheda Registrazione dello schermo della finestra Controlli estesi.

Suggerimento:puoi anche aprire i controlli della registrazione dello schermo premendo Ctrl+Maiusc+R (Comando+Maiusc+R su Mac).

Per avviare la registrazione dello schermo, fai clic sul pulsante Avvia registrazione nella scheda Registrazione sullo 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 in fondo alla scheda e fai clic su Salva.

Puoi anche registrare e salvare una registrazione dello schermo dall'emulatore utilizzando il seguente comando sulla 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.

Videocamera di scene virtuali e ARCore

Sviluppare e testare app di realtà aumentata (AR) con ARCore ora è ancora più facile con la nuova fotocamera di scene virtuali, che consente di sperimentare l'esperienza AR in un ambiente virtuale.

Per informazioni sull'utilizzo della videocamera virtuale nell'emulatore, consulta Eseguire app AR in Android Emulator.

Immagini del Google Play Store sui dispositivi Pixel

Il Google Play Store è ora abilitato per le immagini dei dispositivi Pixel e Pixel 2. Questo valore è indicato in AVD Manager in Android Studio 3.2 e versioni successive con il logo di Google Play nella colonna Play Store. Gli AVD con il Google Play Store abilitato dispongono di una scheda Google Play nella finestra di dialogo Controlli avanzati che fornisce un pratico 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 avanzati 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 continui a riscontrare salvataggi insolitamente lunghi, registra un problema, fornendo i dettagli della CPU, della RAM e delle impostazioni di eventuali antivirus / firewall/ software 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 di Android con Skia, che può eseguire il rendering in modo più fluido ed efficiente.

Per il momento, l'utilizzo di Skia richiede l'abilitazione esplicita.

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

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

Fotocamera

Su Windows, ora Android Emulator utilizza Media Foundation come backend della webcam, che migliora notevolmente le prestazioni e la frequenza frame per l'acquisizione della webcam, fino a 720p 30 FPS.

Su Mac, ora puoi utilizzare webcam0 e webcam1 contemporaneamente.

Vari

L'opzione a 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 dell'emulatore Android viene ora compilata utilizzando una toolchain C++ Clang moderna. Questa modifica risolve il problema di mancata 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 dalla mancanza di spazio libero su disco, ora l'emulatore controlla la presenza di spazio libero sufficiente all'avvio e non si avvia se non sono disponibili almeno 2 GB di spazio libero.
  • Risolto un problema che impediva il rendering di alcuni giochi Unity.
  • È stato risolto un problema DNS che impediva all'emulatore di connettersi alla rete.
  • È stato risolto un problema che causava il mancato funzionamento delle modifiche allo spazio di archiviazione interno allocato a un AVD tramite la finestra di dialogo Configurazione dispositivo virtuale.
  • Risolto un problema per cui venivano creati molti processi adb e non venivano chiusi correttamente.
  • È 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 avanzati.
  • È stato risolto un problema che causava il mancato funzionamento della funzionalità di copia e incolla dall'host, a meno che la finestra di dialogo Controlli avanzati 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.
  • La funzionalità Telefono e l'invio di SMS sono ora disattivati correttamente quando la modalità aereo è attiva.
  • È stato risolto un problema che causava la disattivazione della funzionalità di SMS e rete mobile dopo il caricamento di uno snapshot.
  • Non riceverai più falsi messaggi di avviso che dicono “Unable to open... \pstore.bin. Permission denied.”
  • Risolto un problema che impediva il riposizionamento dell'AVD su alcune schermate Mac.
  • Sono stati corretti i problemi di sfarfallio e schermate vuote sui computer MacBook Pro più recenti quando vengono eseguiti AVD con skin Pixel 2 XL.
  • Sono stati risolti i problemi relativi alle schermate vuote quando si passa alla modalità zoom mentre è attivo un emulatore senza cornice.
  • È stato risolto un problema che causava lo scorrimento della skin del dispositivo e dei contenuti dell'emulatore quando si aumentava lo zoom.

Se i problemi di blocco o altre instabilità persistono, registra un problema.

27.1.12 (marzo 2018)

Questo aggiornamento include correzioni per i seguenti problemi:

  • La qualità audio Bluetooth è peggiorata dopo l'avvio dell'emulatore. (Issue 37095756)
  • Le posizioni inviate a un emulatore sono state inviate a tutti. (Issue 73450633)
  • La posizione GPS impostata utilizzando la console è stata sostituita dai valori impostati utilizzando Controlli avanzati > Posizione nell'interfaccia utente grafica. (Issue 73471760)

Se i problemi di blocco o altre instabilità persistono, registra un problema.

Con questo aggiornamento, un'immagine di sistema aggiornata e una versione di anteprima di Android Studio, puoi utilizzare l'emulatore Android per eseguire applicazioni di realtà aumentata create con ARCore. Per requisiti e istruzioni dettagliati, consulta Eseguire app AR in Android Emulator.

27.1.10 (febbraio 2018)

  • Risoluzione di acquisizione della 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

    • È stato risolto un problema che a volte causava l'output di un'immagine distorta o completamente verde durante l'acquisizione con la webcam.
    • È stato risolto un problema che consentiva di visualizzare il seguente messaggio anche quando non si verificava alcun blocco: "emulator: ERROR: detected a hanging thread 'Qt event loop'. Nessuna risposta per 15000 ms".

Se i problemi di blocco o altre instabilità persistono, registra un problema.

27.1.7 (febbraio 2018)

  • Finestra dell'emulatore senza riquadro:

    Per impostazione predefinita, gli emulatori con file di skin del dispositivo ora vengono mostrati senza un riquadro della finestra circostante. Per visualizzare il riquadro della finestra circostante, attiva Mostra riquadro della finestra attorno al dispositivo nel riquadro Impostazioni della finestra Controlli avanzati.

  • Miglioramenti all'avvio rapido 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 avanzati.
    • L'emulatore riduce il tempo necessario per salvare uno snapshot in molti casi salvando solo la differenza tra lo stato corrente e lo snapshot salvato in precedenza.

    Per maggiori dettagli, consulta la documentazione relativa al boot rapido.

  • L'emulatore è stato aggiornato per utilizzare QEMU 2.9.

    Alcuni miglioramenti significativi includono:

    • I/O ottimizzati e blocco dei thread I/O a livello più granulare per prestazioni superiori.
    • Bug corretti da QEMU 2.8 (26.1.4).
    • Nuova implementazione del back-end di 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 è completamente conforme a OpenGL ES 3.0. Per informazioni dettagliate sul rendering Swiftshader, consulta la sezione Impostazioni > Avanzate di Controlli avanzati.

  • 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 attivata e disattivata.
    • È stato corretto un blocco quando si utilizza il back-end 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 -gpu angle_indirect della riga di comando. In alternativa, apri la finestra Controlli avanzati, vai a Impostazioni > Avanzate e seleziona ANGLE D3D11 per l'impostazione del renderer OpenGL ES.

  • È stato risolto un problema per cui la combinazione Maiusc+B non inseriva il carattere B maiuscolo.

27.0.2 (dicembre 2017)

  • La nuova funzionalità di avvio rapido consente di avviare l'emulatore più rapidamente, in base a uno snapshot dell'istanza AVD.

    Il riavvio rapido è abilitato per impostazione predefinita per tutti gli AVD. Sebbene la prima volta che avvii un AVD debba essere eseguito un avvio 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 Controlli avanzati dell'emulatore e fai clic su Impostazioni. Qui puoi selezionare una delle seguenti impostazioni per Salva stato avvio rapido all'uscita:

    • : salva sempre lo snapshot di avvio rapido quando chiudi l'emulatore. Questa è l'impostazione predefinita.
    • No: non salvare mai lo snapshot di avvio rapido; esegui sempre un avvio a freddo.
    • Chiedi: chiedi se salvare o meno l'istantanea dell'avvio rapido quando chiudi l'emulatore.

    La selezione si applica solo all'AVD attualmente aperto.

    Per ulteriori informazioni, consulta la documentazione di Avvio rapido.

  • È stato aggiunto il supporto per OpenGL ES 3 su Mac (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 e versioni successive, ora l'emulatore utilizza il profilo di base OpenGL, se disponibile.

  • Nuove opzioni per il rendering con Swiftshader / ANGLE:

    • -gpu swiftshader_indirect: variante di Swiftshader più veloce e stabile che funziona con l'avvio rapido.
    • -gpu angle_indirect (solo Windows): variante più stabile di ANGLE D3D che funziona anche con l'avvio rapido.

    Le opzioni precedenti -gpu swiftshader e -gpu angle sono ora deprecate. Nella finestra Controlli avanzati, 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 minore con correzioni di bug e i seguenti miglioramenti alla configurazione della GPU:

  • Attivare l'animazione di avvio quando si esegue il rendering su ANGLE
  • Disattivare GLES3 quando è in esecuzione il renderer ANGLE

26.1.3 (agosto 2017)

Si tratta di una release minore con correzioni di bug, miglioramenti delle prestazioni e piccole modifiche alle funzionalità.

  • Questa versione è ora obbligatoria per utilizzare le immagini di sistema Android 8.0 più recenti. Sono conformi a Treble e includono partizioni vendor.img separate.
  • È ora disponibile il nuovo HAXM 6.2.0 (controlla SDK Manager) che include i seguenti aggiornamenti:
    • Miglioramento dell'utilizzo della memoria. Il set di lavoro di picco della memoria bloccato da HAXM non è più uguale alle dimensioni della RAM dell'AVD; la memoria viene invece caricata su richiesta. In questo modo, l'emulatore dovrebbe funzionare in modo più affidabile su macchine con meno RAM.
    • 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 l'esecuzione del rendering software lato guest ricorrendo al rendering software lato host con Swiftshader. Le revisioni più recenti delle immagini di sistema per i livelli API 19-25 con le API Google dovrebbero avere il rendering lato ospite funzionante.
    • Risolto un problema per cui l'emulatore passava a un renderer software a causa del rilevamento della presenza di GPU Intel meno recenti, ma l'emulatore era in realtà in esecuzione su una GPU discreta. Le GPU su cui verrà attivato il rendering ANGLE o Swiftshader vengono determinate come segue:
      • Le iGPU Intel meno recenti presentano problemi con i driver sia OpenGL sia ANGLE D3D. Gli utenti con Intel HD Graphics 3xxx e versioni precedenti utilizzeranno Swiftshader.
      • Alcuni utenti hanno segnalato l'impossibilità di utilizzare le immagini del livello API 25 a causa di un bug per cui "Avvio app di Pixel si arresta continuamente". Sembra che si tratti di un problema del driver in alcuni modelli Intel HD 4xxx. Pertanto, verrà attivato automaticamente l'uso di ANGLE.
    • Per ottenere risultati ottimali con l'emulazione GPU, ti consigliamo di utilizzare una GPU NVIDIA o AMD discreta o una GPU Intel più recente (Iris, HD 5xxx, HD 5xx/6xx).
    • È stato risolto un problema per cui l'emulatore non riusciva ad avviarsi (l'emulatore OpenGL non è riuscito a inizializzarsi) 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. Ora hw.gpu.mode=mesa passerà automaticamente all'utilizzo di 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 abilitato per impostazione predefinita su macOS per le immagini x86 a 32 bit per migliorare il rendimento 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 fotocamera basata su QTKit è stata sostituita da un'acquisizione con buffering basata su AVFoundation.
  • È stato aggiunto il supporto del Wi-Fi in alcune immagini di sistema (al momento solo il livello API 25). È disponibile un punto di accesso denominato "AndroidWifi" e Android si connette automaticamente. Il supporto Wi-Fi può essere disattivato eseguendo l'emulatore con il parametro -feature -Wifi della riga di comando.
  • Alcuni utenti hanno sollevato il dubbio che le immagini di sistema del Play Store di dimensioni fisse non avessero spazio di archiviazione sufficiente. Di conseguenza, 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.
  • È stato risolto un problema per cui, se veniva utilizzata una CPU precedente con EPT Intel x86, ma senza UG, l'emulatore non riusciva ad avviarsi se era configurato più di un core.
  • Risolto un problema per cui Hyper-V veniva rilevato in modo errato se l'emulatore stesso era in esecuzione in un hypervisor Xen.
  • Risolto un problema per cui l'emulatore si arrestava in modo anomalo 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 del proxy HTTP personalizzata nei controlli avanzati (fai clic su Altro , poi su Impostazioni e Proxy). Per impostazione predefinita, l'emulatore utilizza le impostazioni del proxy HTTP di Android Studio, ma questa schermata ti consente di definire una configurazione proxy manuale.

  • È stato 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 consentire a VNC di ascoltare la porta 5901 come segue:

    1. Esegui: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. Apri un visualizzatore VNC, ad esempio tightvnc viewer, per connetterti alla porta 5901.

      • Per utilizzare il client di condivisione schermo integrato di Mac, è obbligatoria una password VNC al momento dell'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 inserisci una password.

    Android O non è attualmente supportato per la modalità VNC.

  • È stato aggiunto un pulsante Segnala un bug nella schermata Guida dei controlli avanzati. Fai clic su Altro , poi su Guida e Guida all'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 sulla configurazione dell'AVD e un log della segnalazione di bug. Puoi quindi salvare il report per te stesso o segnalare i problemi dell'emulatore.

  • È stato aggiunto il sensore giroscopico al riquadro dell'emulatore e dei sensori virtuali. Per funzionare, è necessaria un'immagine di sistema con il 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.

  • È stato aggiunto il supporto sperimentale di Hypervisor.Framework per macOS per le immagini x86 a 32 bit su macOS 10.10 e versioni successive tramite flag del server, il che dovrebbe migliorare i tempi di avvio e le prestazioni.

    • Se riscontri problemi, aggiungi la riga HVF = off in ~/.android/advancedFeatures.ini.
  • 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.
  • Ora l'emulatore utilizza FBO OpenGL offscreen per tutto il rendering, ad eccezione del post della foto di visualizzazione finale, il che dovrebbe risolvere i problemi di coerenza del colore tra le piattaforme.

  • Dopo aver raccolto dati su problemi di rallentamento improvviso dell'emulatore, abbiamo stabilito che il problema potrebbe essere correlato a un'interazione tra i driver OpenGL di Intel meno recenti e gli aggiornamenti di Windows. Di conseguenza, per gli utenti con Intel HD 4000, 3000, 2000 (e GPU correlate) ora il rendering è impostato per impostazione predefinita su un visualizzatore D3D (ANGLE) o Swiftshader (visualizzatore 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 minore 26.0.3 (maggio 2017)

  • Aggiunge flag di 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 degli utenti aggiornando i flag lato server. Se noti problemi con hardware specifico, segnala un bug per consentirci di esaminare il problema.
  • Nuovo supporto per l'input rotatorio per le immagini di sistema Android Wear con livello API 25. Per emulare il selettore di immissione rotativo su un dispositivo Wear, fai clic sulla scheda Immissione rotatoria nella finestra espansa.
  • La finestra di dialogo Segnalazioni di arresti anomali ora è ridimensionabile e non reimposta più Quando inviare segnalazioni di arresti anomali 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 degli indirizzi virtuali di 2 GB.
  • Aggiunge il supporto per i percorsi assoluti nelle immagini dell'emulatore.
  • Aggiunge una nuova scheda nella finestra espansa per le immagini del Google Play Store che visualizza la versione di Play Services e un pulsante per controllare se sono disponibili aggiornamenti di Play Services.
  • Aggiunge un menu a discesa per selezionare il renderer OpenGL nella pagina Impostazioni dell'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 (è necessario un riavvio).
  • È stato corretto un raro arresto anomalo all'uscita quando l'emulatore riceve sia i comandi exit che minimize.
  • È stato risolto un problema di ridimensionamento quando si cambia display su un computer Mac. (Issue 268296)
  • È stato corretto un problema per cui l'emulatore occupa il 300% della CPU e lo mantiene dopo aver ripreso il computer host dal sonno o quando l'emulatore è stato in esecuzione per molto tempo.
  • È stato corretto un arresto anomalo durante l'arresto dell'emulatore.

Aggiornamenti con HAXM v6.1.1 (marzo 2017)

Nota: HAXM 6.1.1 è disponibile per gli utenti Mac tramite SDK Manager dal 30 marzo e sarà presto disponibile per gli utenti Windows.

La versione 26.0.0 di Android Emulator supporta HAXM 6.1.1, che include i seguenti aggiornamenti:

  • Consente l'emulazione delle unità di monitoraggio delle prestazioni (PMU). (Issue 223377)
  • Corregge la coesistenza con VirtualBox e Docker su Mac. (Issue 197915)
  • Rivede il messaggio di errore di installazione visualizzato quando il programma di installazione non riesce a rilevare 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/ospite Windows) utilizzi la versione più recente di Hyper-V con la virtualizzazione nidificata abilitata. Hyper-V deve essere disattivato nell'istanza Hyper-V guest (la VM Windows).

Dipendenze

  • Android SDK Platform-Tools versione 25.0.4 o successive.
  • Strumenti SDK Android versione 26.0.0 o successive.

Nuove funzionalità e correzioni di bug

  • Compatibile con il livello API 26.
  • Completamente conforme a GLES 2.0. Se la GPU host dispone di driver OpenGL per computer conformi, ora l'emulatore supera il 100% dell'elenco mustpass dEQP-GLES2 del CTS di Android. È stato rilasciato per le immagini x86 a livello API 24 (revisione 11 e successive) e a breve verrà incluso per tutte le immagini di sistema.
  • Miglioramento delle prestazioni di riproduzione video. Ora l'emulatore memorizza tutti i buffer di colore video nella memoria condivisa host/guest ed esegue la conversione finale necessaria da YUV a RGB nella GPU. 1080p30 dovrebbe essere alla portata della maggior parte dei sistemi. È stato rilasciato per le immagini x86 con livello API 24 (revisione 11 e successive) e a breve verrà incluso per tutte le immagini di sistema.
  • Ora l'emulatore si annulla correttamente la registrazione dall'elenco 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ù rapidamente 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 minore 25.3.1 (marzo 2017)

  • È stato corretto 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 temporizzazione dei frame e i frame al secondo per giochi e video, ma causa l'arresto anomalo dell'emulatore in alcune configurazioni della macchina sconosciute. Puoi attivarla manualmente aprendo il file android_sdk/emulator/lib/advancedFeatures.ini e impostando GLAsyncSwap = on.

Dipendenze

  • Android SDK Platform-Tools versione 24 o successive.
  • Strumenti SDK Android versione 25.3.0.

Nuove funzionalità e correzioni di bug

  • È stato aggiornato il motore di emulazione a QEMU 2.7, incluse tutte le correzioni di bug recenti, le prestazioni migliorate e le nuove funzionalità.
  • Nuovo supporto IPv6.
  • Ora l'emulatore utilizza SwiftShader come renderer puramente software 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 un miglior rendimento multi-thread. Ciò comporta una serie di miglioramenti delle prestazioni dell'emulatore, tra cui:
    • Velocità di push/pull ADB migliorata.
    • Migliore supporto dell'accelerazione 3D.
    • Maggiore reattività complessiva dell'emulatore.
    • Prestazioni grafiche migliorate.
  • Ora l'emulatore utilizza i buffer lato GPU (glBindBuffers/glBufferData) quando l'ospite li richiede, riducendo il sovraccarico della CPU in alcune app.
  • Supporto audio migliorato.
  • I/O disco più veloce: ora l'emulatore utilizza thread separati per gestire l'I/O disco, con una conseguente riduzione della latenza e un miglioramento del throughput (~1,5 volte la velocità di I/O sequenziale, ~5 volte la velocità di I/O con accesso casuale). Inoltre, riduce il numero di svuotamenti sul disco, con un carico del dispositivo fisico molto inferiore.
  • L'emulatore ora utilizza file sparsi per gli avvii del disco su macchine Windows, accelerando sia il primo avvio sia gli avvii "wipe-data". Quando crei o reimposti un AVD, ora l'emulatore scrive sul disco 100-200 MB di dati, anziché 2 GB o più.
  • Vari miglioramenti alla GUI:
    • L'emulatore ora utilizza Qt 5.7.0, che include correzioni di bug e miglioramenti delle prestazioni.
    • L'inizializzazione dell'interfaccia utente non tenta più di caricare tutti gli eseguibili dell'emulatore come plug-in Qt, quindi è notevolmente più breve, soprattutto sui dischi rigidi.
    • Le interazioni con l'interfaccia utente ora sono più rapide e fluide, tra cui la rotazione, il ridimensionamento delle finestre e il caricamento e la chiusura della finestra dei controlli avanzati.