Note di rilascio dell'emulatore

Android Emulator è incluso in Android Studio.

Le versioni dell'emulatore precedenti alla 25.3.0 sono state distribuite come parte di Android SDK Tools.

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.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 la chiusura/l'apertura
  • [Correzione di bug] Visualizzazione errata della versione di Android come Anteprima di Gelato alla vaniglia di Android 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 Android Studio Jellyfish Stable Patch 1.

  • [Correzione di bug] A volte l'istantanea si blocca sull'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]Problema 314614435 Lo switch -http-proxy viene analizzato in modo errato

34.1.20 (1° aprile 2024)

Testato con Android Studio Iguana Stable.

  • [Correzione di bug] Problema n. 314614435: è stato risolto il problema a causa del quale l'opzione -http-proxy viene analizzata in modo errato

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 instrumentati eseguiti all'interno dell'emulatore che consentirebbero 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.
  • È stato corretto l'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 nov 2023)

Testato con Android Studio Giraffe Patch 4 e Hedgehog Stable.

  • Nuova implementazione pieghevole per emulare meglio il dispositivo Pixel Fold, compatibile con la versione più recente dell'API 34
  • 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 di pizzicamento per 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 al riavvio dell'emulatore
  • [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 nell'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.

  • Sono stati corretti gli orientamenti e le distorsioni della fotocamera dell'emulatore.
  • [Correzione di bug] Problema n. 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.
  • Miglioramento del problema di arresto anomalo di gLinux.
  • [Correzione di bug] Problema n. 215231636 "Emulatore con API superiore all'API 30 non funzionante nel processore Intel di 12a generazione".
  • [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 relativo al lancio della funzionalità AVD Problema n. 281725854. Per ulteriori informazioni, consulta la sezione Risoluzione dei problemi dell'emulatore.

32.1.12 (21 marzo 2023)

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

  • [Correzione di bug] Issue #267647323 La rete non funziona nell'emulatore avviato da Android Studio
  • [Correzione di bug] Problema n. 268498686 Lo schermo dell'emulatore è tremolante
  • [Correzione di bug] Problema n. 270034824 Le prestazioni dell'emulatore sono state ridotte 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
  • Aggiungere report sugli arresti anomali per i dispositivi Apple M1

32.1.11 (8 febbraio 2023)

Testato con Android Studio Giraffe Canary 2, Flamingo Beta 1 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] Risoluzione degli arresti anomali relativi alla durata di visualizzazione media 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] Problema n. 247843000: Errore di gestione del percorso relativo della durata di visualizzazione media
  • 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 AVD dell'emulatore incorporato nella finestra dei controlli estesi
  • [Correzione di bug] Problema 183139207: problemi audio associati all'attivazione del microfono da parte dell'emulatore
  • [Correzione di bug] Problema 229764024: bug del tocco bloccato AVD che causa problemi di comportamento dell'interfaccia utente
  • [Correzione di bug] Errore durante l'avvio dell'API 33 AVD 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.

Ora sono disponibili download autonomi dell'emulatore. Se riscontri problemi o arresti anomali con questa ultima release stabile, segnala un bug e valuta la possibilità di scaricare una versione precedente funzionante dagli archivi di download dell'emulatore.

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • Migliore supporto dei percorsi Unicode su Windows
  • Migliore gestione dell'arresto dell'emulatore, in modo da poter lanciare un nuovo lancio della stessa durata di visualizzazione media.
  • 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 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 dell'emulatore in attesa 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 ha funzionato.
  • È 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 il filtro dei pacchetti unicast in base all'indirizzo MAC MAT.
  • Wi-Fi: è stato risolto l'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: aggiunto il supporto della 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 le enumerazioni delle risorse BLOB più recenti.
  • È stato aggiunto il supporto degli snapshot per i trasferimenti di elementi grafici di tipo "asg".
  • macOS: aggiunto il supporto per la creazione rispetto all'SDK macOS 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

  • Aggiunto il supporto per i sensori a cerniera dei dispositivi pieghevoli. Ciò richiede un'immagine di sistema Android 11 futura e la configurazione dell'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ù, vedi il post del blog Developing for Android 11 with Android Emulator.

  • 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'angolazione e la postura del sensore della cerniera quando vengono premuti i pulsanti di piegatura o apertura della barra degli strumenti.

Emulatore per host ARM64

  • Il codice sorgente dell'emulatore Linux ora supporta la compilazione incrociata da host x86_64 a arm64, consentendo l'esecuzione di 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. Inoltre, 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 stringa virtio-gpu nel thread della vCPU (perché il rendering viene comunque scaricato in altri thread). Il rendering virtio-gpu verrà abilitato in un'immagine di sistema e nella versione futura 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)
  • Le librerie WebRTC sono state 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 effettuate dall'ospite.
  • Ora monitoriamo nelle metriche 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 a livello globale i frame dei dispositivi per tutti gli AVD, abbiamo reso disponibile il flag funzionalità NoDeviceFrame, che può essere attivato avviando l'emulatore dalla 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 / build 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 danneggiamento degli snapshot durante l'invio di comandi snapshot tramite gRPC e quando si preme il pulsante di salvataggio dello snapshot nell'emulatore incorporato 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. Questi emulatori richiedono un avvio a freddo.

  • L'endpoint gRPC ora supporta l'invio di SMS al dispositivo.

Correzioni generali

  • Si sono verificati problemi di compatibilità nell'esecuzione dell'emulatore Windows con RiotVanguard attivo. L'emulatore di Windows ora rileva l'anti-cheat di Vanguard e, se viene rilevato, mostra un messaggio di avviso.
  • È 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.
  • È stata corretta la riproduzione del percorso gpx/KML per seguire 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 è correttamente disattivato.
  • È 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. In un prossimo aggiornamento, rimuoveremo completamente il comportamento (la richiesta con finestra di controlli estesi attivi).
  • È stato corretto un bug intermittente relativo alla mancata connessione alla rete Wi-Fi all'avvio dell'emulatore.
  • È stato risolto il problema di blocco all'uscita quando l'emulatore emetteva i comandi della 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.
  • L'emulatore ora visualizza un avviso se vengono passate a -prop opzioni non supportate (sono supportati solo i oggetti qemu.*).
  • Quando si crea l'emulatore su Windows, dovrebbero esserci meno probabilità di riscontrare errori irregolari nella scrittura sui 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 riporta correttamente il tempo di avvio derivante da un riavvio del dispositivo.
  • Linux: nel caso in cui le autorizzazioni KVM siano insufficienti, l'emulatore ora stampa più tempestivamente le istruzioni di debug.
  • È stato risolto il problema per cui l'emulatore non riusciva ad avviare immagini di sistema recenti senza accelerazione.
  • È stato corretto il danneggiamento della memoria o l'arresto anomalo all'avvio da un rilevatore completato.
  • È 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'ultimo gioco di Asphalt 9 era stato visualizzato 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 screener di emulazione Vulkan ASTC/ETC2 sono ora integrati nella libreria libOpenglRender. Sarà più affidabile rispetto alla lettura dal file system.
  • È stato risolto un problema in Vulkan per cui, se eseguito con un'istanza Vulkan 1.0 sull'host, vkGetImageMemoryRequirements2KHR cancellava erroneamente il campo pNext dello struct VkMemoryRequirements2 restituito.
  • È stata corretta una perdita di memoria nel renderer Vulkan.
  • È 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 di 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.
  • È stato risolto il problema relativo all'utilizzo della memoria esterna Vulkan in cui poteva essere stata importata la mancata corrispondenza degli indici del tipo di memoria 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 il problema per cui, in alcune GPU host, gli Shar Skia non potevano eseguire la compilazione a causa di errori relativi a GL_EXT_shader_framebuffer_fetch.
  • Poiché la nostra copia del renderer ANGLE D3D9 è stata rimossa alcune versioni fa, ora passiamo automaticamente 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

Il ridimensionamento delle finestre in formato libero al momento non funziona a causa di problemi nel trasferimento dell'elemento attivo in Gestione 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 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 personalizzati utilizzando la variabile di ambiente ANDROID_QT_LIB_PATH.
  • Ora puoi eseguire l'emulatore con programmi 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 proxy http durante l'utilizzo della codifica di trasferimento in blocchi. Per ulteriori informazioni, consulta i dettagli del commit.

29.0.9 (7 maggio 2019)

Questo aggiornamento include la seguente correzione:

  • Windows: è stato risolto un problema per cui la videocamera 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 finché il guest non ha completato l'avvio (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 istantanei 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 continua 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 seguenti sezioni descrivono i miglioramenti di Project Marble inclusi in questo aggiornamento:

Miglioramenti al comportamento dell'audio dell'host

A partire dalla versione 28.0.3, l'emulatore blocca l'input audio dall'host per impostazione predefinita.

Se vuoi utilizzare i dati audio dell'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 abilitare l'audio host utilizzando l'opzione -allow-host-audio e puoi utilizzare i seguenti comandi ADB per attivare o disattivare rispettivamente i dati audio dell'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 nell'emulatore sono state ridotte all'elenco seguente:

  • Linux-vdso.so.1
  • Libutil.so.1
  • Libm.so.6
  • Libdl.so.2
  • Librt.so.1
  • Libpthread.so.0
  • Libgcc_s.so.1
  • Libc.so.6
  • ld-linux-x86-64.so.2

Aggiornamento delle librerie UI di Qt alla versione 5.12 LTS

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

  • 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 con alcune installazioni Linux contenenti versioni incompatibili di alcune librerie dipendenti da Qt, ora pacchettizzeremo 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 gestire l'utilizzo della CPU, l'emulatore ora esegue i seguenti comandi ADB in un avvio a freddo dopo aver ricevuto un segnale boot complete:

adb shell settings put screen_off_timeout 214783647
Questo comando aumenta il timeout per lo spegnimento dello schermo in modo che l'emulatore possa essere utilizzato in modalità a 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 riduce notevolmente l'utilizzo della CPU in background nella schermata Home e in Avvio app quando l'app è attiva.
Questo comando viene eseguito in aggiunta al comportamento predefinito dell'emulatore che prevede la disattivazione dell'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 di CPU e 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 consente di stampare ogni volta che un'operazione di input o di 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.
  • L'overhead del loop principale QEMU di I/O su macOS è stato notevolmente ridotto sostituendo il loop principale basato su select() con un loop principale basato su kqueue.
  • Dimensione del buffer di logcat aumentata a 2 MB per risolvere problemi con EOF inatteso quando si esegue 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 di CPU e RAM dell'emulatore tramite le statistiche sulle prestazioni, accessibili da Controlli estesi > 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 alle segnalazioni 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 nell'arco di 3 secondi. Questa modifica aumenta la probabilità che l'emulatore sia in grado di avviare istanze -read-only simultanee di un AVD se altre istanze scrivibili di 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 di contrazioni e frame errati visualizzati sui sistemi con GPU Intel durante l'utilizzo di 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 verificavano sull'host in glTexSubImage2D durante l'aggiornamento di determinati buffer Gralloc (con formato RGB 565, RGB10A2, RGB(A)16F).
  • È stato risolto un problema di visualizzazione nelle immagini di sistema 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 creare 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 maggiori 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 HAXM. Questa correzione potrebbe risolvere alcuni arresti anomali e condizioni di gara.
  • È stato risolto un arresto anomalo che si è verificato con determinati pattern di salvataggio e caricamento di snapshot dalla UI 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 dispositivi pieghevoli

L'emulatore ora include profili hardware per i dispositivi pieghevoli. Per utilizzare questi nuovi profili hardware, devi avere Android Studio 3.5 Canary 10 o versioni successive.

Esistono due profili hardware pieghevoli che puoi utilizzare per creare una durata di visualizzazione media:

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

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 creano target sdk_phone_x86 o sdk_phone_x86_64 (userdebug, eng varianti) sul ramo master AOSP ora possono eseguire un emulatore abilitato per 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 Vulkan di Skia.

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 può non riuscire a mappare la memoria coerente Vulkan al guest e arresta l'emulatore. Questo problema verrà risolto in un prossimo aggiornamento di HAXM.

Emulatore di flussi 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 inviati 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 i 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 tramite 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 3.7.0 o versioni 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 dalle librerie condivise (tra gli altri problemi).

Come primo passo per risolvere il problema, abbiamo introdotto una variante del programma di avvio dell'emulatore con 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 headless, eseguilo dalla riga di comando come di consueto, ma sostituisci la chiamata binaria 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 programmi binari del 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 una correzione del backporting per il problema "Visualizzazione errata durante il ripristino delle immagini di sistema Android Q da un'istantanea".
  • 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 usare 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 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:

Input audio dell'host 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 l'opzione andando a Controlli estesi > 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 mitigare il problema disattivando l'input audio dell'host perché il costo della CPU è causato principalmente dal tempo necessario per arrivare all'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 riavvio rapido. (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 unauthorized non standard.ANDROID_SDK_HOME
  • È 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 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 durata di visualizzazione media con gli stessi argomenti -wifi-server-port e -wifi-client-port:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • È stato aggiunto il supporto di più webcam su Windows tramite l'acquisizione di dimensioni dei fotogrammi incompatibili e il ridimensionamento dinamico per adattarle all'impostazione della videocamera nell'ospite Android.

28.0.16 (novembre 2018)

Questo aggiornamento include diverse nuove funzioni, miglioramenti a funzioni 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:

  • Riduzione dell'utilizzo della memoria dell'emulatore durante i test a lunga esecuzione. 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 QEMU AIO poteva trapelare su Windows.

Esegui contemporaneamente più istanze di un singolo AVD

Ora puoi avviare più istanze dello stesso AVD ed eseguirle contemporaneamente. Le istanze che avvii dopo la prima istanza sono di sola lettura e le relative modifiche 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 raggruppato lo strumento a riga di comando qemu-img, che ti consente di pre-eseguire il commit dei file QCOW2 prima di avviare 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

Pre-allocando e mappando la RAM guest come file, l'emulatore ora può salvare gli snapshot di Quickboot in fase di runtime, invece di svolgere tutto il lavoro all'uscita. Se al momento riscontri lunghi salvataggi durante la chiusura degli emulatori, abilita questa funzionalità per migliorare le prestazioni 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 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 possibilità che lo snapshot di Quickboot venga sovrascritto involontariamente ed evita percorsi di fallback lenti che non utilizzano snapshot Quickboot supportati da 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 opzioni diverse.
  • 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.
  • Abbiamo reso le icone di notifica dell'Avvio rapido più accessibili per gli utenti daltonici.

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 vincolato al momento del caricamento 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. L'emulatore ora esegue l'override di tutte le variabili di ambiente correlate alla scalabilità 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 è in grado di aggiornare l'orientamento, la latitudine e la 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.
  • Risolto un problema per cui la posizione GPS virtuale non veniva aggiornata periodicamente a meno che la finestra dei controlli estesi non venisse aperta almeno una volta.

Fotocamera

Su Windows, ora sono supportate più webcam perché l'emulatore ridimensiona dinamicamente i fotogrammi 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, l'emulatore ora ridimensiona automaticamente la partizione dei dati utente a 6 GB quando viene eseguito con una nuova durata di visualizzazione media del Play Store.

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à ADB in quella directory. Tuttavia, può 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 è disponibile della RAM, 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 di sistema dedotte.
  • 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. (Problema 37070892)
  • È stato risolto un problema su Windows per cui l'orologio dell'emulatore non si trovava 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 ingannevoli 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 potrebbero essere danneggiate durante il caricamento dello snapshot.
  • È stato risolto il problema per cui la finestra dell'emulatore avrebbe avuto un'immagine residua o un teletrasporto fuori schermo quando si riprendeva uno snapshot in cui l'orientamento del dispositivo era diverso dall'orientamento predefinito della durata di visualizzazione media.
  • 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 dei dischi. 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 della fine del ciclo di vita per la versione a 32 bit dell'emulatore Android. Tuttavia, stiamo cercando attivamente feedback o dubbi in merito a questa futura modifica.

Fateci sapere in Issue Tracker se attualmente usate la versione a 32 bit dell'emulatore Android in esecuzione su Windows e fateci sapere come possiamo collaborare al meglio con voi in futuro.

27.3.10 (agosto 2018)

Questo aggiornamento include la seguente correzione di bug:

Correzione della configurazione delle dimensioni della RAM

Alcuni utenti hanno segnalato che l'emulatore è lento. Abbiamo identificato una possibile causa per cui la dimensione della RAM dell'AVD nel file config.ini dell'AVD 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 il file config.ini dell'AVD non elenca 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 hanno avuto difficoltà a diagnosticare il motivo per cui Windows Hypervisor Platform (WHPX) non è riuscito a inizializzarsi quando hanno attivato un emulatore WHPX. Per aiutarti a diagnosticare questi problemi, abbiamo aggiunto altri messaggi di errore 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 aprire i controlli di registrazione dello schermo anche premendo Ctrl + Maiusc + R (Comando + Maiusc + R su Mac).

Per avviare la registrazione dello schermo, fai clic sul pulsante Avvia registrazione nella scheda Registrazione dello 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.

Fotocamera per 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 ti consente di sperimentare la tua esperienza AR in un ambiente virtuale.

Per informazioni sull'utilizzo della videocamera della scena 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. Per gli AVD con Google Play Store attivato è presente una scheda Google Play nella finestra di dialogo Controlli estesi che fornisce un comodo pulsante per aggiornare Google Play Services sul dispositivo.

Istantanee

Ora puoi caricare uno snapshot di avvio rapido senza riavviare l'emulatore. Per caricare uno snapshot, apri la finestra Controlli 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 della UI Android con Skia, che può essere eseguito in modo più fluido ed efficiente.

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

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

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

Fotocamera

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

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.
  • Telefono e SMS ora sono disattivati correttamente quando è attiva la modalità aereo.
  • È 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 continui a riscontrare blocchi o altre instabilità, segnala il 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 corrente e una versione di anteprima di Android Studio, puoi utilizzare Android Emulator per eseguire applicazioni di realtà aumentata create con ARCore. Per requisiti e istruzioni dettagliati, 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 per cui, a volte, l'acquisizione con la webcam produceva un'immagine distorta o completamente verde.
    • È stato risolto un problema che consentiva di visualizzare il seguente messaggio anche in assenza di un reale blocco: "emulator: ERROR: abbiamo rilevato un "Qt event loop" del thread inutilizzato. 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 frame:

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

  • 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.
    • In molti casi l'emulatore riduce il tempo necessario per salvare uno snapshot, salvando solo la differenza tra lo stato attuale e lo snapshot salvato in precedenza.

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

  • L'emulatore è stato aggiornato con QEMU 2.9.

    Ecco alcuni miglioramenti significativi:

    • 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:

    Ora il renderer Swiftshader dell'emulatore è pienamente 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 risolto il problema di blocco durante l'utilizzo del backend di rendering Swiftshader con AVD a bassa risoluzione.

27.0.5 (gennaio 2018)

  • ANGLE per il rendering su Windows è ora disattivato per impostazione predefinita.

    Se ANGLE funziona meglio per te, puoi riattivarlo con il flag -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 Maiusc+B non digitava il carattere B maiuscola.

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 estesi 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 un'istantanea dell'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 estesi, le opzioni "SwiftShader" e "ANGLE" per l'impostazione del renderer OpenGL ES in Impostazioni > Avanzate ora utilizzano le varianti *_indirect.

  • Varie altre correzioni di bug.

26.1.4 (agosto 2017)

Questa è una release 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
  • Disattiva GLES3 durante l'esecuzione sul 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.
  • La nuova versione di HAXM 6.2.0 è ora disponibile (controlla in SDK Manager) e include i seguenti aggiornamenti:
    • Utilizzo della memoria migliorato. Il picco di memoria del set di lavoro bloccato da HAXM non è più uguale alla dimensione della RAM dell'unità di elaborazione, ma viene impaginata on demand. Ciò dovrebbe consentire di eseguire l'emulatore in modo più affidabile su macchine con quantità inferiori di 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.
    • È stato risolto un problema per cui l'emulatore passava a un renderer software a causa del rilevamento della presenza di GPU Intel meno recenti, ma in realtà l'emulatore era 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 che 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 i migliori risultati con l'emulazione GPU, consigliamo di utilizzare una GPU NVIDIA o AMD discreta oppure 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 (attualmente solo a livello di 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 temevano che le immagini di sistema del Play Store con 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.
  • 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.
  • È stato 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 funzioni e miglioramenti delle prestazioni.

  • È stata aggiunta la possibilità di definire una configurazione del proxy HTTP personalizzata nei controlli estesi (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.

  • 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. Esecuzione: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. Apri un visualizzatore VNC, ad esempio coldvnc Viewer, per collegarti 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, utilizza 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 della guida dei controlli estesi (fai clic su Altro , quindi su Guida e Guida dell'emulatore). Se fai clic su Segnala un bug, si apre una finestra di dialogo in cui puoi visualizzare i dettagli della segnalazione di bug, ad esempio lo screenshot, le informazioni 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 gli host Android O (livello API 26) e Windows/Linux supportano OpenGL ES 3.

    • Se riscontri problemi con OpenGL ES 3, aggiungi la rigaGLESDynamicVersion = off in ~/.android/advancedFeatures.ini.
  • Ora l'emulatore utilizza FBO OpenGL offscreen per tutto il rendering, ad eccezione del posting dell'immagine 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 rilevi 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 rotativa nella finestra espansa.
  • La finestra di dialogo di Crash Reporting ora è ridimensionabile e non reimposta più Quando inviare i report sugli arresti anomali a Ask 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 una macchina 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 cambiano i display su un computer Mac. (Issue 268296)
  • È stato corretto un problema per cui l'emulatore occupa il 300% della CPU e lo mantiene dopo la ripresa del 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. (Numero 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.
  • Android SDK Tools versione 26.0.0 o successiva.

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.
  • Prestazioni di riproduzione video migliorate. 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. Attualmente, il formato 1080p30 dovrebbe essere facilmente raggiungibile dalla 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ò determina una serie di miglioramenti delle prestazioni per l'emulatore, tra cui:
    • Velocità di push/pull ADB migliorata.
    • Migliore supporto dell'accelerazione 3D.
    • Maggiore reattività generale dell'emulatore.
    • Prestazioni grafiche migliorate.
  • L'emulatore ora utilizza i buffer sul lato GPU (glBindBuffers/glBufferData) quando l'ospite li richiede, riducendo l'overhead 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 "con cancellazione dei dati". Quando crei o reimposti un AVD, ora l'emulatore scrive sul disco 100-200 MB di dati, anziché 2 GB o più.
  • Diversi 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 della finestra e il caricamento e la chiusura della finestra dei controlli avanzati.