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 disponibili aggiornamenti in SDK Manager.

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

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

Per informazioni sui problemi noti e per la risoluzione dei problemi, consulta Risoluzione dei problemi dell'emulatore.

34.2.15 (31 maggio 2024)

  • Correzione di vari arresti anomali relativi alla modalità swangle e alla pulizia dell'inserzionista

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 sull'istantanea
  • [Correzione di bug] I pulsanti del tastierino direzionale non funzionano
  • [Correzione di bug] È stato risolto il problema rilevato su Windows che impediva l'avvio dell'emulatore in alcune condizioni quando si utilizzano le modalità GPU con ANGLE e che restituisce 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 della grafica software con questa versione, usa -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
  • Compatibilità per gli aggiornamenti dell'API Google Maps utilizzati nelle funzionalità relative alla posizione nei Controlli estesi dell'emulatore, in corso alla fine di maggio.
  • Correzioni di arresti anomali ad alto impatto
  • Varie correzioni relative alla durata di visualizzazione media di Pixel
  • Aggiornare la libreria grafica utilizzata per il rendering software
  • [Correzione di bug]Problema 225541819 L'avvio dell'emulatore di arresti anomali di Chrome su x86_64
  • [Correzione di bug]Il 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] Problema n. 312677259: è stato corretto il blocco dello schermo nell'emulatore incorporato dopo il ridimensionamento della finestra.

34.1.18 (29 feb 2024)

Testato con Android Studio Iguana Stable.

  • Sono stati aggiunti dispositivi all'emulatore, tra cui:
    • Pixel Fold
    • Pixel Tablet
    • Pixel 8
    • Pixel 8 Pro
    • Pixel 7a
  • Test di integrazione gRPC: gli endpoint gRPC sono ora disponibili per i test instrumentati in esecuzione all'interno dell'emulatore che consentirebbero di testare scenari realistici. Questa funzionalità consente agli sviluppatori di interagire in sicurezza con l'endpoint gRPC ospitato da Android Emulator dai test di strumentazione Android.
  • Varie correzioni di bug
    • Correzione di bug: miglioramenti dell'usabilità del dispositivo pieghevole.
    • Correzione di bug: regola la posizione dell'emulatore dopo la rotazione.
    • Correzioni di arresti anomali

33.1.24 (28 dic 2023)

Test eseguito con Android Studio Hedgehog Stable e Iguana beta 1.

  • Risolvi il problema dell'emulatore della webcam che non consente la registrazione dello schermo in formato mp4.
  • È stato risolto il problema che causava l'arresto anomalo dell'emulatore sulla durata di visualizzazione media di Pixel Fold quando quest'ultimo è aperto durante una registrazione dello schermo.
  • Risoluzione del problema per cui Pixel Fold mostra una skin dello smartphone diversa con una tastiera scollegata e inutilizzabile (risolto su Windows, Mac Intel e Linux)
  • È stato corretto il glitch nei sensori virtuali in modalità autonoma (risolto su Windows, Mac Intel e Linux)
  • Le correzioni per alcuni arresti anomali, in particolare durante la chiusura dell'emulatore, sono state risolte

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
  • Upgrade del backend grafico: abbiamo implementato il protocollo gfxstream per il nostro backend grafico. Questo miglioramento aumenta le prestazioni grafiche complessive e la stabilità del sistema. Inoltre, introdurremo il supporto di Vulkan 1.3 a partire dall'immagine di sistema con l'API 34
  • Richiesta di funzionalità: opzione per disattivare il gesto Pizzica per eseguire lo zoom o riassegnare il relativo tasto di scelta rapida
  • [Correzione di bug] Problema n. 302562962 Risolvere l'arresto anomalo della webcam dell'emulatore quando si utilizzavano MacOS sonoma
  • [Correzione di bug] Problema n. 293503871 È stato risolto il problema per cui l'impostazione "Microfono" non veniva salvata al riavvio dell'emulatore
  • [Correzione di bug] Problema n. 270386314 È stato corretto l'errore dell'animazione per cui la barra laterale rimane aperta una volta ridotta a icona la durata di visualizzazione media dello schermo
  • [Correzione di bug] Problema n. 154896775 Correggere lo strumento di invio di bug

32.1.15 (29 ago 2023)

Testato con Android Studio Giraffe Patch 1 e Hedgehog Canary 16.

  • Conformità ai requisiti GAS HW per i sensori nell'emulatore AAE
  • [Correzione di bug] Problema n. 266201208 L'SMS ebraico non viene inviato sull'API 33
  • [Correzione di bug] Problema n. 257097404 L'emulatore non mostra l'ora corretta dopo la riattivazione dell'host su API 29 e 30
  • [Correzione di bug] Problema n. 228201899 Impossibile visualizzare Google Maps all'interno dei Controlli estesi dell'emulatore di 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 API 29 e API 30.
  • [Correzione di bug] Problema n. 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.

  • Aggiungi il supporto per la durata di visualizzazione media di Pixel Fold e Pixel Tablet.
  • Migliora il 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] Problema n. 275397905 Elevato livello di arresto anomalo su Android Emulator M1 durante lo spostamento ripetuto dello stato attivo del cursore dentro e fuori l'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] Problema n. 267647323 La rete non funziona sull'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] Problema n. 225541819 L'avvio dell'emulatore di arresti anomali di Chrome su x86_64
  • [Correzione di bug] Problema n. 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
  • Disattiva l'utilizzo di link simbolici mentre decomprimi l'emulatore Android durante l'installazione
  • Correggi l'arresto anomalo nell'emulatore-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
  • Aumenta la dimensione del disco per 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 n. 183139207: Problemi audio associati all'attivazione del microfono dell'emulatore
  • [Correzione di bug] Problema n. 229764024: bug AVD di tocco fisso che provoca problemi di comportamento dell'interfaccia utente
  • [Correzione di bug] Errore durante l'avvio dell'API 33 AVD su Mac M1.
  • [Correzione di bug] Problema n. 243053479: Velocità della rete lenta dopo l'aggiornamento dell'emulatore
  • [Correzione di bug] Problema n. 244617627: Posizione di Maps non funzionante su Windows e Linux
  • [Correzione di bug] Problema n. 232971796: Pulsante "Dispositivo di chiamata" non funzionante nella pagina Controlli estesi > Telefono
  • Aggiorna Android Emulator a minigbm
  • Migrazione degli script di build in Python3

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. In caso di problemi o arresti anomali con questa versione stabile più recente, segnala un bug e valuta la possibilità di scaricare una versione funzionante in precedenza dagli archivi dei 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.
  • Aggiornamento del design pieghevole della durata di visualizzazione media e impostazioni predefinite
  • Pulsanti dell'emulatore Wear aggiornati
  • Miglioramenti allo streaming audio gRPC
  • Comando della console dell'emulatore ridimensionabile aggiunto
  • Correzione Chrome per API 31
  • [Correzione di bug] Autorizzazione dell'Account Google non riuscita con GmsCore 21.42.18

31.2.10 (20 aprile 2022)

Testato con Android Studio Dolphin Canary 8 e Chipmunk RC 1.

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • Aggiungi un'utilità per caricare le funzioni Vulkan con fallback
  • [Correzione di bug] Correggere l'errore di build gcc8

31.2.9 (23 marzo 2022)

Testato con Android Studio Dolphin Canary 7.

Questo aggiornamento include la seguente correzione:

  • [Correzione di bug] Ignora la pressione di memoria durante il salvataggio dell'istantanea 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 di bug] Impossibile accedere alle app
  • [Correzione di bug] Problema n. 215368358: "adb reboot" sulla piattaforma Intel ha un arresto anomalo con "richiesta di arresto vCPU"

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 di usura all'emulatore Wear OS.
  • Tutte le proprietà del veicolo sono state modificate nella scheda VHAL.
  • [Correzione di bug] Autorizzazione dell'Account Google non riuscita con GmsCore 21.42.18.
  • [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 un controllo KVM per la creazione di una durata di visualizzazione media locale.

31.1.3 (18 gennaio 2022)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • Porte della console abilitate per Fuchsia.
  • Quando ridimensiona una finestra multi-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:

  • Aggiunta la possibilità di ridimensionare facilmente le finestre delle dimensioni di un computer o di un tablet.
  • Aggiunto il supporto per l'input multi-touch da dispositivi host compatibili.
  • VirtioWifi: aggiunto il supporto della rete Tap.
  • Input rotatorio abilitato per le immagini di sistema Wear.
  • È stato risolto il problema di configurazione dell'audio gRPC.
  • Aggiornamento della funzionalità di riproduzione dell'emulatore SensorReplay per supportare i sensori Android standard.
  • Collegato l'emulatore 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.
  • Aggiunto il supporto per virtio-vsock nello spazio utente.
  • Le immagini di sistema future utilizzeranno virtio-console per i messaggi logcat e kernel.
  • Accelera il rendering Vulkan.
  • 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.
  • Aggiunto il supporto degli snapshot per i trasporti 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 sulle immagini di sistema più recenti.
  • Aggiunto il supporto di un sensore del battito cardiaco agli emulatori Wear.
  • Rimosso il backend Vulkan di libportability.
  • Aggiunto il supporto per altre funzionalità nel simulatore del modem.

30.0.26 (16 agosto 2020)

Questo aggiornamento include diverse nuove funzioni, miglioramenti a funzioni esistenti e correzioni di bug.

Supporto per i pieghevoli grazie al sensore della cerniera virtuale e alla vista 3D

  • Aggiunto il supporto per i sensori a cerniera per i dispositivi pieghevoli. Ciò richiede un'immagine di sistema Android 11 e una configurazione AVD futura. I parametri della vista pieghevole 3D e della cerniera ora sono integrati con i preset pieghevoli esistenti. Quanto segue può essere utilizzato, ad esempio, con il file config.ini dell'AVD pieghevole 7.3:

    hw.sensor.hinge = yes
    hw.sensor.hinge.count = 1
    hw.sensor.hinge.type = 1
    hw.sensor.hinge.ranges = 180-360
    hw.sensor.hinge.defaults = 180
    hw.sensor.hinge.areas = 54.7-0
    hw.sensor.posture_list=4, 3
    hw.sensor.hinge_angles_posture_definitions=210-360, 180-210
    hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
    
  • I dispositivi pieghevoli ora hanno anche un parametro di sottotipo. La proprietà hw.sensor.hinge.sub_type = hinge/fold config.ini è ora disponibile. Per saperne di più, leggi il post del blog Developing for Android 11 with Android Emulator.

  • Il sensore della cerniera è ora attivo per impostazione predefinita.

  • Se è configurato un dispositivo pieghevole, l'emulatore ora invia all'ospite aggiornamenti dei sensori dell'angolo della cerniera e modifiche alla 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 host Swiftshader arm64), ma è possibile utilizzare anche un set compatibile di librerie libEGL/libGLESv2 GPU host sostituendo lib64/gles_swiftshader con queste e quindi riavviando 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
    
  • È in corso il supporto per Apple Silicon.

Supporto di virtio-gpu

  • Aggiunto il supporto sul lato host per le prossime risorse BLOB coerenti con host virtio-gpu.
  • 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 un'immagine di sistema futura, l'emulatore sarà in grado di eseguire tutta la grafica con uno stack basato su vCPU.

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>. (Questo dovrebbe già funzionare anche su Linux e macOS)
  • Le librerie WebRTC sono state aggiornate alla versione M83.
  • L'emulatore ora supporta lo streaming audio nei container su WebRTC.
  • L'endpoint darwinn pipe è stato rimosso.
  • La decodifica CUDA VPx per il video è ora disponibile, se la decodifica CUDA VPx è disponibile nell'hardware, tramite la variabile di ambiente ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.
  • Su macOS, SSE 4.1 e 4.2 sono ora disponibili all'interno del guest Android.
  • Su macOS, INVTSC è ora abilitato per impostazione predefinita. Questo può migliorare l'accuratezza della misurazione del tempo da parte dell'ospite.
  • Ora teniamo traccia del pannello di controllo esteso selezionato dall'utente nelle metriche.
  • L'emulatore Linux ora utilizza l'orologio paravirtualizzato KVM quando la versione del kernel guest è >= 5.4 (immagini di sistema R o successive).
  • L'emulatore ora utilizza LZ4 per decomprimere i kernel guest, rendendolo compatibile con la pipeline dei kernel moderna.
  • Sono stati aggiunti comandi della console per ottenere la directory AVD dell'emulatore, il percorso del file di rilevamento nel caso d'uso incorporato in Studio e il percorso degli snapshot:

    adb emu avd path # Obtains path to AVD directory
    adb emu avd discoverypath # Obtains path to discovery file
    adb emu avd snapshotspath # Obtains path to snapshots folder
    adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
    
  • Per consentirti di risparmiare più facilmente spazio verticale sullo schermo, abbiamo aggiunto un'opzione per nascondere il frame del dispositivo per la durata di visualizzazione media corrente in Controlli estesi > Impostazioni. Per nascondere a livello globale i frame dei dispositivi per tutti gli AVD, abbiamo reso disponibile il flag della 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 menu a discesa nella pagina della rete mobile per attivare e disattivare il supporto della misurazione.

    • È stato anche aggiunto il comando della console per lo stesso scopo: gsm meter on|off
  • Upgrade della toolchain / build a C++17.

Correzioni: emulatore incorporato

  • Ora gli appunti dovrebbero funzionare.
  • È stato risolto il problema per cui i caratteri maiuscoli venivano restituiti come caratteri minuscoli nell'emulatore.
  • È stato risolto il problema di caricamento del token della console da un percorso Unicode nelle finestre.
  • È 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.
  • Utilizzando l'emulatore Linux incorporato in Studio, abbiamo riscontrato che, se l'operazione viene eseguita 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 del posizionamento 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 potenzialmente diversa basata sull'UID dell'utente: /run/user/&lt;uid>.

  • Emulatore integrato: i dispositivi con angoli o tacche arrotondati ora modificano correttamente il layout per fare spazio agli angoli e agli incavi. 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 di loopback.
  • Aggiunta della funzionalità F16C CPUID nell'emulatore Linux con correzioni dei problemi che eseguono alcune applicazioni ARM64 tramite traduzione NDK; macOS/Windows in corso.
  • È stata corretta la riproduzione del percorso gpx/KML per seguire i timestamp.
  • È stato corretto il problema di rimbalzo all'avvio per i MacO.
  • Se hw.audioInput=no e hw.audioOutput=no in config.ini, l'audio dell'emulatore ora è correttamente disattivato.
  • Risolto un problema per cui se la finestra dell'emulatore veniva ridotta a icona mentre quella dei controlli estesi era aperta ma non attiva, la finestra dei controlli estesi 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 discontinuo in cui il Wi-Fi non era connesso all'avvio dell'emulatore.
  • È stato risolto il problema di blocco dell'uscita quando l'emulatore emetteva i comandi della shell con timeout lunghi o indefiniti.
  • È stato aggiornato il database del pc con correzioni per supportare meglio immagini di grandi dimensioni passate a -initrd; il precedente BIOS utilizzava un metodo molto inefficiente.
  • È stato risolto l'arresto anomalo durante la terminazione 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 durante la scrittura sui file. Per ulteriori informazioni, consulta le istruzioni per la build di Windows.
  • Pulsante di zoom disattivato per gli annunci di visualizzazione media pieghevoli, causando problemi.
  • Ora l'emulatore segnala 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 poteva avviare immagini di sistema recenti senza accelerazione.
  • È stato corretto il danneggiamento della memoria o l'arresto anomalo all'avvio da un rilevatore completato.
  • È stata corretta la perdita di memoria durante sessioni di registrazione dello schermo di lunga durata.
  • Icone dell'emulatore aggiornate per riflettere il branding di Studio 4.1.
  • Aggiunto un supporto migliore per il rilevamento delle sessioni remote su Windows.

Correzioni: decodifica di grafica e video

  • È stato risolto un problema per cui l'ultimo gioco di Asphalt 9 era stato visualizzato con una schermata nera.
  • È stato rimosso lo spam sullo svuotamento del buffer mappato con NULL.
  • È stata corretta una condizione di gara durante l'abbattimento dello stato Vulkan all'uscita 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 regressione recente per cui non è stato possibile compilare i shaper GLSL ES 1.00 con nomi di variabili come isampler2D.
  • È stato aggiornato il traduttore Shar ANGLE con varie correzioni che risolvono possibili errori nella compilazione di Shader su Linux.
  • Ora l'emulatore viene arrestato in modo anomalo se il framebuffer blit shaker di base non viene compilato, per tenere traccia del fenomeno.
  • Aggiornato il traduttore Shar ANGLE per stare al passo con l'upstream di ANGLE. In questo modo è stato risolto un problema relativo al danneggiamento della memoria durante la traduzione e la piegatura costante di OpenGL ES che utilizzavano matrici non quadrate. Il traduttore di Shader è ora una libreria condivisa separata, libshadertranslator.dll.
  • È stato risolto un problema di inizializzazione di Vulkan in alcuni driver GPU, per cui alcune funzioni del dispositivo 1.1 non sono state trovate.
  • Vulkan: abbiamo ripristinato l'utilizzo del caricatore predefinito in quanto favorendo il sistema Il caricatore Vulkan ha causato problemi in alcune configurazioni, quindi cercheremo 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 il problema di emulazione di GL_ALIASED_POINT_SIZE_RANGE in cui l'enum non era supportata 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 D3D9 ANGLE è stata rimossa qualche versione fa, ora cambiamo automaticamente anche gli utenti che si trovavano su quel renderer a d3d11 ANGLE se era 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 operazioni di rotazione sull'host nei trasferimenti dall'host all'ospite.
  • È stata aggiunta un'ulteriore registrazione di debug per i casi in cui l'inizializzazione dell'emulazione OpenGLES non va a buon fine.
  • È stato risolto un problema relativo allo sfarfallio o alla mancata visualizzazione dei video di YouTube al caricamento dell'istantanea.
  • Per il momento siamo tornati alla decodifica software per libvpx, perché abbiamo riscontrato problemi con la decodifica hardware CUDA di libvpx. Se disponi di un'implementazione di decodifica hardware CUDA supportata sul lato host, la decodifica hardware di libvpx può essere riattivata tramite la variabile di ambiente ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.

30.0.10 (30 aprile 2020)

Questo aggiornamento include il supporto per l'esecuzione dell'emulatore direttamente in Android Studio e sui dispositivi virtuali con la modalità finestra in formato libero 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, spostarti rapidamente tra l'emulatore e la finestra dell'editor utilizzando i tasti di scelta rapida e per organizzare il flusso di lavoro dell'IDE e dell'emulatore in un'unica finestra dell'applicazione.

Modalità finestra in formato libero

Ora puoi creare una durata di visualizzazione media con modalità finestra libera attivata selezionando il profilo hardware per tablet in formato libero da 13,5 pollici durante la creazione di un dispositivo virtuale in Android Studio. Questo profilo hardware richiede un'immagine di sistema con Android 11 Anteprima per gli sviluppatori 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 delle immagini di sistema di Android 11.

30.0.0 (19 febbraio 2020)

Questo aggiornamento include immagini di sistema Android 11 (livello API 30) e prestazioni migliorate quando vengono eseguiti programmi binari ARM.

Immagini di sistema Android 11

Ora puoi creare una durata di visualizzazione media che esegue Android 11 selezionando una delle immagini di sistema del livello API 30 disponibili:

  • x86: include le ABI x86 e ARMv7.
  • x86_64: include le ABI x86, x86_64, ARMv7 e ARM64.

Supporto per i file binari ARM sulle immagini di sistema Android 9 e 11

Se prima non potevi utilizzare Android Emulator perché la tua app dipendeva dai file binari ARM, ora puoi usare 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 programmi 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 vengono eseguiti su immagini di sistema Android 11 x86 e x86_64. Prendi in considerazione la possibilità di sviluppare app 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 fornita invece di compilare libgcc in modo statico.
  • Linux: 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 guest x86 a 32 bit (qemu-system-i386). Questa funzionalità consente l'esecuzione di immagini x86 a 32 bit per i livelli API 26 e precedenti con la build headless. Tieni presente che per i guest x86 a 32 bit con API 27 e versioni successive, l'emulatore utilizza il motore a 64 bit (qemu-system-x86_64), perché in queste immagini di sistema, mentre lo spazio utente è a 32 bit, il kernel è a 64 bit. Android Studio utilizza il kernel per selezionare i motori di emulazione.
  • Ora puoi specificare percorsi 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 per cui, a volte, l'emulatore non si avviava con un messaggio "Richiesta di arresto delle vCPU".
  • È stato risolto un problema relativo a una barriera di 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 per la scena virtuale e la webcam non funzionavano sull'emulatore.

29.0.8 (6 maggio 2019)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • Aggiunto il supporto per più display hardware virtuali quando è presente un servizio ospite da enumerare e impostare ogni display. In un prossimo aggiornamento dell'immagine di sistema dell'emulatore verranno inclusi più display hardware virtuali.
  • È stata aggiunta una nuova opzione della riga di comando: -delay-adb. Questa opzione sopprime l'elaborazione dei pacchetti ADB fino al completamento dell'avvio del guest (tramite un avvio a freddo). Questa opzione consente di risolvere i problemi che potrebbero verificarsi se utilizzi l'emulatore in un ambiente CI che riavvia l'emulatore e utilizza contemporaneamente DMMS.
  • È stato corretto un errore che si verificava durante il caricamento di snapshot, dove glIsRenderbuffer restituiva il valore errato.
  • Sono stati risolti alcuni problemi di stato inattivo al riavvio dell'ospite Android.
  • Windows: sono stati risolti i problemi che impedivano l'avvio dell'emulatore quando il nome utente Windows conteneva spazi o caratteri non ASCII.

Problemi noti

  • La UI degli snapshot è disabilitata per le immagini di sistema Automotive, perché al momento gli snapshot non sono supportati per queste immagini di sistema.

29.0.6 (1 maggio 2019)

Questo aggiornamento include diverse nuove funzioni, miglioramenti a funzioni esistenti e correzioni di bug.

Rimozione del supporto per Windows a 32 bit e QEMU1

Per una migliore gestione dell'emulatore, non forniamo più programmi binari QEMU1 e Windows a 32 bit. Se si utilizza Windows a 32 bit, non è possibile eseguire l'aggiornamento alla versione 29.0.6.

Requisiti per le immagini di sistema Android Q

Se vuoi eseguire un AVD che utilizza un'immagine di sistema Android Q, devi utilizzare la versione 29.0.6 (questa versione di release) o successive.

Rinnovo del progetto in marmo

Questo aggiornamento continua il nostro lavoro in merito all'iniziativa Project Marble annunciata all'Android Developer Summit nel novembre 2018. Per ulteriori informazioni su altri miglioramenti di Project Marble nelle release precedenti, vedi Android Emulator: Project Marble miglioramenti.

Per questo aggiornamento, la maggior parte degli sforzi di Project Marble è stata dedicata alla riduzione dell'utilizzo delle risorse dell'emulatore, ad esempio la riduzione dell'utilizzo della CPU da parte dell'emulatore in caso di inattività. Abbiamo incluso anche alcune modifiche che semplificano l'utilizzo dell'emulatore in una più ampia varietà di ambienti e abbiamo risolto i problemi di qualità generali.

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 l'opzione andando a Controlli estesi > Microfono e attivando Il microfono virtuale utilizza l'input audio dell'host. Questa opzione viene disabilitata automaticamente a ogni riavvio dell'emulatore.

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 alle build di emulatore headless

A partire dalla versione 28.0.25, l'emulatore include un'opzione di build headless che può essere eseguita senza la UI. Puoi utilizzare build headless per configurare l'emulatore per Docker e i flussi di lavoro di integrazione continua (CI).

Con questo aggiornamento, abbiamo apportato ulteriori miglioramenti per consentire l'esecuzione dell'emulatore 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

Upgrade delle librerie dell'interfaccia utente 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 libpng di Qt all'avvio di determinate immagini di sistema, l'emulatore ora utilizza la propria copia di libpng per decodificare le immagini PNG.
  • Per risolvere i problemi relativi ad alcune installazioni Linux contenenti versioni incompatibili di alcune librerie dipendenti da Qt, ora pacchettizzeremo libfreetype, libsoftokn, libsqlite3 e libxkbcommon con l'emulatore.
  • L'emulatore ora utilizza le librerie di windowing native della piattaforma per ottenere le dimensioni del monitoraggio, anziché utilizzare le librerie Qt che hanno restituito risultati inaffidabili.

Ottimizzazioni automatiche della CPU dopo l'avvio a freddo

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 si riduce notevolmente.
Nella modalità di ricarica con alimentazione 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, di conseguenza, della macchina dell'utente, senza 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, questo fornisce automaticamente la mitigazione dell'utilizzo della CPU descritta per il rilevamento hotword dalla release 28.0.23.

Nuove variabili di ambiente per il monitoraggio delle prestazioni

Ora puoi usare due nuove variabili di ambiente per consentire un monitoraggio dettagliato delle prestazioni dell'emulatore e dell'utilizzo delle risorse.

SHOW_PERF_STATS=1
Questa variabile di ambiente consente di monitorare l'utilizzo di CPU e RAM. Il monitoraggio dell'utilizzo della RAM distingue tra utilizzo della grafica e 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).
Useremo questa variabile di ambiente anche per diagnosticare i problemi riscontrati dagli utenti di Windows con un numero maggiore di jank (frame mancanti) 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 in pausa immediatamente tutte le vCPU sull'emulatore tramite i seguenti comandi della console:
    • adb emu avd pause
    • adb emu avd resume
  • L'overhead associato al disegno OpenGL è notevolmente ridotto. Questo miglioramento riduce l'uso della CPU durante la riproduzione delle animazioni nell'emulatore.
  • Ripristino del supporto per il dispositivo di rete virtuale e1000 del QEMU principale. Puoi utilizzare questo dispositivo per configurare l'emulatore in un ambiente di rete con bridge. In un ambiente di rete bridge, l'emulatore viene mostrato sulla rete host e la rete host sull'emulatore.
  • Per avviare l'emulatore vengono ora usati programmi BIOS appropriati per QEMU 2.12.
  • È stato eseguito l'upgrade della versione di 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 inaspettato e instabile durante l'esecuzione di logcat con l'emulatore.
  • Ora l'emulatore esporta la variabile di ambiente LC_ALL=C per impostazione predefinita. Questa modifica risolve i problemi di arresti anomali e di incompatibilità associati all'esecuzione dell'emulatore in diverse lingue.
  • 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. Usa queste statistiche per diagnosticare rapidamente i problemi se l'emulatore apparente utilizzare troppa CPU o RAM.
  • glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE ora usa il risultato della GPU dell'host invece di uno emulato. Questa modifica consente di risolvere i problemi di visualizzazione di immagini e asset a causa di un formato non corretto per la lettura.
  • 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'host.
  • Sono state aggiunte altre informazioni diagnostiche all'interfaccia utente di Report errori. 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.
  • Sono stati aggiunti ulteriori log e stampa ogni volta che OpenGL o l'hypervisor non viene inizializzato.
  • Se l'emulatore non riesce ad avviare un'istanza -read-only simultanea di una durata di visualizzazione media, l'emulatore ora tenta di riavviare la durata di visualizzazione media di -read-only altre tre volte nell'arco di 3 secondi. Questa modifica aumenta la probabilità che l'emulatore sia in grado di avviare le istanze -read-only simultanee di una durata di visualizzazione media, se altre istanze scrivibili dell'AVD non vengono eliminate.
  • Per le immagini di sistema future, l'emulatore ora supporta Hardware Composer 2.0. Questa modifica dovrebbe ridurre l'overhead del driver quando viene eseguita la maggior parte delle animazioni.
  • La build dell'emulatore ora è basata su CMake/Ninja.
  • Nell'interfaccia utente dei controlli estesi dell'emulatore, le linee di divisione nella tabella delle scorciatoie da tastiera sono state ripristinate.
  • Gli utenti possono ora attivare la fornitura al nostro team di metriche di 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 risolti i problemi per cui veniva visualizzata una schermata nera durante l'utilizzo di immagini di sistema Android Q con skin per Pixel 2 XL (o qualsiasi skin con una tacca o gli angoli arrotondati).
  • Risolto un problema per cui l'opzione della riga di comando -partition-size non impostava le dimensioni della partizione dati.
  • È stato risolto un problema per cui, in alcune situazioni, pulseaudio nell'emulatore Linx girava e occupava un intero core della CPU.
  • Sono stati risolti i problemi di accesso alla memoria oltre i 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 Android Q con istantanee in cui la geometria dell'area notifiche era stata visualizzata con un'impostazione non corretta del divisore di istanza.
  • Sono stati risolti alcuni problemi di arresto anomalo e blocco difficili da riprodurre al momento del lancio, a causa della perdita di indicatori da parte di Qt o della presenza di stati incoerenti e incoerenti all'avvio.
  • Sono stati risolti numerosi problemi di contemporaneità. Ora siamo in grado di creare l'emulatore Linux con ThreadSanitizer (TSAN), che può rilevare facilmente i bug altrimenti difficili da riprodurre.
  • Per gli utenti Linux: su alcuni kernel host, il kernel Android ospite può eseguire un errore e uscire in KVM con un errore hardware generico. In questo caso, l'emulatore abort()si è ora in grado di aumentare il debug (in precedenza, l'emulatore si è appena bloccato).
  • Per gli utenti Linux: per praticità con le configurazioni CI, puoi utilizzare la nuova opzione della riga di comando -stdouterr-file <file-name> per reindirizzare stdout e stderr a un file.
  • È stato risolto un problema per cui SO_REUSEADDR veniva utilizzato in modo errato. Per maggiori informazioni, consulta i dettagli del commit.
  • Risolto un problema di lunga data relativo all'emulatore Windows per cui i processi secondari, come i comandi ADB, non si avviavano 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 problemi di incidenti 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 rimaneva vuota quando l'emulatore veniva inizializzato da uno snapshot se era in riproduzione una macro AR al momento del salvataggio dell'istantanea.
  • È stato risolto un problema per cui alcuni utenti con configurazioni di desktop remoti visualizzavano una schermata nera all'avvio dell'emulatore su Linux. Per evitare che questo accada, l'emulatore ora configura esplicitamente MESA_RGB_VISUAL. Per ulteriori informazioni, consulta i dettagli del commit.
  • È stato risolto un problema per cui i pulsanti di rotazione comparivano nelle visualizzazioni di durata media della TV.
  • È stato risolto un problema per cui se l'emulatore era impostato sempre in alto, la finestra dei controlli estesi veniva visualizzata ogni volta che l'emulatore veniva ruotato.

Profili hardware per dispositivi pieghevoli

L'emulatore ora include profili hardware per i dispositivi pieghevoli. Per utilizzare questi nuovi profili hardware, devi 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:

  • 7,3" Pieghevole: 1536 x 2152 aperto, 840 x 1960 piegato 4,6"
  • 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:

  • Fold: Ctrl + F (Command + F su macOS)
  • Espandi: Ctrl + U (Command + U su macOS)

Macro AR

L'emulatore ora include macro AR che possono aiutarti a testare le azioni AR più comuni. Ad esempio, puoi utilizzare una macro per ripristinare lo stato predefinito di tutti i sensori del dispositivo.

Per maggiori informazioni, vedi Eseguire il test delle azioni AR comuni con le macro.

Supporto Vulkan (Windows, Linux)

Gli utenti Windows e Linux possono ora testare le app Vulkan con l'emulatore Android fino a Vulkan 1.1 quando utilizzano un'immagine di sistema compatibile (Android Q Beta 3 o versioni successive per Vulkan 1.1, Android Q Beta 2 per Vulkan 1.0) e una GPU host compatibile (inclusa la maggior parte delle GPU Intel, NVIDIA e AMD del 2014 e successivi).

Per attivare il supporto Vulkan, devi aggiungere i seguenti flag delle funzionalità al tuo file ~/.android/advancedFeatures.ini (crea il file se non esiste):

  • Vulkan = on
  • GLDirectMem = on

Supporto iniziale per sviluppatori 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 lavorano su 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 di tutorial dell'API Vulkan.

Se utilizzi Linux, puoi provare a eseguire questa operazione utilizzando i seguenti comandi:

mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem

Rendering Skia con Vulkan

Le GPU NVIDIA e AMD che supportano Vulkan supportano anche l'interoperabilità zero-copy con OpenGL tramite l'estensione GL_EXT_memory_objects. L'emulatore sfrutta questa funzionalità per fornire un modo completo per eseguire il rendering della UI Android utilizzando le API Skia Vulkan.

Se disponi di una GPU NVIDIA o AMD che supporta Vulkan, utilizza i seguenti comandi per testare il rendering Skia con un'immagine di sistema compatibile (Android Q Beta 3 e versioni successive):

adb shell
su
setprop debug.hwui.renderer skiavk
stop
start

Supporto di macOS per Vulkan

Il supporto di macOS è ancora sperimentale, ma l'emulatore include già le API Swiftshader, MoltenVK e libportability (gfx-rs). Puoi sperimentare 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 di desktop remoti hanno i seguenti problemi di lunga data:

  • L'invio programmatico di comandi di input all'emulatore prevede l'esecuzione di comandi della shell adb, che possono subire un overhead elevato, oppure l'utilizzo della console Telnet, che è più veloce, ma potrebbe non funzionare con determinate configurazioni di rete.
  • Gli utenti CI spesso eseguono emulatori headless, il che può rendere difficile notare i problemi che richiedono che lo schermo sia visibile o interattivo.
  • Gli utenti di Remote Desktop spesso non possono interagire con l'emulatore quando utilizzano il rendering GPU host, perché il rendering GPU è spesso legato ai display non virtuali dell'host.

Per risolvere questo problema, quando viene eseguito su un computer Linux, l'emulatore ora gestisce un servizio gRPC. gRPC è un framework generale per RPC che funziona su HTTP.

Per impostazione predefinita, il servizio gRPC dell'emulatore è disabilitato, ma puoi attivare il servizio utilizzando la seguente opzione della riga di comando, dove <port> è la porta su cui l'emulatore deve gestire le richieste gRPC (di solito 5556):

-grpc <port>

Una volta avviato il servizio, i comandi gRPC possono essere inviati dai client. L'attuale set 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 su HTTP. HTTP consente inoltre di inviare i comandi in configurazioni di rete aggiuntive.
  • I comandi degli screenshot possono essere inviati per eseguire query sulla schermata corrente, anche se l'emulatore è in esecuzione headless. Per l'interattività, gli eventi di input possono anche essere inviati all'emulatore.
  • Gli utenti di Remote Desktop possono eseguire l'emulatore headless sul display principale con il rendering accelerato da GPU, utilizzando gRPC per acquisire screenshot e inviare eventi di input al fine di interagire con l'emulatore.

Per un elenco completo dei comandi disponibili, consulta questo protobuf.

Per aiutarti a iniziare a utilizzare gRPC, abbiamo fornito alcuni client di esempio a cui puoi fare riferimento.

Al momento sono inclusi i seguenti esempi:

  • Un servizio basato su Go che può essere utilizzato per eseguire query sugli stati dell'emulatore.
  • Un'app React che dimostra l'interattività remota tramite screenshot e RPC di input. Questo esempio richiede protobuf 3.7.0 o versioni successive.
  • Un esempio Python che esegue una query sulla configurazione della VM dell'emulatore e poi invia una serie di comandi.

28.0.25 (29 marzo 2019)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

Build emulatore headless

L'emulatore è stato difficile da configurare con Docker e altri flussi di lavoro di integrazione continua (CI) a causa delle aspettative implicite che il sistema può supportare Qt insieme alle sue dipendenze della libreria condivisa (tra gli altri problemi).

Come primo passo per risolvere questo problema, abbiamo introdotto una variante dell'emulatore di avvio con gli eseguibili QEMU che non dipende da Qt. Su Linux è ancora disponibile 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.

  • Sono stati corretti gli spasmi e la visualizzazione del frame non corretto nelle GPU Intel durante l'esecuzione di immagini di sistema Android Q.
  • Sono stati risolti i problemi per cui lo schermo nero veniva visualizzato durante l'utilizzo di 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ò aiutare a ridurre gli errori di "richiesta di arresto delle vCPU" che a volte si verificano durante l'avvio dell'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 di ADB negli strumenti di piattaforma 28.0.2. Ora puoi usare in sicurezza ADB da platform-tools 28.0.2 con l'emulatore. Se riscontri problemi con gli emulatori "non autorizzati", svolgi i seguenti passaggi per risolverli:
    1. Esci da tutti gli emulatori.
    2. Elimina i file ~/.android/adbkey e ~/.android/adbkey.pub.
    3. Esegui questo comando: adb kill-server
    4. Esegui questo comando: adb devices
    5. Cancella i dati di visualizzazione media.
    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 recente post su Reddit ha spiegato in dettaglio come il sistema operativo Android ospite utilizzava sempre l'audio del microfono host, consentendo così il funzionamento imprevisto di "Hey Google". Siamo spiacenti e collaboreremo con il team Android per assicurarsi che il rilevamento della hotword sia disattivato anche nell'immagine di sistema.

Per risolvere questo problema, abbiamo apportato le seguenti modifiche:

  • I dati audio dell'host effettivi sono ora silenziati per impostazione predefinita. Quando l'ospite utilizza il microfono, viene ignorato l'audio del padrone di casa.
  • 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 l'emulatore viene riavviato.

Aggiornamenti sulle indagini sull'utilizzo della CPU

Durante le nostre indagini su Project Marble, abbiamo notato che l'utilizzo elevato della CPU nell'emulatore rientra in genere nelle tre categorie seguenti:

In caso di inattività: 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 il processo, l'utilizzo della CPU è determinato dal numero di core x 100% (in genere ~400%) in GMSCore e dex2oat. Puoi mitigare il problema disattivando gli aggiornamenti automatici delle app nell'app Play Store.

In caso di inattività: rilevamento hotword

Quando ti trovi nella schermata Home e senza alcuna app in primo piano, l'utilizzo della CPU può essere molto abbondante (~25% con picchi fino al 50%). Ciò è causato dal rilevamento della hotword che invia costantemente un 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 è attiva, a volte quando è inattivo: animazioni

La terza causa di un elevato utilizzo della CPU sono le animazioni. Abbiamo scoperto che, ottimizzando lo stack dei driver di grafica, possiamo anche ridurre l'utilizzo della CPU anche quando l'emulatore non è inattivo. Nell'ambito di Project Marble, implementeremo incrementalmente le ottimizzazioni dei driver di grafica.

28.0.22 (21 dicembre 2018)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • Risolto un problema di lunga data per cui, in alcune impostazioni, l'emulatore Mac si riavviava o si verificava il panico del kernel al salvataggio di Quickboot. (Problema 120951634)
  • Quando utilizzi un file mappato come snapshot RAM, l'emulatore ora annulla la mappatura della mappatura del file esplicitamente all'uscita.

28.0.20 (11 dicembre 2018)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • Risolto un problema su Windows che causava il blocco dell'emulatore durante il caricamento degli snapshot con alcuni modelli di GPU Intel.
  • È stato risolto un problema che causava uno stato del dispositivo ADB unauthorized durante l'utilizzo di una località ANDROID_SDK_HOME non standard.
  • È stato risolto un problema su Windows che causava l'arresto anomalo dell'emulatore durante l'avvio delle immagini di sistema con l'accelerazione della CPU disabilitata.
  • È stato risolto il problema di visualizzazione dell'emulatore pixelato. A questo punto il sottocampionamento dovrebbe funzionare.
  • Risolto un problema su macOS 10.14+ per cui il controllo mouse-look della videocamera della scena virtuale poteva diventare troppo sensibile a causa di un'interazione con nuove impostazioni di sicurezza per l'accessibilità.
  • È stato corretto un errore nel calcolo del fuso orario che poteva causare una variazione sporadica dell'orologio dell'emulatore.
  • Sono stati corretti gli errori di rendering in varie app di motori cocos2d e Unreal.
  • Nell'emulatore è stato aggiunto il supporto per il peer-to-peer Wi-Fi. Ora i due emulatori possono comunicare tra loro direttamente tramite Wi-Fi se utilizzi l'immagine più recente del Play Store di Pie. 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 loro 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

L'emulatore ora utilizza meno RAM in generale, soprattutto quando si utilizzano immagini di sistema con livello API 28 o superiore. Queste immagini di sistema includono un migliore utilizzo della memoria per i driver di grafica lato ospite.

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 a lunga esecuzione, crea un problema che descriva il tuo caso d'uso in Issue Tracker.
  • È stato ridotto l'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 una singola durata di visualizzazione media

Ora puoi avviare più istanze della stessa durata di visualizzazione media 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 della stessa durata di visualizzazione media contemporaneamente, avvia qualsiasi istanza dopo la prima istanza dalla riga di comando utilizzando il flag -read-only.

Questa funzionalità è resa possibile copiando i 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 utilizzate insieme alla funzionalità Snapshot di RAM guest supportata da file , più istanze AVD condividono lo snapshot AVD Quickboot principale come fonte comune di RAM guest copia al momento della scrittura. Questa proprietà indica che le istanze condividono gran parte della RAM in comune. Utilizza questa funzionalità per eseguire test che richiedono l'esecuzione in parallelo di più dispositivi.

Apprezziamo il tuo feedback su possibili casi d'uso che fanno parte del tuo normale flusso di lavoro CI o interattivo. Crea o dai un voto positivo ai problemi in Issue Tracker.

Snapshot di RAM ospite supportata da 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, uno snapshot di Avvio rapido viene salvato all'uscita e ricaricato ogni volta, ad esempio sospendendo e riattivando un dispositivo reale.

Poiché ora la RAM ospite di Android viene salvata automaticamente per impostazione predefinita, se vuoi definire uno stato del dispositivo e caricarlo ripetutamente da quello stato, devi chiedere all'emulatore di ignorare le modifiche dopo ogni sessione. Puoi farlo nei seguenti modi:

  • Utilizza i flag -no-snapshot-save o -read-only quando avvii l'emulatore dalla riga di comando.
  • Vai a Controlli estesi > Snapshot > Impostazioni e imposta Salva automaticamente lo stato attuale in Quickboot? su No.
  • Dopo aver selezionato questa opzione, dovrai riavviare l'emulatore. Se l'emulatore è impostato per il salvataggio automatico, puoi eseguire questo comando per impostare un checkpoint:
    adb emu avd snapshot remap 0
    
    Dopo aver eseguito questo comando, lo snapshot dell'emulatore Quickboot rimarrà in quel checkpoint. Esegui di nuovo lo stesso comando per caricare l'emulatore dal checkpoint.

Gli snapshot acquisiti e caricati tramite la funzione UI degli snapshot come avveniva in precedenza, senza mappatura di file.

Poiché si tratta di una modifica significativa al funzionamento di Quickboot, ci piacerebbe molto ricevere il tuo feedback in merito al miglioramento delle prestazioni di Quickboot e al tipo di problemi che 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 della riga di comando -snapshot o avviando da uno snapshot in Gestione 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.

QUEM 2,12

Abbiamo ricreato la variante di QEMU da QEMU 2.9 a QEMU 2.12. Questo aggiornamento include le seguenti modifiche alla QEMU:

Ecco alcune delle modifiche più importanti che interessano l'emulatore Android:

  • x86: gdbstub ora fornisce accesso ai registri SSE.
  • Immagini disco: il blocco delle immagini viene aggiunto e abilitato per impostazione predefinita. Più processi QEMU non possono scrivere nella stessa immagine purché l'host supporti il blocco OFD o posix, a meno che le opzioni non siano specificate diversamente.
  • qemu-img: qemu-img resize supporta la preallocazione delle nuove parti dell'immagine.
  • La riduzione di QCOW2 è ora supportata in qemu e qemu-img.

Accessibilità

  • Sono stati risolti i problemi relativi agli screen reader e aggiunto un supporto migliore per questi strumenti nelle UI di Registrazione dello schermo e Snapshot.
  • 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 intervallo che poteva verificarsi per i puntatori dell'array di vertice OpenGL ES.
  • Alcune GPU meno recenti non supportavano OpenGL 2.1 o versioni successive (obbligatoria) o avevano altri problemi di affidabilità. Questi problemi potrebbero causare l'arresto anomalo dell'emulatore all'avvio, il blocco o l'inutilizzabilità con l'impostazione GPU predefinita. Ora l'emulatore passa automaticamente al renderer Swiftshader se rileva che queste GPU sono in uso.
  • È stato risolto un problema a causa del quale l'emulatore non pubblicava il framebuffer corretto se FBO != 0 era vincolato al momento del eglSwapBuffers.
  • È stato risolto il problema per cui il display virtuale Android veniva visualizzato solo nell'angolo in alto a sinistra. Riteniamo che ciò sia dovuto a variabili di ambiente Qt configurate in modo errato. L'emulatore ora esegue l'override di tutte le variabili di ambiente correlate alla scalabilità Qt.
  • È stato risolto un problema per cui l'emulatore si arrestava in modo anomalo in alcune situazioni durante il caricamento delle app GLES1 da uno snapshot.
  • Sono stati risolti i problemi di contemporaneità in OpenGL e l'avvio dei thread di rendering che potevano causare doppi libere o dati danneggiati.
  • Android Emulator ora supporta il supporto per le texture compresse LDR ASTC (GL_KHR_texture_compression_astc_ldr) per le immagini di sistema che utilizzano il livello API 28 o superiore.
  • La maggior parte delle GPU moderne ora dovrebbe essere in grado di avviare l'emulatore con OpenGL ES 3.x abilitato per impostazione predefinita senza utilizzare il flag funzionalità GLESDynamicVersion.
  • -gpu guest (rendering software nell'ospite) è stato ritirato. Le immagini di sistema per il livello API 28 o superiore ora passano automaticamente all'utilizzo di Swiftshader (-gpu swiftshader_indirect).
  • Se l'emulatore viene avviato dalla riga di comando utilizzando il flag -no-window, il renderer predefinito è ora Swiftshader.

Posizione

  • Ora l'emulatore è in grado di aggiornare l'orientamento, la latitudine e la longitudine. Il sensore virtuale magnetometro si adatta dinamicamente al nord magnetico deducendo il movimento durante la riproduzione di un file GPX o KML.
  • Ora è possibile impostare la velocità del dispositivo nella pagina Posizione.
  • Durante la riproduzione di un file GPX o KML, la velocità viene impostata automaticamente su zero al termine della riproduzione.
  • L'altitudine non è più limitata tra -1000 e +10.000 metri.
  • È stato risolto un problema per cui la posizione GPS virtuale non veniva aggiornata periodicamente a meno che la finestra 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. Inoltre, questa funzionalità impedisce 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 inattivi. Come soluzione alternativa, l'emulatore non archivia più i file di controllo dell'attività 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 si avvia a causa di RAM insufficiente, viene visualizzato un messaggio di errore. Se utilizzi Windows e noti che la RAM è libera, ma non riesci comunque ad avviare l'emulatore, l'addebito di impegno potrebbe essere stato superato. Per assistenza in merito a questo problema, consulta la pagina della 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 relativa alle informazioni sull'attività del modello.
  • Sono stati risolti diversi problemi relativi a perdite di memoria, danneggiamento della memoria e utilizzo della CPU. Se si verificano arresti anomali, perdite di memoria o un altro elevato utilizzo di risorse, crea un problema in Issue Tracker.
  • Risolto un problema che si ripresenta su macOS 10.14, per cui l'utilizzo di cuffie Bluetooth con l'emulatore comprometteva l'audio a livello globale. Per evitare questo problema, ora l'emulatore non utilizza l'audio Bluetooth quando viene eseguito su macOS. (Problema 37070892)
  • È stato risolto un problema su Windows in cui l'orologio dell'emulatore non si trovava nel fuso orario corretto.
  • Sono stati risolti i problemi di lentezza dell'emulatore e il blocco dei sistemi Linux con dischi rigidi rotanti (HDD).
  • Sono stati corretti alcuni avvisi di compilazione che potevano causare il danneggiamento dello stack su macOS.
  • Sono stati risolti i problemi che potevano generare report fuorvianti di blocco.
  • Risolto un problema di eliminazione dei pool di thread che potrebbe causare un arresto anomalo se uno dei thread non viene creato correttamente.
  • Risolto un problema su macOS per cui i timer diventavano inaffidabili e causavano blocchi e altri comportamenti anomali. Se l'emulatore si blocca su macOS, crea un problema in Issue Tracker.
  • È stato risolto un problema per cui la chiusura dell'emulatore disattivava la UI, ma non in realtà chiudeva 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 arrestato in modo forzato.
  • La build MIPS è stata rimossa. Se hai ancora bisogno di MIPS, crea un problema in Issue Tracker.
  • È stato risolto un problema per cui le connessioni ADB potevano danneggiarsi 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 delle istantanee.
  • Su Linux, i file system btrfs possono causare rallentamenti estremi perché l'emulatore salva automaticamente gli snapshot e utilizza la funzione di copia alla scrittura per i dispositivi dei dischi virtuali. Ti consigliamo di eliminare 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 funzionalità di copia on-scrittura è disabilitata.

HAXM 7.3.2

Vogliamo menzionare di nuovo HAXM 7.3.2 perché deve essere installato per affinché le recenti immagini di sistema vengano eseguite correttamente sull'emulatore. HAXM 7.3.2 dovrebbe essere già disponibile nel canale stabile e può anche essere installato manualmente da https://github.com/intel/haxm/releases.

Ecco un paio di problemi risolti da questa versione di HAXM:

  • Sono stati risolti gli arresti anomali casuali dei sistemi operativi guest che utilizzano un kernel Linux recente (>= 4.6). Ad esempio, Ubuntu 18.04 (#39, #74).
  • È stato corretto un bug dell'emulatore di istruzioni x86 che poteva causare un arresto anomalo dell'host (#93).

Deprecazione di Windows a 32 bit

A causa dei bassi costi di utilizzo e degli elevati costi di manutenzione, abbiamo in programma di ritirare la versione a 32 bit dell'emulatore Android eseguito 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 su questa modifica futura.

Fatecelo sapere in Issue Tracker se al momento 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 le dimensioni della RAM della durata di visualizzazione media nel file config.ini della durata di visualizzazione media non erano impostate correttamente.

Per mitigare questo problema, l'emulatore aumenta il livello minimo di RAM per le immagini che utilizzano il livello API 26 o superiore al livello predefinito di Android Studio di 1536 MB. Se il file config.ini del file AVD non riporta 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 abilitare 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 verificavano durante il caricamento di un'istantanea nell'app Fotocamera.

27.3.8 (luglio 2018)

Questo aggiornamento include diverse nuove funzioni, miglioramenti a funzioni esistenti e correzioni di bug.

Istantanee

Ora puoi salvare più snapshot della durata di visualizzazione media 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 dispositivo include un controllo nelle impostazioni avanzate della finestra di dialogo Configurazione dispositivo virtuale con cui puoi specificare quale snapshot della durata di visualizzazione media caricare all'avvio della durata di visualizzazione media.

Per consentire l'espansione delle funzionalità degli snapshot, abbiamo aggiunto la categoria Snapshot alla finestra di dialogo Controlli estesi. Questo nuovo riquadro contiene i controlli per salvare e caricare gli snapshot AVD, compresi i controlli per salvare e caricare lo snapshot ad avvio rapido che in precedenza erano 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 per tutti i canali.

Questo aggiornamento include correzioni di bug e un supporto migliorato per grandi quantità di RAM. Inoltre, con questo aggiornamento di HAXM ed Emulator 27.3 e versioni successive, gli snapshot caricano i loro contenuti nella RAM on demand, 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, consulta Configurare l'accelerazione delle VM.

27.2.9 (maggio 2018)

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

I controlli per la 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 la riproduzione e il salvataggio del video registrato si trovano nella parte inferiore della scheda Registrazione dello 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 nella riga di comando:

adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm

Screenshot

Puoi acquisire screenshot dalla riga di comando con uno dei seguenti comandi:

  • screenrecord screenshot [destination-directory]
  • adb emu screenrecord screenshot [destination-directory]

Gli screenshot vengono salvati in formato PNG.

Fotocamera per scene virtuali e ARCore

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

Per informazioni sull'utilizzo della fotocamera per la scena virtuale nell'emulatore, vedi Eseguire app AR in Android Emulator.

Immagini del Google Play Store su Pixel

Il Google Play Store è ora abilitato per le immagini dei dispositivi Pixel e Pixel 2. Questa informazione è indicata in Gestione AVD 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 attivo è 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 estesi nella pagina Impostazioni e fai clic sul pulsante Carica ora.

Abbiamo apportato molti miglioramenti al caricamento e al salvataggio degli snapshot per migliorare l'efficienza dell'utilizzo delle risorse e ridurre al minimo il tempo necessario per ogni operazione. Se continui a riscontrare salvataggi insolitamente lunghi, segnala un problema fornendo i dettagli relativi a CPU, RAM e impostazioni dell'eventuale software antivirus / firewall/di sicurezza in esecuzione.

Rendering con Skia

Quando utilizzi immagini per l'API 27 o versioni successive, l'emulatore può eseguire il rendering della UI Android con Skia, che può essere eseguito in modo più fluido ed efficiente.

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

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

  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 insieme.

Vari

L'opzione della riga di comando -phone-number-prefix è stata modificata in -phone-number [number], che consente di impostare il numero di telefono completo.

Ora puoi utilizzare indirizzi SMS alfanumerici.

Correzioni

  • La versione Linux dell'emulatore Android è ora basata su una moderna toolchain Clang C++. Questa modifica risolve il problema di mancato avvio dell'emulatore a causa di errori libGL e libstdc++.
  • Sono state corrette diverse cause di arresti anomali e blocchi.
  • Per evitare arresti anomali e blocchi causati da uno spazio libero su disco insufficiente, l'emulatore ora controlla se lo spazio libero su disco è sufficiente all'avvio e non si avvia a meno che non siano disponibili almeno 2 GB.
  • È stato risolto un problema che impediva il rendering di alcuni giochi Unity.
  • È stato risolto il problema del DNS che impediva la connessione dell'emulatore alla rete.
  • Risolto un problema che causava il mancato funzionamento delle modifiche alla memoria interna allocata a un file di visualizzazione di pagina tramite la finestra di dialogo Configurazione dispositivo virtuale.
  • È stato risolto un problema relativo alla creazione e all'arresto non corretti di molti processi ADB.
  • È stato risolto un problema che causava la mancata risposta dei pulsanti di rotazione e di altre parti dell'interfaccia utente a meno che la finestra dei controlli estesi non fosse aperta.
  • Risolto un problema che impediva il funzionamento della copia e incolla dall'host a meno che la finestra di dialogo Controlli estesi non fosse stata aperta almeno una volta.
  • Il rettangolo di ridimensionamento dell'emulatore senza frame è 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à SMS e cellulare dopo il caricamento di uno snapshot.
  • Non riceverai più messaggi di avviso falsi che dicono “Unable to open... \pstore.bin. Permission denied.”
  • È stato risolto un problema che impediva il riposizionamento della durata di visualizzazione media su alcuni schermi Mac.
  • Sono stati risolti i problemi di sfarfallio e schermi vuoti sui computer MacBook Pro più recenti durante l'esecuzione di AvD con skin di Pixel 2 XL.
  • Sono stati risolti i problemi relativi a schermate vuote durante il passaggio alla modalità con zoom mentre era attivo un emulatore senza frame.
  • È stato risolto un problema che causava la mancata sincronizzazione dei contenuti dell'emulatore e della skin del dispositivo quando erano aumentati 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 del Bluetooth è peggiorata dopo l'avvio dell'emulatore. (Problema 37095756)
  • Le posizioni inviate a un emulatore sono state inviate a tutti. (Problema 73450633)
  • La posizione GPS impostata utilizzando la console è stata sostituita dai valori impostati utilizzando Controlli estesi > Posizione nella Graphic User Interface. (Numero 73471760)

Se continui a riscontrare blocchi o altre instabilità, segnala il 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 istruzioni e requisiti dettagliati, vedi Eseguire app AR in Android Emulator.

27.1.10 (febbraio 2018)

  • Risoluzione di acquisizione con fotocamera

    Ora è possibile acquisire fotogrammi a 720p da una webcam collegata.

    Per funzionare con immagini di sistema con Android 8.1 (livello API 27) e versioni successive, qualsiasi webcam collegata deve essere in grado di acquisire fotogrammi 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" di un thread inutilizzato. Nessuna risposta per 15.000 ms".

Se continui a riscontrare blocchi o altre instabilità, segnala il problema.

27.1.7 (febbraio 2018)

  • Finestra dell'emulatore senza frame:

    Per impostazione predefinita, gli emulatori con file di skin del dispositivo vengono ora mostrati senza un frame 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 l'utilizzo delle istantanee con visualizzazione di visualizzazione media:

    • Puoi salvare uno snapshot della durata di visualizzazione media in qualsiasi momento utilizzando il pulsante Salva ora nel riquadro Impostazioni della finestra di dialogo Controlli estesi.
    • 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 sull'avvio rapido.

  • L'emulatore è stato aggiornato con QEMU 2.9.

    Di seguito sono riportati alcuni miglioramenti degni di nota:

    • I/O ottimizzato e blocco dei thread di I/O più granulare per prestazioni migliori.
    • Sono stati corretti i bug dalla versione QEMU 2.8 (26.1.4).
    • Nuova implementazione del backend HAXM.

    Consulta l'elenco completo delle modifiche nel log delle modifiche di QEMU 2.9.

  • Implementazione Swiftshader conforme a OpenGL ES 3.0:

    Ora il renderer Swiftshader dell'emulatore è pienamente conforme a OpenGL ES 3.0. Per informazioni dettagliate sul renderer Swiftshader, consulta la sezione Impostazioni > Avanzate di Controlli estesi.

  • Correzioni

    • Risolto un problema per cui la condivisione degli appunti non funzionava a meno che l'opzione Attiva la condivisione degli appunti non fosse attivata/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 nel tuo caso, puoi riattivarlo con il flag della riga di comando -gpu angle_indirect. In alternativa, apri la finestra Controlli estesi, vai a Impostazioni > Avanzate e seleziona ANGLE D3D11 per l'impostazione del renderer OpenGL ES.

  • È 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 offre tempi di avvio dell'emulatore più rapidi in base a uno snapshot della tua istanza AVD.

    Avvio rapido è abilitato per impostazione predefinita per tutti i tipi di durata di visualizzazione media. Anche se la prima volta che si avvia un AVD deve essere eseguito un avvio a freddo (proprio come l'accensione di un dispositivo), tutti gli avvii successivi sono veloci e il sistema viene ripristinato allo stato in cui hai chiuso l'emulatore (simile a riattivare 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 di avvio rapido all'uscita:

    • : salva sempre l'istantanea 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: quando chiudi l'emulatore, chiedi se vuoi salvare o meno lo snapshot di avvio rapido.

    La selezione si applica solo alla durata di visualizzazione media attualmente aperta.

    Per ulteriori informazioni, consulta la documentazione relativa all'avvio rapido.

  • Aggiunto il supporto per Mac OpenGL ES 3 (per le immagini di sistema che utilizzano livello API 24 e successivi, API di Google e ABI x86).

  • Per una maggiore stabilità nelle app OpenGL ES 2 e versioni successive, l'emulatore ora utilizza il profilo core OpenGL, se disponibile.

  • Nuove opzioni per il rendering con Swiftshader / ANGLE:

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

    Le opzioni -gpu swiftshader e -gpu angle precedenti sono state ritirate. 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)

Si tratta di una release minore con correzioni di bug e i seguenti miglioramenti alla configurazione della GPU:

  • Attiva animazione all'avvio durante l'esecuzione sul renderer ANGLE
  • Disattiva GLES3 durante l'esecuzione sul renderer ANGLE

26.1.3 (agosto 2017)

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

  • Per utilizzare le immagini di sistema Android 8.0 più recenti, è necessaria questa versione. Sono conformi agli alti, con 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'opzione AVD; la memoria viene invece cercata 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 di schermo nero all'avvio durante l'esecuzione del rendering del software lato guest, tornando al rendering del software lato host con Swiftshader. Le ultime revisioni delle immagini di sistema per i livelli API 19-25 con le API di Google dovrebbero avere un rendering lato guest 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 che useranno 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 immagini di livello API 25 a causa di un bug per cui "Avvio app Pixel continua a interrompersi". Sembra che si tratti di un problema di driver in alcuni modelli Intel HD 4xxx. Quindi passeranno all'uso automatico 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 si avviava (l'emulazione OpenGL non veniva inizializzata) se la durata di visualizzazione media era configurata 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)"; aggiunta un'opzione per eseguire il downgrade da OpenGL ES 3 a OpenGL ES 2 in caso di problemi o se occorre eseguire test su livelli API OpenGL ES inferiori.
    • Il renderer Mesa è deprecato. Ora hw.gpu.mode=mesa passerà automaticamente all'utilizzo di Swiftshader nell'host.
  • Miglioramenti per macOS:
    • Ora l'emulatore è 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 immagini x86 a 32 bit per migliorare le prestazioni e la compatibilità con macOS. Se riscontri problemi specifici, invia una segnalazione di bug e aggiungi HVF = off a ~/.android/advancedFeatures.ini (crea questo file se non esiste).
    • Sono stati risolti i problemi relativi all'assenza di connessione a internet o al mancato collegamento del debugger durante l'utilizzo di Hypervisor.framework.
    • Per migliorare la compatibilità e le prestazioni dell'acquisizione con webcam, l'acquisizione della fotocamera basata su QTKit è stata sostituita con una basata su buffer basata su AVFoundation.
  • È stato aggiunto il supporto del Wi-Fi in alcune immagini di sistema (al momento solo il livello API 25). È disponibile un punto di accesso chiamato "AndroidWifi" a cui Android si connette automaticamente. Il supporto del Wi-Fi può essere disattivato eseguendo l'emulatore con il parametro della riga di comando -feature -Wifi.
  • Alcuni utenti temevano che le immagini di sistema del Play Store con dimensioni fisse non avessero spazio di archiviazione sufficiente. Pertanto, abbiamo aumentato le dimensioni a 2 GB per impostazione predefinita (da 800 MB).
  • È stata aggiunta una scorciatoia da tastiera (Ctrl+Maiusc+U) per aprire la pagina dell'interfaccia utente per la segnalazione di bug direttamente dalla pagina delle impostazioni.
  • Risolto un problema per cui se veniva utilizzata una CPU meno recente con Intel x86 EPT ma senza UG, l'emulatore non si avviava se veniva configurato più di un core.
  • È stato risolto un problema per cui HyperV 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 in questa schermata puoi definire una configurazione manuale del proxy.

  • 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 nel seguente modo:

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

      • Per utilizzare il client di condivisione schermo integrato di Mac, all'avvio dell'emulatore è necessaria una password VNC. 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 vedere i dettagli della segnalazione di bug, come lo screenshot, le informazioni sulla configurazione di visualizzazione di pagina, e un log della segnalazione di bug. Puoi quindi salvare il report per te o segnalare i problemi dell'emulatore.

  • È stato aggiunto un sensore giroscopico all'emulatore e al pannello dei sensori virtuali. Per funzionare è necessaria un'immagine di sistema con supporto del giroscopio (attualmente i livelli API 24 e 25).

  • Aggiunta di DNS preferiti dall'host all'elenco DNS Qemu su Windows, quando più interfacce di rete virtuale sull'host introducono più indirizzi DNS che non sono funzionali per l'emulatore.

  • È stato aggiunto il supporto sperimentale di macOS Hypervisor.Framework per le immagini x86 a 32 bit su macOS 10.10 e versioni successive tramite flag del server, che dovrebbero 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 riga GLESDynamicVersion = off in ~/.android/advancedFeatures.ini.
  • L'emulatore ora utilizza FBO OpenGL fuori schermo per tutto il rendering, tranne la pubblicazione finale dell'immagine display, che dovrebbe aiutare a risolvere i problemi di coerenza del colore su più piattaforme.

  • Dopo aver raccolto dati su problemi improvvisi di rallentamento dell'emulatore, abbiamo stabilito che il problema potrebbe avere a che fare con un'interazione tra i driver Intel OpenGL meno recenti e gli aggiornamenti di Windows. Di conseguenza, per gli utenti con Intel HD 4000, 3000, 2000 (e GPU correlate) il rendering è ora impostato per impostazione predefinita su un renderingr D3D (ANGLE) o Swiftshader (rendering del software).

26.0.0 (marzo 2017)

Questa release è compatibile con il livello API 26. Include inoltre una serie di miglioramenti delle prestazioni e correzioni di bug.

Revisione minore 26.0.3 (maggio 2017)

  • Aggiunge flag delle funzionalità aggiornabili online per risolvere rapidamente i problemi derivanti da configurazioni hardware problematiche. In questo modo Google può implementare correzioni e funzionalità che dipendono dalle configurazioni utente aggiornando i flag lato server. Se rilevi problemi con hardware specifico, segnala un bug per consentirci di effettuare accertamenti.
  • Nuovo supporto dell'input rotatorio per le immagini di sistema di livello 25 dell'API Android Wear. Per emulare il quadrante di input rotatorio su un dispositivo Wear, fai clic sulla scheda Input rotatorio nella finestra estesa.
  • La finestra di dialogo di Crash Reporting ora è ridimensionabile e non reimposta più Quando inviare i report sugli arresti anomali a Chiedi senza input.
  • L'emulatore a 32 bit ora richiede che le dimensioni massime della RAM 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 estesa per le immagini del Google Play Store che mostra la versione di Play Services e un pulsante per verificare la presenza di aggiornamenti di Play Services.
  • Aggiunge un menu a discesa per selezionare il renderer OpenGL nella pagina Impostazioni dell'emulatore. Se riscontri problemi con il driver OpenGL su un computer Windows, prova a utilizzare le opzioni ANGLE (D3D11) o ANGLE (D3D9) (è necessario un riavvio). Se riscontri problemi con il driver OpenGL su un computer non Windows, prova a utilizzare il renderer del software Swiftshader (richiede un riavvio).
  • Corregge un raro arresto anomalo all'uscita quando l'emulatore riceve entrambi i comandi exit e minimize.
  • Risolve un problema di ridimensionamento durante la modifica del display su un computer Mac. (Problema 268296)
  • Risolto un problema per cui l'emulatore occupa il 300% della CPU e la trattiene dopo aver ripreso il computer host dalla modalità di sospensione o quando l'emulatore è in esecuzione da molto tempo.
  • Corregge un arresto anomalo all'arresto dell'emulatore.

Aggiornamenti con HAXM 6.1.1 (marzo 2017)

Nota: HAXM 6.1.1 è disponibile per gli utenti Mac tramite SDK Manager a partire 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:

  • Abilita l'emulazione delle unità di monitoraggio delle prestazioni (PMU). (Numero 223377)
  • Corregge la coesistenza con VirtualBox e Docker sui Mac. (Numero 197915)
  • Consente di rivedere il messaggio di errore dell'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 dell'host (quella che gestisce la VM/ospite Windows) utilizzi l'ultima versione di Hyper-V con la virtualizzazione nidificata abilitata. Hyper-V deve essere disabilitato nell'istanza Hyper-V guest (la VM Windows).

Dipendenze

  • Android SDK Platform-Tools revisione 25.0.4 o versioni 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. Data una GPU host con driver OpenGL conformi per il desktop, l'emulatore ora supera il 100% dell'elenco mustpass di Android CTS dEQP-GLES2. È stato rilasciato per le immagini x86 a livello API (revisione 11 e versioni successive) e a breve verrà incluso in tutte le immagini di sistema.
  • Prestazioni di riproduzione video migliorate. L'emulatore ora archivia tutti i buffer di colore video nella memoria condivisa dell'host/ospite 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 a livello API (revisione 11 e versioni successive) e a breve verrà incluso in tutte le immagini di sistema.
  • Ora l'emulatore annulla correttamente la registrazione dall'elenco adb devices all'uscita e chiude le porte TCP aperte sui computer Linux.
  • le connessioni ADB sono ora più affidabili. Un emulatore in esecuzione viene rilevato più velocemente e non passa più allo stato "offline" o "non autorizzato".

25.3.0 (marzo 2017)

A partire da questa release, l'emulatore Android verrà rilasciato separatamente dagli strumenti SDK. Questa release contiene una serie di miglioramenti delle prestazioni, nuove funzionalità e correzioni di bug.

Revisione minore 25.3.1 (marzo 2017)

  • È stato risolto un arresto anomalo che si verificava su alcune configurazioni GPU disattivando GLAsyncpara per impostazione predefinita. Questa funzionalità è stata aggiunta nella versione 25.3.0 per migliorare la tempistica dei frame e i frame al secondo per giochi e video, ma causa il mancato funzionamento dell'emulatore su alcune configurazioni macchina sconosciute. Puoi abilitarlo manualmente aprendo il file android_sdk/emulator/lib/advancedFeatures.ini e impostando GLAsyncSwap = on.

Dipendenze

  • Android SDK Platform-Tools versione 24 o successiva.
  • Android SDK Tools revisione 25.3.0.

Nuove funzionalità e correzioni di bug

  • Motore di emulazione aggiornato alla versione QEMU 2.7, con tutte le correzioni di bug recenti, prestazioni migliorate e nuove funzionalità.
  • Nuovo supporto IPv6.
  • L'emulatore ora utilizza SwiftShader come renderer software puro sull'host.
  • Miglioramenti delle prestazioni di Android Pipe: Android Pipe, il principale canale di comunicazione tra l'emulatore e il sistema operativo Android, è ora di un ordine di grandezza più veloce, ha una latenza inferiore e offre migliori prestazioni 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 del disco più veloce: l'emulatore ora utilizza thread separati per inviare I/O del disco, con una conseguente latenza inferiore e una migliore velocità effettiva (velocità di I/O sequenziale di circa 1,5 volte, velocità di I/O ad accesso casuale di circa 5 volte superiore). Questo riduce anche il numero di svuotamenti su disco, con un conseguente carico sui dispositivi fisici molto inferiore.
  • L'emulatore ora utilizza file sparsi per l'avvio dei dischi su macchine Windows, accelerando sia il primo avvio sia quelli con "cancellazione dati". Durante la creazione o la reimpostazione di una durata di visualizzazione media, l'emulatore ora scrive 100-200 MB di dati su disco, 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 sugli HDD.
    • Le interazioni con la UI sono ora più veloci e fluide, tra cui rotazione, ridimensionamento delle finestre e caricamento e chiusura delle finestre dei controlli estesi.