Note di rilascio dell'emulatore

La funzionalità Android Emulator è inclusa 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 dell'emulatore.

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

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

34.1.18 (29 feb 2024)

Test eseguito con Android Studio Iguana stabile.

  • Alcuni dispositivi sono stati aggiunti all'emulatore, tra cui:
    • Pixel Fold
    • Pixel Tablet
    • Pixel 8
    • Pixel 8 Pro
    • Pixel 7a
  • Test di integrazione gRPC: gli endpoint gRPC sono ora disponibili per i test instrumentati eseguiti all'interno dell'emulatore, che consentirebbero il test di scenari realistici. Questa funzionalità consente agli sviluppatori di interagire in sicurezza con l'endpoint gRPC ospitato dall'emulatore Android dai test di strumentazione Android.
  • Varie correzioni di bug
    • Correzione di bug: miglioramenti 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 stabile e Iguana Beta 1.

  • Risolvi il problema della webcam emulatore che non consente la registrazione dello schermo in formato mp4.
  • È stato risolto l'arresto anomalo dell'emulatore sull'AVD di Pixel Fold quando il dispositivo è aperto durante la registrazione dello schermo.
  • Risoluzione del problema per cui Pixel Fold mostrava un'altra skin dello smartphone con la tastiera scollegata e inutilizzabile (risolto su Windows, Mac Intel e Linux)
  • Correzione dell'aspetto del glitch nei sensori virtuali in modalità autonoma (fissata su Windows, Mac Intel e Linux)
  • Correzioni di alcuni arresti anomali, soprattutto durante la chiusura dell'emulatore, corretti

33.1.23 (30 novembre 2023)

Test eseguito con Android Studio Giraffe Patch 4 e la versione stabile di Hedgehog.

  • Nuova implementazione pieghevole per emulare meglio il dispositivo Pixel Fold, compatibile con l'API più recente 34
  • Upgrade del backend grafico: abbiamo implementato il protocollo gfxstream per il nostro backend grafico. Questo miglioramento migliora le prestazioni grafiche e la stabilità generali del tuo sistema. Inoltre, introduzione del supporto Vulkan 1.3 a partire dall'immagine di sistema con API 34
  • Richiesta di funzione: opzione per disattivare il gesto di pizzicatura per eseguire lo zoom o riassegnare la relativa scorciatoia di scelta rapida
  • [Correzione di bug] Problema n. 302562962 Risolvere l'arresto anomalo della webcam dell'emulatore quando si utilizza MacOS sonoma
  • [Correzione di bug] Problema n. 293503871 Risoluzione del problema per cui l'impostazione "Microfono" non veniva salvata al riavvio dell'emulatore
  • [Correzione di bug] Problema n. 270386314 Correggere l'errore dell'animazione in cui la barra laterale rimane aperta una volta ridotta a icona la schermata AVD
  • [Correzione di bug] Problema n. 154896775 Strumento di correzione dei bug di invio

32.1.15 (29 agosto 2023)

Test eseguito con Android Studio Giraffe Patch 1 e Hedgehog Canary 16.

  • Conformità ai requisiti HW GAS per i sensori nell'emulatore AAE
  • [Correzione di bug] Problema n. 266201208 Gli SMS in ebraico non vengono inviati nell'API 33
  • [Correzione di bug] Problema n. 257097404 L'emulatore non mostra l'ora corretta dopo l'attivazione dell'host sulle API 29 e 30
  • [Correzione di bug] Problema n. 228201899 Impossibile visualizzare Google Maps all'interno dei controlli estesi dell'emulatore Android

32.1.14 (27 giugno 2023)

Test eseguito con Android Studio Hedgehog Canary 8, Giraffe Beta 5 e Flamingo stabile.

  • Correggi l'orientamento e le distorsioni della fotocamera dell'emulatore.
  • [Correzione di bug] Problema n. 257097404 "L'emulatore non mostra l'ora corretta dopo l'attivazione dell'host". Questo bug è ancora riproducibile per le API 29 e l'API 30.
  • [Correzione di bug] Problema n. 243456582 "Le release di Android dopo l'API 30 potrebbero non avviarsi correttamente nell'emulatore su macchine Mac M1"

32.1.13 (22 maggio 2023)

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

  • Aggiungi il supporto per le funzionalità di lunga durata di Pixel Fold e Pixel Tablet.
  • Migliora il problema di arresto anomalo di gLinux.
  • [Correzione di bug] Problema n. 215231636 "L'emulatore con l'API sopra l'API 30 non funziona nel processore Intel di 12a generazione".
  • [Correzione di bug] Problema n. 275397905 Livello elevato di arresto anomalo sull'emulatore Android M1 quando si sposta lo stato attivo del cursore all'interno e all'esterno dell'emulatore ripetutamente.
  • Problema noto relativo al lancio di AVD Numero 281725854. Per ulteriori informazioni, consulta la sezione Risoluzione dei problemi relativi all'emulatore.

32.1.12 (21 marzo 2023)

Test eseguito con Android Studio Giraffe Canary 10, Flamingo RC ed Electric Anguilla 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 si deteriorano dopo l'aggiornamento alla versione 33.1.1
  • [Correzione di bug] Problema n. 225541819 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 l'attivazione dell'host
  • Aggiungi report sugli arresti anomali per i dispositivi Apple M1

32.1.11 (8 febbraio 2023)

Test eseguito con Android Studio Giraffe Canary 2, Flamingo Beta 1 ed Electric Anguilla Patch 1.

  • Ottimizzazioni della velocità della rete
  • Supporto per il mouse nell'emulatore incorporato
  • Miglioramenti a Virtio-snd
  • Disattiva l'utilizzo di collegamenti simbolici durante la decompressione dell'emulatore Android durante l'installazione
  • Correggi l'arresto anomalo in emulator-check

31.3.14 (13 dicembre 2022)

Test eseguito con Android Studio Dolphin, Electric Eel RC1 e Flamingo Canary 9.

  • [Correzione di bug] Sono stati corretti gli arresti anomali della modalità AVD che si verificano durante l'accesso al Play Store.

31.3.13 (27 ottobre 2022)

Test eseguito con Android Studio Dolphin, Electric Eel beta 2 e Flamingo Canary 5.

31.3.12 (10 ottobre 2022)

Test eseguito con Android Studio Dolphin e Electric Eel beta 1.

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • [Correzione di bug] Problema n. 247843000: errore di gestione del percorso relativo alla durata di visualizzazione media
  • Aumenta la dimensione del disco per l'API 24 e versioni successive

31.3.11 (23 settembre 2022)

Test eseguito con Android Studio Dolphin e Electric Eel Canary 10.

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • [Correzione di bug] Arresto anomalo AVD dell'emulatore incorporato nella finestra dei controlli estesi
  • [Correzione di bug] Problema n. 183139207: problemi audio associati all'attivazione del microfono nell'emulatore
  • [Correzione di bug] Problema n. 229764024: bug persistente al tocco fisso che causa problemi di comportamento dell'interfaccia utente
  • [Correzione di bug] Errore durante l'avvio di API 33 AVD su Mac M1.
  • [Correzione di bug] Problema n. 243053479: bassa velocità della rete dopo l'aggiornamento dell'emulatore
  • [Correzione di bug] Problema n. 244617627: posizione non funzionante di Maps su Windows e Linux
  • [Correzione di bug] Problema n. 232971796: Pulsante "Chiama dispositivo" non funzionante nella pagina Controlli estesi > Telefono
  • Aggiorna l'emulatore Android a minigbm
  • Migrazione degli script di build in Python3

31.3.10 (18 agosto 2022)

Test eseguito con Android Studio Dolphin Beta 5 e Electric Eel Canary 9.

Sono ora disponibili download autonomi dell'emulatore. Se riscontri problemi o arresti anomali con questa release stabile più recente, segnala un bug e valuta la possibilità di scaricare una versione già funzionante dagli archivi di download dell'emulatore.

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • Migliore supporto dei percorsi Unicode su Windows
  • Migliore gestione della chiusura dell'emulatore in modo che possa avere successo un nuovo lancio dello stesso AVD.
  • Design AVD pieghevole aggiornato e impostazioni predefinite
  • Pulsanti dell'emulatore Wear aggiornati
  • Miglioramenti allo streaming audio gRPC
  • Comando della console emulatore ridimensionabile aggiunto
  • Correzione di Chrome per l'API 31
  • [Correzione di bug] Autenticazione dell'Account Google non riuscita con GmsCore v21.42.18

31.2.10 (20 aprile 2022)

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

Questo aggiornamento include i seguenti miglioramenti e correzioni:

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

31.2.9 (23 marzo 2022)

Test eseguito con Android Studio Dolphin Canary 7.

Questo aggiornamento include la seguente correzione:

  • [Correzione di bug] Ignora la pressione della memoria durante il salvataggio dello snapshot su M1

31.2.8 (7 febbraio 2022)

Test eseguito 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 causerà l'arresto anomalo avd con "richiesta di arresto vcpu"

31.2.7 (1 febbraio 2022)

Test eseguito con Android Studio Bumblebee Patch 1 e Chipmunk Canary 6.

Questo aggiornamento include la seguente correzione:

  • [Correzione di bug] Errore nell'emulatore sulle macchine M1.

31.2.6 (20 gennaio 2022)

Test eseguito con Android Studio Arctic Fox, Bumblebee Beta 4 e Chipmunk Canary 6.

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • Aggiunti pulsanti Wear all'emulatore Wear OS.
  • Tutte le proprietà del veicolo sono state modificate nella scheda VHAL.
  • [Correzione di bug] Autenticazione dell'Account Google non riuscita con GmsCore v21.42.18.
  • [Correzione di bug] Netshaper non funzionava bene con VirtioWifi.
  • [Correzione di bug] Il comando della console mouse dell'evento non ha funzionato.
  • Aggiunta del controllo KVM per la creazione di una AVD locale.

31.1.3 (18 gennaio 2022)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • Porte della console attive per Fuchsia.
  • Quando ridimensioni una finestra multi-display, l'orientamento viene ignorato.
  • Wi-Fi: aggiunto il supporto per il filtraggio 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 una finestra 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 per la rete contactless.
  • Input rotatorio attivato per le immagini di sistema Wear.
  • Risolto il problema di configurazione dell'audio gRPC.
  • Riproduzione emulatore SensorReplay aggiornata per supportare i sensori Android standard.
  • L'emulatore è stato collegato a periferiche e dispositivi tramite USB con pass-through USB.

30.4.5 (23 febbraio 2021)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • macOS: risoluzione dei problemi relativi alla distorsione dell'ingresso audio.
  • Aggiunto il supporto per virtio-vsock nello spazio utente.
  • Le immagini di sistema future utilizzeranno virtio-console per i messaggi logcat e del kernel.
  • Accelera il rendering di Vulkan.
  • Aggiunto il supporto per il debug degli snapshot in caso di test non riuscito.
  • virtio-gpu: definizioni aggiornate per supportare le enumerazioni di risorse BLOB più recenti.
  • Aggiunto il supporto degli snapshot per i trasporti grafici di tipo "asg".
  • macOS: aggiunto il supporto per la creazione su macOS 11.1 e versioni successive.
  • KVMclock abilitato per impostazione predefinita sulle immagini di sistema più recenti.
  • Aggiunto il supporto di un sensore della frequenza cardiaca agli emulatori Wear.
  • Rimosso il backend libportability Vulkan.
  • Aggiunto il supporto per altre funzionalità nel simulatore del modem.

30.0.26 (16 agosto 2020)

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

Supporto per pieghevoli con sensore per cerniera virtuale e vista 3D

  • Aggiunto il supporto per i sensori delle cerniere per i dispositivi pieghevoli. Ciò richiede un'immagine di sistema Android 11 e una configurazione AVD futura. I parametri di visualizzazione pieghevole e cerniera 3D sono ora integrati con le preimpostazioni pieghevoli esistenti. Ad esempio, puoi usare quanto segue con il file config.ini della durata di visualizzazione 7.3 pieghevole:

    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 includono anche un parametro di sottotipo. La proprietà config.ini hw.sensor.hinge.sub_type = hinge/fold è ora disponibile. Per saperne di più, consulta il post del blog sullo sviluppo per Android 11 con l'emulatore di Android.

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

  • Se è configurato un dispositivo pieghevole, l'emulatore ora invia all'ospite aggiornamenti dei sensori dell'angolo della cerniera e modifiche della posizione. I dispositivi pieghevoli esistenti ora aggiorneranno l'angolazione e la posizione del sensore della cerniera quando vengono premuti i pulsanti di piegatura e apertura della barra degli strumenti.

Emulatore per host ARM64

  • Il codice sorgente dell'emulatore Linux ora supporta la compilazione incrociata da x86_64 agli host arm64, consentendo l'esecuzione di immagini di sistema ARM64 con la virtualizzazione KVM. Attualmente è supportato solo il rendering -gpu swiftshader_indirect (rendering host arm64 di Swiftshader), ma è possibile utilizzare anche un set compatibile di librerie GPU libEGL/libGLESv2 host sostituendo lib64/gles_swiftshader con queste e poi 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
    
  • Supporto per Apple Silicon in corso.

supporto virtio-gpu

  • Aggiunto il supporto sul lato host per le prossime risorse BLOB coerenti dell'host virtio-gpu.
  • A causa di come funziona il rendering dell'emulatore, ora elaboriamo virtio-gpu virtqueue nel thread vcpu (perché il rendering viene comunque eseguito su altri thread). Il rendering virtio-gpu verrà abilitato in una versione futura dell'immagine di sistema e dell'emulatore.
  • In una futura immagine di sistema, l'emulatore potrà eseguire tutte le immagini con uno stack basato su GPU.

Altre nuove funzionalità e miglioramenti

  • Il passthrough USB è ora disponibile su Windows con -qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>. (Questo dovrebbe già funzionare su Linux e macOS)
  • Librerie WebRTC aggiornate alla versione M83.
  • L'emulatore ora supporta lo streaming audio nei container tramite WebRTC.
  • L'endpoint darwinn pipe è stato rimosso.
  • Se la decodifica CUDA VPx è disponibile nell'hardware, ora è disponibile la decodifica CUDA VPx per i video tramite la variabile di ambiente ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.
  • Su macOS, SSE 4.1 e 4.2 sono ora disponibili dall’interno del guest Android.
  • Su macOS, INVTSC è ora abilitato per impostazione predefinita. Questo può migliorare la precisione delle misurazioni del tempo da parte dell'ospite.
  • Ora monitoriamo nelle metriche quale riquadro di controllo esteso è stato selezionato dall'utente.
  • L'emulatore Linux ora utilizza l'orologio paravirtualizzato KVM quando la versione del kernel guest è >= 5.4 (immagini di sistema R o successive).
  • Emulator ora utilizza LZ4 per decomprimere i kernel guest, rendendolo compatibile con la moderna pipeline del kernel.
  • Sono stati aggiunti i 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 lo spazio verticale sullo schermo, abbiamo aggiunto un'opzione che consente di nascondere il fotogramma del dispositivo per la durata di visualizzazione media corrente in Controlli estesi > Impostazioni. Per nascondere a livello globale i frame dei dispositivi per tutti i AVD, abbiamo reso disponibile il flag funzionalità NoDeviceFrame, che può essere attivato avviando l'emulatore dalla riga di comando con il frame -feature NoDevice oppure per bloccarlo aggiungendo NoDeviceFrame = on a ~/.android/advancedFeatures.ini (crea questo file se non esiste già).

  • Nella pagina della rete dati è stato aggiunto un elemento a discesa per attivare e disattivare il supporto della misurazione. Si tratta di una procedura autonoma per le immagini di sistema meno recenti che non supportano l'attivazione/disattivazione della misurazione 5G.

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

Correzioni: emulatore incorporato

  • Ora gli appunti dovrebbero funzionare.
  • È stato risolto il problema per cui i caratteri maiuscoli venivano inviati come caratteri minuscoli nell'emulatore.
  • È stato corretto il caricamento del token della console da un percorso Unicode nelle finestre.
  • Risolto il messaggio di errore SO_REUSEPORT su Linux.
  • Risolto il problema di danneggiamento degli snapshot durante l'invio di comandi snapshot tramite gRPC, nonché quando si preme il pulsante di salvataggio dello snapshot nell'emulatore incorporato di Android Studio.
  • Durante l'utilizzo dell'emulatore Linux incorporato in Studio, abbiamo riscontrato che, se l'operazione viene eseguita tramite Chrome Remote Desktop, è presente un bug per cui XDG_RUNTIME_DIR non è configurato e potrebbe causare la mancata visualizzazione dell'emulatore incorporato a causa dell'inserimento dei file di rilevamento dell'emulatore in XDG_RUNTIME_DIR. Puoi controllare lo stato del problema corrispondente nel tracker dei problemi di Chrome.

    Per risolvere il problema, l'emulatore ora torna a utilizzare i file di rilevamento in una directory possibilmente diversa basata sull'UID utente /run/user/&lt;uid>.

  • emulatore incorporato: i dispositivi con angoli o tacche arrotondate ora modificano correttamente il proprio layout per fare spazio agli angoli e all'incavo. Ciò richiede l'avvio a freddo di questi emulatori.

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

Correzioni generali

  • Abbiamo riscontrato problemi di compatibilità con l'emulatore di Windows con Riot Vanguard attivo. L'emulatore di Windows ora rileva Vanguard anti-cheat e, se viene rilevato, visualizza un messaggio di avviso.
  • Risolto il problema di FD_SETSIZE su Windows. Ora utilizziamo WSAEventSelect() anziché select() per stabilire connessioni che non bloccano i server di loopback.
  • Aggiunto il supporto della funzionalità CPUID F16C all'emulatore Linux con correzioni di problemi relativi all'esecuzione di alcune applicazioni ARM64 tramite traduzione NDK; macOS/Windows in corso.
  • È stata corretta la riproduzione del percorso gpx/KML in modo che segua i timestamp.
  • È stato corretto il mancato recapito dell'icona all'avvio per MacO.
  • Se hw.audioInput=no e hw.audioOutput=no in config.ini, l'audio dell'emulatore è ora disattivato correttamente.
  • Risolto il problema per cui se la finestra dell'emulatore veniva ridotta a icona mentre la finestra dei controlli estesi era aperta ma non attiva, la finestra dei controlli estesi continuava a essere visualizzata durante il ridimensionamento della finestra dell'emulatore. Rimuoveremo completamente il comportamento (il caso con una finestra di controlli estesi attiva) in un aggiornamento futuro.
  • È stato risolto un bug irregolare del Wi-Fi non connesso all'avvio dell'emulatore.
  • È stato risolto il problema con l'uscita in uscita quando l'emulatore generava comandi shell con timeout lunghi o indefiniti.
  • Aggiornamento di pc-bios con correzioni per supportare meglio immagini di grandi dimensioni passate a -initrd; il BIOS precedente utilizzava un metodo molto inefficiente.
  • È stato risolto l'arresto anomalo durante la risoluzione quando viene utilizzata l'opzione -wifi-server-port.
  • L'emulatore ora visualizza un avviso se vengono trasmesse opzioni non supportate a -prop (sono supportate solo gli oggetti qemu.*).
  • Quando crei l'emulatore su Windows, dovresti avere meno possibilità di riscontrare errori instabili durante la scrittura sui file. Per ulteriori informazioni, consulta le istruzioni per la build di Windows.
  • Il pulsante di zoom disattivato per le AVD pieghevoli causava problemi.
  • L'emulatore ora segnala correttamente il tempo di avvio derivante dal riavvio del dispositivo.
  • Linux: nel caso in cui le autorizzazioni KVM siano insufficienti, l'emulatore ora stampa le istruzioni di debug più rapidamente.
  • Risolto il problema per cui l'emulatore non riusciva ad avviare immagini di sistema recenti senza accelerazione.
  • È stato risolto il danneggiamento della memoria o l'arresto anomalo all'avvio da un rilevatore completato in fase di avvio.
  • Risolto il problema di perdita di memoria durante sessioni di registrazione dello schermo lunghe.
  • Le icone emulatore sono state aggiornate in modo da riflettere il branding di Studio 4.1.
  • Aggiunto supporto migliorato per il rilevamento delle sessioni remote su Windows.

Correzioni: grafica e decodifica video

  • Risolto il problema per cui l'ultimo gioco di Asphalt 9 veniva visualizzato con una schermata nera.
  • È stato rimosso lo spam relativo allo svuotamento del buffer mappato con NULL.
  • È stata corretta una condizione di gara durante l'eliminazione dello stato di Vulkan dopo l'uscita di un'app Vulkan ospite.
  • Gli Shader di emulazione Vulkan ASTC/ETC2 sono ora integrati nella libreria libOpenglRender. Questa opzione sarà più affidabile rispetto alla lettura dal file system.
  • Risolto un problema in Vulkan per cui, se eseguita con un'istanza Vulkan 1.0 sull'host, vkGetImageMemoryRequirements2KHR avrebbe cancellato erroneamente il campo pNext dello struct VkMemoryRequirements2 restituito.
  • È stata corretta una perdita di memoria nel renderer Vulkan.
  • Correzione di una regressione recente in cui gli shardr GLSL ES 1.00 con nomi di variabili come isampler2D non sono riusciti a compilare.
  • È stato aggiornato il traduttore di shabbyer ANGLE con varie correzioni che risolvono i possibili errori di compilazione degli smoother su Linux.
  • Ora abbiamo un arresto anomalo dell'emulatore se non è possibile completare la compilazione del framebuffer blit transformer per tenere traccia del fenomeno.
  • Il traduttore di Shadr ANGLE è stato aggiornato per stare al passo con l'upstream ANGLE. Questo ha risolto un problema relativo al danneggiamento della memoria durante la traduzione e il piegamento costante degli Shader OpenGL ES che utilizzavano matrici non quadrate. Il traduttore shabby è ora una libreria condivisa separata, libshadertranslator.dll.
  • Risolto un problema di inizializzazione di Vulkan su alcuni driver GPU, in cui alcune funzioni del dispositivo 1.1 non venivano trovate.
  • Vulkan: Abbiamo ripristinato l'utilizzo del caricatore predefinito, in quanto l'utilizzo del caricatore Vulkan di sistema causava problemi in alcune configurazioni; cercheremo una soluzione migliore.
  • È stato risolto il problema relativo all'utilizzo della memoria esterna Vulkan in cui avrebbe potuto essere importato indici di tipo di memoria non corrispondenti sull'host.
  • È stato risolto il problema di emulazione di GL_ALIASED_POINT_SIZE_RANGE in cui l'enumerazione non era supportata sull'host.
  • È stato risolto il problema per cui, su alcune GPU host, gli smoother Skia non riuscivano a compilare a causa di errori relativi a GL_EXT_shader_framebuffer_fetch.
  • Poiché la nostra copia del renderer D3D9 ANGLE è stata rimossa alcune versioni fa, ora passiamo automaticamente anche gli utenti che si trovavano su quel renderer a d3d11 ANGLE se era stato selezionato nelle preferenze dell'UI.
  • Sono state aggiunte ulteriori informazioni di debug all'inizializzazione di WGL su Windows per tenere traccia degli errori.
  • Quando hw.gltransport=virtio-gpu-pipe, le prestazioni vengono migliorate perché non esegui l'attivazione sull'host nei trasferimenti da host a ospite.
  • Sono state aggiunte ulteriori registrazioni di debug per i casi in cui l'emulazione di OpenGLES non viene inizializzata.
  • Risolto il problema di sfarfallio dei video di YouTube o di mancata visualizzazione durante il caricamento dell'istantanea.
  • Siamo tornati alla decodifica software per libvpx per ora, poiché 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 per i 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 preservare lo spazio sullo schermo, per spostarti rapidamente tra l'emulatore e la finestra dell'editor utilizzando i tasti di scelta rapida e per organizzare il flusso di lavoro dell'emulatore e dell'IDE in un'unica finestra dell'applicazione.

Modalità finestra in formato libero

Ora puoi creare una durata di visualizzazione media in cui è attivata la modalità finestra in formato libero 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 Developer Preview 3 o versioni successive.

Problemi noti

Il ridimensionamento delle finestre in formato libero non funziona a causa di problemi di trasferimento dello stato attivo a Gestione finestre. Questo problema verrà risolto in una futura release dell'immagine 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 durante l'esecuzione di 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 con 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 su immagini di sistema Android 9 e 11

Se in precedenza non potevi utilizzare l'emulatore Android 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 i 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 possono essere eseguiti su immagini di sistema Android 11 x86 e x86_64. Valuta la possibilità di sviluppare per ARM64 quando scegli come target Android 11.

29.0.11 (29 maggio 2019)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

  • Windows: l'emulatore ora si basa sulla DLL libgcc che forniamo anziché essere compilata con libgcc in modo statico.
  • Linux: è stato aggiunto il supporto logcat all'API gRPC. Per maggiori informazioni su gRPC, consulta la pagina relativa all'emulatore di streaming gRPC (Linux).
  • L'emulatore ora include una build headless per guest x86 a 32 bit (qemu-system-i386). Questa funzionalità consente di eseguire immagini x86 a 32 bit per livelli API 26 e inferiori con la build headless. Tieni presente che per gli 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 i percorsi della libreria Qt personalizzati utilizzando la variabile di ambiente ANDROID_QT_LIB_PATH.
  • Ora puoi eseguire l'emulatore con programmi binari precedenti che usano QEMU1 se gli eseguibili QEMU1 (emulator[64]-[x86|arm|etc]) si trovano nella directory dell'emulatore.
  • Windows: risolto un problema che a volte causava il mancato avvio dell'emulatore con un messaggio "Richiesta di arresto di vCPU".
  • Risolto il problema relativo a una barriera non necessaria per la pipeline nelle texture compresse emulate in Vulkan.
  • Risolto l'errore che si verificava con le richieste proxy HTTP quando veniva utilizzata la 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: risolto un problema per cui la webcam e la videocamera della scena virtuale non funzionavano nell'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 guest per enumerare e impostare ogni display. Più display hardware virtuali saranno inclusi in un futuro aggiornamento delle immagini del sistema di emulatori.
  • Nuova opzione della riga di comando aggiunta: -delay-adb. Questa opzione sopprime l'elaborazione dei pacchetti ADB finché il guest non ha completato l'avvio a freddo. Questa opzione consente di risolvere i problemi che potrebbero verificarsi se utilizzi l'emulatore in un ambiente CI che lo riavvia e utilizza contemporaneamente DCM.
  • Risolto un errore che si è verificato durante il caricamento degli snapshot in cui glIsRenderbuffer restituiva il valore errato.
  • Sono stati risolti alcuni problemi relativi allo stato inattivo al riavvio dell'ospite Android.
  • Windows: 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 relative ad auto e motori perché gli snapshot non sono al momento supportati per queste immagini di sistema.

29.0.6 (1 maggio 2019)

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

Rimozione del supporto QEMU1 e di Windows a 32 bit

Per gestire meglio l'emulatore, non spediamo più QEMU1 e file binari di 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 una durata di visualizzazione media che utilizza un'immagine di sistema Android Q, ora devi utilizzare la versione 29.0.6 (questa versione di release) o versioni successive.

Progetti per progetti marmo

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

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

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

Miglioramenti del comportamento dell'audio dell'host

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

Se vuoi utilizzare i dati audio dell'host, puoi abilitare questa opzione andando a Controlli estesi > Microfono e attivando Il microfono virtuale utilizza l'input audio dell'host. Questa opzione viene disattivata automaticamente ogni volta che viene riavviato l'emulatore.

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

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

Miglioramenti per le build di emulatori headless

A partire dalla versione 28.0.25, l'emulatore include un'opzione di build headless che può essere eseguita senza la UI. Puoi usare build headless per configurare l'emulatore per i flussi di lavoro Docker e 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 non incluse nell'emulatore sono state ridotte al seguente elenco:

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

Librerie UI Qt aggiornate 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 durante l'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 non compatibili di alcune librerie dipendenti Qt, ora pacchettiamo 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, invece di 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 dello spegnimento dello schermo in modo che l'emulatore possa essere utilizzato in modalità batteria senza ricarica. In modalità batteria, l'utilizzo della CPU in background si riduce notevolmente.
In modalità di ricarica CA, le operazioni in background di GMSCore, come gli aggiornamenti delle app, possono assumere il controllo di tutti i core della CPU del dispositivo e, 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 Ricerca Google è attiva.
Questo comando viene eseguito in aggiunta al comportamento predefinito dell'emulatore di disattivare l'audio dell'host per l'host. Inoltre, in questo modo viene automaticamente fornita 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 monitorare in dettaglio le prestazioni e l'utilizzo delle risorse dell'emulatore.

SHOW_PERF_STATS=1
Questa variabile di ambiente consente di monitorare l'utilizzo di CPU e RAM. Il monitoraggio dell'utilizzo della RAM fa una distinzione tra l'utilizzo della grafica e la memoria totale residente.
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).
Inoltre, stiamo usando questa variabile di ambiente per contribuire a diagnosticare i problemi riscontrati dagli utenti di Windows con più jank (frame eliminati) rispetto a quelli riscontrati dagli utenti su macOS o Linux.

Miglioramenti generali di Project Marble

Questo aggiornamento include anche i seguenti miglioramenti generali che fanno parte dell'iniziativa Project Marble:

  • Ora puoi mettere immediatamente in pausa tutte le vCPU sull'emulatore tramite i seguenti comandi della console:
    • adb emu avd pause
    • adb emu avd resume
  • Spese generali notevolmente ridotti del disegno OpenGL. Questo miglioramento riduce l'utilizzo della CPU mentre l'emulatore riproduce le animazioni.
  • Ripristino del supporto per il dispositivo di rete virtuale e1000 di QEMU principale. Puoi usare questo dispositivo per configurare l'emulatore in un ambiente di rete con bridge. In un ambiente di rete in modalità bridge, l'emulatore viene visualizzato sulla rete host e la rete host sull'emulatore.
  • Per avviare l'emulatore vengono ora utilizzati i programmi binari del BIOS appropriati per QEMU 2.12.
  • È stato eseguito l'upgrade della versione di ffmpeg alla versione 3.4.5 per la codifica e decodifica di video.
  • L'overhead del loop principale QEMU su macOS è stato notevolmente ridotto mediante la sostituzione del loop principale basato su select() con un loop principale basato su kqueue.
  • Le dimensioni del buffer Logcat sono aumentate a 2 MB per risolvere i problemi con EOF imprevedibili inaspettati durante l'esecuzione di logcat con l'emulatore.
  • L'emulatore ora esporta la variabile di ambiente LC_ALL=C per impostazione predefinita. Questa modifica consente di risolvere arresti anomali e problemi di incompatibilità associati all'esecuzione dell'emulatore in lingue diverse.
  • Ora puoi monitorare l'utilizzo di CPU e RAM dell'emulatore usando le statistiche sulle prestazioni a cui puoi accedere da Controlli estesi > Impostazioni > Avanzate > Statistiche sulle prestazioni. Usa queste statistiche per diagnosticare rapidamente i problemi se l'emulatore sembra utilizzare troppa CPU o RAM.
  • glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE ora utilizza il risultato della GPU host anziché uno emulato. Questa modifica consente di risolvere i problemi relativi alla mancata 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 ulteriori informazioni diagnostiche all'interfaccia utente della segnalazione di bug. Inoltre, puoi accedere alle segnalazioni di bug dalla console utilizzando i seguenti comandi:
    • telnet localhost 5554
    • avd bugreport
  • Sulle immagini di sistema Android Q, l'emulatore aumenta le dimensioni minime della RAM a 2 GB.
  • Sono state aggiunte ulteriori operazioni di logging 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 un AVD, l'emulatore ora tenta di riavviare l'AVD di -read-only altre tre volte in 3 secondi. Questa modifica aumenta la probabilità che l'emulatore sia in grado di avviare istanze -read-only simultanee di un AVD se non viene eseguita la pulizia dei file obsoleti di altre istanze scrivibili della durata di utilizzo (AVD).
  • Per le immagini di sistema future, l'emulatore ora supporta Hardware Composer 2.0. Questa modifica dovrebbe ridurre il carico di lavoro del conducente durante l'esecuzione della 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.
  • Ora gli utenti possono fornire al nostro team metriche di utilizzo di CPU e RAM a intervalli di 10 secondi. Utilizziamo queste metriche per arricchire i nostri dati sull'utilizzo delle risorse dell'emulatore con casi d'uso diversi dei nostri utenti, il che ci consente di rendere l'emulatore più efficiente e reattivo.

Correzioni generali relative a Project Marble

Questo aggiornamento include anche le seguenti correzioni generali che fanno parte dell'iniziativa Project Marble:

  • Risolti i problemi relativi agli spasmi e ai 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 un ritaglio o gli angoli arrotondati).
  • Risolto il problema per cui l'opzione della riga di comando -partition-size non impostava la dimensione della partizione dei dati.
  • Risolto il problema per cui pulseaudio nell'emulatore Linx ruotava e, in alcune situazioni, occupava un intero core della CPU.
  • Sono stati risolti i problemi di accesso alla memoria oltre i limiti durante l'elaborazione di texture compresse.
  • Sono stati corretti gli errori GL che si verificavano sull'host in glTexSubImage2D durante l'aggiornamento di determinati buffer Gralloc (con formato RGB 565, RGB10A2, RGB(A)16F).
  • Risolto un problema di visualizzazione nelle immagini di sistema Android Q con istantanee in cui la geometria dell'area notifiche veniva visualizzata con un'impostazione del divisore di istanze non corretta.
  • Sono stati risolti alcuni problemi di arresto anomalo e blocco difficili da riprodurre al momento dell'avvio a causa della perdita di indicatori da parte di Qt o della presenza di stati incoerenti e incoerenti all'avvio.
  • Risolti numerosi problemi di contemporaneità. Ora siamo in grado di creare l'emulatore Linux con ThreadSanitizer (TSAN), che può scoprire facilmente bug altrimenti difficili da riprodurre.
  • Per gli utenti Linux: abbiamo riscontrato che su alcuni kernel host, il kernel Android guest può presentare un errore ed uscire da KVM con un errore hardware generico. Ora l'emulatore si abort() se ciò accade, per aumentare la possibilità di debug (in precedenza l'emulatore si bloccava).
  • Per gli utenti Linux: per praticità delle configurazioni CI, puoi utilizzare la nuova opzione della riga di comando -stdouterr-file <file-name> per reindirizzare sia stdout sia stderr a un file.
  • Risolto un problema per cui SO_REUSEADDR veniva utilizzato in modo errato. Per ulteriori informazioni, consulta i dettagli dell'impegno.
  • Risolto un problema di lunga data con l'emulatore di Windows per cui i sottoprocessi, come i comandi ADB, non si avviavano se il nome utente conteneva spazi.
  • Risolto il problema di inizializzazione mancante dell'RCU nei thread delle vCPU HAXM. Questa soluzione potrebbe risolvere alcuni arresti anomali e condizioni di gara.
  • È stato risolto un arresto anomalo che si verificava con determinati pattern di salvataggio e caricamento degli snapshot dall'interfaccia utente degli snapshot utilizzando le recenti immagini di sistema Android Q.
  • Risolto il problema per cui la videocamera della scena virtuale risulta vuota quando l'emulatore veniva inizializzato da un'istantanea se era in corso la riproduzione di una macro AR quando veniva salvata l'istantanea relativa.
  • Risolto il problema per cui alcuni utenti con configurazioni di Remote Desktop visualizzavano una schermata nera quando avviavano l'emulatore su Linux. Per evitare che questo accada, l'emulatore ora configura esplicitamente MESA_RGB_VISUAL. Per ulteriori informazioni, consulta i dettagli del commit.
  • Risolto un problema per cui i pulsanti di rotazione apparivano nei AVD della TV.
  • Risolto un problema per cui se l'emulatore era sempre impostato in alto, la finestra dei controlli estesi veniva visualizzata ogni volta che veniva ruotato l'emulatore.

Profili hardware per dispositivi pieghevoli

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

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

  • 7,3" Pieghevole: 1536 x 2152 aperto, 4,6" 840 x 1960 piegato
  • 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 espansione nella barra degli strumenti dell'emulatore, i comandi della console o le seguenti scorciatoie da tastiera:

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

Macro AR

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

Per ulteriori informazioni, consulta Eseguire il test delle azioni AR comuni con le macro.

Supporto di 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 (include la maggior parte delle GPU Intel, NVIDIA e AMD del 2014 e successivi).

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

  • Vulkan = on
  • GLDirectMem = on

Supporto iniziale per sviluppatori ROM

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

Questo supporto è ancora sperimentale e riguarda principalmente gli 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 sull'API Vulkan.

Se usi Linux, puoi provare questa procedura 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 OpenID tramite l'estensione GL_EXT_memory_objects. L'emulatore sfrutta questa funzionalità per fornire un modo completo per eseguire il rendering dell'interfaccia utente Android utilizzando le API Skia Vulkan.

Se 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 Vulkan per macOS

Il supporto per 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
  • libportabilità: ANDROID_EMU_VK_ICD=portability

Problemi noti

A volte HAXM non riesce a mappare la memoria coerente Vulkan all'ospite e disattiva l'emulatore. Questo problema verrà risolto in un prossimo aggiornamento di HAXM.

Emulatore di streaming gRPC (Linux)

Cerchiamo sempre di rendere l'emulatore il più versatile possibile, consentendo il rendering e l'interattività della GPU dell'host nel più ampio ventaglio di contesti di esecuzione. I nostri utenti di CI e desktop remoto hanno i seguenti problemi di lunga data:

  • L'invio programmatico di comandi di input all'emulatore prevede l'esecuzione di comandi shell adb che possono avere un overhead elevato o l'utilizzo della console Telnet, che è più veloce, ma potrebbe non funzionare con alcune configurazioni di rete.
  • Gli utenti di CI spesso eseguono emulatori headless, che possono complicare il rilevamento di problemi che richiedono che lo schermo sia visibile o interattivo.
  • Spesso gli utenti di desktop remoti non possono interagire con l'emulatore quando utilizzano il rendering GPU dell'host, poiché il rendering della GPU è spesso legato ai display non virtuali dell'host.

Per risolvere questo problema, durante l'esecuzione su una macchina 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, è possibile eseguire i comandi gRPC dai client. L'insieme di comandi corrente consente sia di inviare eventi di input sia di ricevere screenshot. Questi comandi consentono di risolvere i seguenti problemi:

  • I comandi di input possono essere inviati all'emulatore con un overhead ridotto tramite HTTP. HTTP consente inoltre di inviare comandi in configurazioni di rete aggiuntive.
  • I comandi degli screenshot possono essere inviati per eseguire una 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 desktop remoto possono eseguire l'emulatore headless sul display principale con rendering con accelerazione GPU mentre utilizzano gRPC per acquisire screenshot e inviare eventi di input per interagire con l'emulatore.

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

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

Al momento sono inclusi i seguenti 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 versione 3.7.0 o successive.
  • Un esempio Python che esegue una query sulla configurazione della VM dell'emulatore e quindi invia una serie di comandi.

28.0.25 (29 marzo 2019)

Questo aggiornamento include i seguenti miglioramenti e correzioni:

Build emulatore headless

L'emulatore è difficile da configurare con Docker e altri flussi di lavoro di integrazione continua (CI) a causa delle aspettative implicite del sistema in grado di supportare Qt e delle sue dipendenze di 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 dipendono da Qt. Su Linux è ancora disponibile un link a libX11, ma ci auguriamo di rimuoverlo presto.

Per utilizzare l'emulatore headless, eseguilo dalla riga di comando come al solito, 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 non corretta dei frame sulle GPU Intel durante l'esecuzione di immagini di sistema Android Q.
  • Sono stati risolti i problemi relativi alla visualizzazione dello schermo nero durante l'utilizzo di immagini di sistema Android Q con le skin di Pixel 2 XL.
  • Per avviare l'emulatore vengono utilizzati gli ultimi programmi binari del BIOS. Questa modifica può contribuire a ridurre gli errori di "richiesta di arresto della vCPU" che a volte si verificano all'avvio dell'emulatore su Windows.
  • È stato eseguito il backporting di una correzione per il problema"Visualizzazione errata al ripristino delle immagini di sistema Android Q da uno snapshot".
  • Gli utenti hanno riscontrato problemi con emulatori"non autorizzati" a causa di una modifica incompatibile in ADB nella versione 28.0.2 degli strumenti della piattaforma. Ora puoi usare in sicurezza ADB dalla versione 28.0.2 dell'emulatore. Se riscontri problemi con gli emulatori "non autorizzati", svolgi i seguenti passaggi per la risoluzione dei problemi:
    1. Esci da tutti gli emulatori.
    2. Elimina entrambi i file ~/.android/adbkey e ~/.android/adbkey.pub.
    3. Esegui questo comando: adb kill-server
    4. Esegui questo comando: adb devices
    5. Cancella i dati della durata 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

In un post recente su Reddit è stato spiegato in che modo il sistema operativo Android ospite utilizzava sempre l'audio del microfono host, consentendo così il funzionamento imprevisto di "Ok Google". Siamo spiacenti. Collaboreremo con il team Android per accertarci 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 vengono ora silenziati per impostazione predefinita. Quando l'ospite usa il microfono, il silenzio viene trasmesso al posto dell'audio dell'organizzatore.
  • Se vuoi utilizzare i dati audio dell'host, ora puoi abilitare questa opzione andando a Controlli estesi > Microfono e attivando Il microfono virtuale usa 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 di CPU sull'emulatore rientra generalmente 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 circa il 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 sei nella schermata Home e senza alcuna app in primo piano, l'utilizzo della CPU potrebbe essere un'ottima soluzione (circa il 25% con picchi fino al 50%). Ciò è causato dal rilevamento della hotword che invia costantemente un ping all'host. Non puoi mitigare questo problema disattivando l'input audio dell'host, perché il costo della CPU è causato principalmente dal tempo necessario per raggiungere l'ospite dall'host. Tuttavia, puoi mitigare il problema revocando le autorizzazioni di microfono dall'app Google.

Quando l'attività è attiva, a volte in caso di inattività: animazioni

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

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 veniva riavviato o il kernel panic con il salvataggio Quickboot. (Issue 120951634)
  • Quando utilizzi un file mappato come snapshot della 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 il problema su Windows che causava il blocco dell'emulatore al caricamento degli snapshot con alcuni modelli di GPU Intel.
  • Risolto un problema che causava uno stato del dispositivo ADB unauthorized quando veniva utilizzata una località ANDROID_SDK_HOME non standard.
  • Risolto il problema su Windows che causava l'arresto anomalo dell'emulatore durante l'avvio delle immagini di sistema con l'accelerazione della CPU disattivata.
  • Risolto il problema di visualizzazione dell'emulatore con pixel. Ora il sottocampionamento dovrebbe funzionare.
  • Risolto il problema su macOS 10.14 e versioni successive per cui il controllo dell'aspetto del mouse della scena virtuale potrebbe diventare troppo sensibile a causa di un'interazione con le nuove impostazioni di sicurezza dell'accessibilità.
  • Risolto un errore di calcolo del fuso orario che causava il cambio sporadico dell'orologio dell'emulatore.
  • Sono stati corretti gli errori di rendering in varie app di motore cocos2d e Unreal.
  • Aggiunto il supporto nell'emulatore per il peer-to-peer Wi-Fi. Se usi l'immagine più recente del Play Store, ora due emulatori possono comunicare tra loro direttamente tramite Wi-Fi. Per utilizzare la connessione peer-to-peer della rete Wi-Fi, avvia due durate di visualizzazione (AVD) con gli stessi argomenti -wifi-server-port e -wifi-client-port:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • Aggiunto il supporto per più webcam su Windows prendendo eventuali dimensioni dei fotogrammi incompatibili e ridimensionandole in modo dinamico per adattarle all'impostazione della fotocamera nell'ospite Android.

28.0.16 (novembre 2018)

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

Utilizzo delle risorse

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

Abbiamo inoltre migliorato l'utilizzo delle risorse nelle seguenti aree:

  • Utilizzo ridotto della memoria dell'emulatore durante i test di lunga durata. Se continui a riscontrare problemi di utilizzo della memoria durante i test di lunga durata, crea un problema che descriva il tuo caso d'uso in Issue Tracker.
  • Utilizzo ridotto della CPU durante l'esecuzione di app con animazioni.
  • Risolto un problema per cui il contesto QEMU AIO poteva perdere su Windows.

Eseguire 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 avviate dopo la prima sono di sola lettura e le modifiche apportate al disco virtuale guest vengono ignorate all'uscita.

Per eseguire più istanze della stessa durata di visualizzazione media contemporaneamente, avvia le istanze 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 incluso lo strumento a riga di comando qemu-img, che ti consente di eseguire il pre-commit dei file QCOW2 prima di avviare più istanze.

Inoltre, se utilizzate insieme alla funzionalità Snapshot di RAM ospite con supporto di file , più istanze AVD condividono lo snapshot AVD principale Quickboot come origine comune di RAM guest copia su scrittura. Questa proprietà indica che le istanze condividono in comune gran parte della RAM. 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 interattivo o CI. Crea i problemi o dai un voto positivo in Issue Tracker.

Snapshot RAM guest supportati da file

Preallocando e mappando la RAM ospite come file, l'emulatore ora può salvare gli snapshot Quickboot durante il runtime, invece di svolgere tutte le attività all'uscita. Se al momento riscontri lunghi tempi di risparmio quando chiudi gli emulatori, abilita questa funzionalità per migliorare le prestazioni di Quickboot. Per impostazione predefinita, uno snapshot Quickboot viene salvato all'uscita e ricaricato ogni volta, ad esempio sospendendo e riattivando un dispositivo reale.

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

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

Gli snapshot acquisiti e caricati tramite l'interfaccia utente degli snapshot funzionano come in precedenza, senza mappatura dei file.

Poiché si tratta di una modifica significativa al funzionamento di Quickboot, apprezzeremmo molto 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 tuo file ~/.android/advancedFeatures.ini:

QuickbootFileBacked = off

Quando avvii l'emulatore da uno snapshot (utilizzando l'opzione della riga di comando -snapshot o avviando da uno snapshot in Gestione AVD), l'emulatore disattiva sia il salvataggio automatico per le istantanee Quickboot sia il salvataggio degli snapshot Quickboot all'uscita. In questo modo ridurrai le probabilità che lo snapshot di Quickboot venga sovrascritto involontariamente ed eviti percorsi di fallback lenti che non utilizzano snapshot Quickboot supportati da file.

QEMU 2.12

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

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

  • x86: gdbstub ora fornisce l'accesso ai registri SSE.
  • Immagini disco: il blocco delle immagini viene aggiunto e abilitato per impostazione predefinita. Più processi QEMU non possono scrivere nella stessa immagine finché l'host supporta 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 nell'interfaccia utente Registrazione dello schermo e Istantanea.
  • Rendi più accessibili le icone di notifica Avvio rapido per gli utenti daltonici.

Grafica

  • Risolto un problema di accesso alla memoria oltre i limiti che poteva verificarsi per i puntatori dell'array Vertex OpenGL ES.
  • Alcune GPU meno recenti non supportavano OpenGL 2.1 o versioni successive (obbligatorio) o presentavano altri problemi di affidabilità. Questi problemi potrebbero causare l'arresto anomalo dell'emulatore all'avvio, il blocco o l'inutilizzabilità con l'impostazione predefinita della GPU. Ora l'emulatore passa automaticamente al renderer Swiftshader se rileva che queste GPU sono in uso.
  • Risolto un problema per cui l'emulatore non pubblicava il framebuffer corretto se FBO != 0 era associato al momento di eglSwapBuffers.
  • È stato risolto il problema per cui il display virtuale di 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 sostituisce tutte le variabili di ambiente relative alla scalabilità Qt.
  • Risolto il 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 nell'avvio dei thread di rendering che potrebbero causare doppie liberazioni o dati danneggiati.
  • Android Emulator ora supporta il supporto delle texture compresse ASTC LDR (GL_KHR_texture_compression_astc_ldr) per le immagini di sistema che utilizzano il livello API 28 o versioni successive.
  • Ora la maggior parte delle GPU moderne dovrebbe poter 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 versioni successive ora passano automaticamente all'utilizzo di Swiftshader (-gpu swiftshader_indirect).
  • Se l'emulatore viene avviato dalla riga di comando utilizzando il flag -no-window, il renderer predefinito ora è Swiftshader.

Posizione

  • Ora l'emulatore può aggiornare l'orientamento insieme alla posizione di latitudine e longitudine. Il sensore virtuale magnetometrico si adatta in modo dinamico al nord magnetico, deducendo il movimento durante la riproduzione di un file GPX o KML.
  • Ora è possibile impostare la velocità del dispositivo nella pagina Posizione.
  • Durante la riproduzione di un file GPX o KML, la velocità viene impostata automaticamente e impostata su zero al termine della riproduzione.
  • L'altitudine non deve più essere compresa tra -1000 e +10.000 metri.
  • Risolto il 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 frame delle videocamere trasmessi dalla webcam. Questa funzionalità impedisce inoltre che gli errori di consegna dei frame provochino il blocco dell'emulatore.

Play Store

Per risolvere i problemi relativi all'esaurimento dello spazio su disco nelle immagini del Play Store, l'emulatore ora ridimensiona automaticamente la partizione dati utente a 6 GB quando viene eseguita con una nuova AVD del Play Store.

Miglioramenti e correzioni generali della qualità

  • Alcuni utenti hanno segnalato che l'emulatore funzionava lentamente. Abbiamo identificato una possibile causa per cui la directory temp dell'emulatore contiene troppi file inattivi. Per risolvere il problema, l'emulatore non archivia più i file dei controlli di 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 riesce ad avviarsi a causa di RAM libera insufficiente, viene visualizzato un messaggio di errore. Se utilizzi Windows e noti che la RAM è priva, ma non riesci comunque ad avviare l'emulatore, è possibile che l'addebito per impegno sia stato superato. Per assistenza in merito a questo problema, visita la pagina per la risoluzione dei problemi dell'emulatore.
  • L'opzione della riga di comando -sysdir ora sostituisce correttamente la directory delle immagini di sistema dedotta.
  • Il modem virtuale ora supporta la query +MAI con informazioni sull'attività del modello.
  • Risolti vari problemi relativi a perdite di memoria, danneggiamento della memoria e utilizzo della CPU. Se riscontri arresti anomali, perdite di memoria o altri utilizzi elevati di risorse, crea un problema in Issue Tracker.
  • Risolto un problema che riappariva su macOS 10.14 per cui l'utilizzo di cuffie Bluetooth con l'emulatore avrebbe ridotto l'audio a livello globale. Per evitare questo problema, l'emulatore ora non usa l'audio Bluetooth su macOS. (Issue 37070892)
  • Risolto un problema su Windows in cui l'orologio dell'emulatore non si trovava nel fuso orario corretto.
  • È stato risolto il problema di lentezza dell'emulatore e si blocca nei sistemi Linux con dischi rigidi che girano (HDD).
  • Risolti alcuni avvisi di compilazione che potrebbero causare il danneggiamento dello stack su macOS.
  • Risolti i problemi che potevano generare segnalazioni fuorvianti di blocco.
  • Risolto un problema relativo all'eliminazione dei pool di thread che potrebbe causare un arresto anomalo se uno dei thread non veniva creato correttamente.
  • Risolto il problema su macOS per cui i timer diventavano inaffidabili, con conseguente blocco e altri comportamenti anomali. Se l'emulatore si blocca su macOS, crea un problema in Issue Tracker.
  • Risolto il problema per cui la chiusura dell'emulatore comportava la disattivazione dell'interfaccia utente ma non la chiusura dell'emulatore.
  • Risolti i problemi relativi agli arresti anomali sporadici, tra cui un'interruzione dovuta all'apertura di troppe istanze di /dev/urandom.
  • Risolto il problema che causava il mancato avvio dell'emulatore dopo la prima volta se ADB veniva chiuso forzatamente.
  • La build MIPS è stata rimossa. Se hai ancora bisogno di MIPS, crea un problema in Issue Tracker.
  • Risolto il problema per cui le connessioni ADB potevano danneggiarsi durante il caricamento degli snapshot.
  • Risolto il problema per cui la finestra dell'emulatore presentava un'immagine secondaria o un teletrasporto fuori schermo al ripristino di un'istantanea con l'orientamento del dispositivo diverso da quello predefinito dell'AVD.
  • Risolti i problemi relativi agli arresti anomali durante il salvataggio degli snapshot.
  • Su Linux, i file system btrfs possono causare rallentamenti estremi perché l'emulatore salva automaticamente gli snapshot e utilizza la funzionalità di copia su scrittura per i dispositivi dei dischi virtuali. Ti consigliamo di eliminare la directory ~/.android/avd ed eseguire il comando seguente nella directory ~/.android/avd vuota:
    chattr +C
    
    In questo modo vengono creati nuovi snapshot in una cartella in cui la funzionalità copy-on-write è disabilitata.

HAXM 7.3.2

Vorremmo menzionare di nuovo HAXM 7.3.2 perché deve essere installato per far funzionare correttamente le immagini di sistema recenti nell'emulatore. HAXM 7.3.2 dovrebbe essere già disponibile nel canale stabile e può anche essere installato manualmente all'indirizzo https://github.com/intel/haxm/releases.

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

  • Risolto il problema degli arresti anomali casuali dei sistemi operativi guest che utilizzano un kernel Linux recente (>= 4.6). ad esempio Ubuntu 18.04 (#39, #74).
  • Risolto il bug dell'emulatore di istruzioni x86 che potrebbe causare un arresto anomalo dell'host (#93).

Ritiro di Windows a 32 bit

A causa del basso utilizzo e degli elevati costi di manutenzione, abbiamo in programma di ritirare la versione a 32 bit dell'emulatore Android che funziona su Windows. Renderemo disponibile 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 un feedback o un dubbio in merito a questo cambiamento futuro.

Se al momento utilizzi la versione a 32 bit dell'emulatore Android che funziona su Windows, faccelo sapere in Issue Tracker e dicci come possiamo collaborare al meglio con te d'ora in poi.

27.3.10 (agosto 2018)

Questo aggiornamento include la seguente correzione di bug:

Correzione della configurazione delle dimensioni RAM

Alcuni utenti hanno segnalato che l'emulatore funzionava lentamente. Abbiamo identificato una possibile causa per cui le dimensioni della RAM AVD nel file config.ini dell'AVD erano impostate in modo errato.

Per limitare 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 tuo 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:

Miglioramento dei messaggi di errore per Windows Hypervisor Platform

Alcuni utenti avevano difficoltà a diagnosticare il motivo per cui l'inizializzazione di Windows Hypervisor Platform (WHPX) non è riuscita quando hanno attivato un emulatore WHPX. Per aiutarti a diagnosticare questi problemi, abbiamo aggiunto messaggi di errore più 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 funzionalità, miglioramenti a funzionalità esistenti e correzioni di bug.

Istantanee

Ora puoi salvare più snapshot AVD per una determinata configurazione dispositivo e scegliere quali snapshot salvati caricare quando avvii l'emulatore.

A partire dalla versione canary di Android Studio 3.2, ogni configurazione del 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 supportare questa espansione delle funzionalità degli snapshot, abbiamo aggiunto una categoria Snapshot alla finestra di dialogo Controlli estesi. Questo nuovo riquadro contiene i controlli per salvare e caricare gli snapshot AVD, tra cui i controlli per salvare e caricare gli snapshot ad avvio rapido, precedentemente disponibili nel riquadro Impostazioni.

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

Per maggiori dettagli, vedi Istantanee.

HAXM 7.2.0

HAXM 7.2.0 è ora disponibile in tutti i canali.

Questo aggiornamento include correzioni di bug e un supporto migliorato per grandi quantità di RAM. Inoltre, con questo aggiornamento HAXM e l'emulatore 27.3 e versioni successive, gli snapshot caricano i propri 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 Configurazione dell'accelerazione delle VM.

27.2.9 (maggio 2018)

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

Registrazione dello schermo

Ora puoi registrare video e audio dall'emulatore Android e salvare la registrazione in un file WebM o GIF animato.

I controlli Registrazione dello schermo si trovano nella scheda Registrazione dello schermo della finestra Controlli estesi.

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

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

Videocamera per scene virtuali e ARCore

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

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

Immagini del Google Play Store su Pixel

Il Google Play Store è ora attivo per le immagini dei dispositivi Pixel e Pixel 2. Ciò è indicato in Gestione AVD in Android Studio 3.2 e versioni successive con il logo di Google Play nella colonna Play Store. Gli AVD con Google Play Store attivato hanno una scheda Google Play nella finestra di dialogo Controlli estesi che offre un comodo pulsante per aggiornare Google Play Services sul dispositivo.

Istantanee

Ora puoi caricare un'istantanea 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 richiesto da ogni operazione. Se continui a riscontrare salvataggi insolitamente lunghi, segnala un problema fornendo i dettagli di CPU, RAM e impostazioni di eventuali software antivirus / firewall/di sicurezza in esecuzione.

Rendering con Skia

Se utilizzi immagini per l'API 27 o versioni successive, l'emulatore può eseguire il rendering dell'interfaccia utente di Android con Skia, che può eseguire il rendering in modo più fluido ed efficiente.

Per il momento, l'utilizzo di Skia richiede di abilitarlo esplicitamente.

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, il che migliora notevolmente le prestazioni e la frequenza fotogrammi per l'acquisizione con webcam, fino a 720p a 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 dell'avvio dell'emulatore a causa di errori libGL e libstdc++.
  • Sono state risolte diverse cause di arresti anomali e blocchi.
  • Per evitare arresti anomali e blocchi causati da uno spazio libero su disco insufficiente, l'emulatore ora verifica se all'avvio è disponibile spazio libero su disco sufficiente e non si avvia finché non sono disponibili almeno 2 GB di spazio libero.
  • Risolto un problema che impediva il rendering di alcuni giochi Unity.
  • Risolto il problema DNS che impediva all'emulatore di connettersi alla rete.
  • Risolto un problema che causava il malfunzionamento delle modifiche alla memoria interna allocata a una durata di visualizzazione media tramite la finestra di dialogo Configurazione dispositivo virtuale.
  • Risolto il problema di creazione di molti processi ADB e arresti anomali non corretti.
  • Risolto il problema per cui i pulsanti di rotazione e altre parti dell'interfaccia utente non rispondevano, a meno che non fosse aperta la finestra dei controlli estesi.
  • Risolto il problema che impediva il funzionamento delle operazioni di copia e incolla dall'host, a meno che la finestra di dialogo dei 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 sono ora disattivati correttamente quando è attiva la modalità aereo.
  • Risolto un problema che causava la disattivazione della funzionalità SMS e cellulare dopo il caricamento di uno snapshot.
  • Non riceverai più falsi messaggi di avviso che dicono “Unable to open... \pstore.bin. Permission denied.”
  • Risolto un problema che impediva il riposizionamento dell'AVD su alcuni schermi Mac.
  • Sono stati risolti i problemi relativi allo sfarfallio e allo schermo vuoto sui computer MacBook Pro più recenti durante l'esecuzione di AVD con le skin di Pixel 2 XL.
  • Sono stati risolti i problemi relativi alle schermate vuote durante il passaggio alla modalità con zoom mentre era attivo un emulatore senza frame.
  • Risolto il problema che causava lo scorrimento della sincronizzazione dell'interfaccia del dispositivo e dei contenuti dell'emulatore quando veniva aumentato 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 è ridotta dopo l'avvio dell'emulatore. (Issue 37095756)
  • Le posizioni inviate a un emulatore sono state inviate a tutti. (Issue 73450633)
  • La posizione GPS impostata utilizzando la console è stata sostituita dai valori impostati utilizzando Controlli estesi > Posizione nell'interfaccia utente grafica. (Issue 73471760)

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

Grazie a questo aggiornamento, a un'immagine di sistema attuale e a 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 emulatore Android.

27.1.10 (febbraio 2018)

  • Risoluzione acquisizione fotocamera

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

    Per funzionare con le immagini di sistema Android 8.1 (livello API 27) e versioni successive, qualsiasi webcam collegata deve avere la capacità di acquisire frame a 720p.

  • Correzioni

    • Risolto un problema per cui a volte l'acquisizione da webcam produceva un'immagine distorta o completamente verde.
    • Risolto il problema che rendeva possibile la visualizzazione del seguente messaggio anche in assenza di un blocco effettivo: "emulator: ERROR: Detect a suspended thread 'Qt event loop'". Nessuna risposta per 15.000 ms".

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

27.1.7 (febbraio 2018)

  • Finestra emulatore senza frame:

    Per impostazione predefinita, gli emulatori con file delle skin dei dispositivi ora vengono mostrati senza una cornice intorno alla finestra. Per mostrare il riquadro della finestra circostante, attiva Mostra frame della finestra intorno al dispositivo nel riquadro Impostazioni della finestra Controlli estesi.

  • Miglioramenti all'Avvio rapido per rendere più efficiente l'utilizzo delle istantanee AVD:

    • Puoi salvare un'istantanea AVD in qualsiasi momento utilizzando il pulsante Salva ora nel riquadro Impostazioni della finestra di dialogo Controlli estesi.
    • L'emulatore riduce il tempo necessario per salvare uno snapshot in molti casi salvando solo la differenza tra lo stato attuale e lo snapshot salvato in precedenza.

    Per i dettagli, consulta la documentazione relativa all'Avvio rapido.

  • L'emulatore è stato aggiornato in modo da utilizzare QEMU 2.9.

    Alcuni miglioramenti degni di nota sono:

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

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

  • Implementazione di Swiftshader conforme a OpenGL ES 3.0:

    Il renderer Swiftshader dell'emulatore è ora completamente conforme a OpenGL ES 3.0. Per i dettagli sul renderer Swiftshader, consulta la sezione Impostazioni > Avanzate di Controlli estesi.

  • Correzioni

    • Risolto il problema per cui la condivisione degli appunti non funzionava a meno che l'opzione Abilita condivisione degli appunti non fosse attivata e disattivata.
    • È stato risolto il problema di blocco durante l'utilizzo del backend del rendering Swiftshader con AVD a bassa risoluzione.

27.0.5 (gennaio 2018)

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

    Se ANGLE funziona meglio per te, puoi riabilitarlo con il flag della riga di comando -gpu angle_indirect. In alternativa, apri la finestra dei controlli estesi, vai a Impostazioni > Avanzate e seleziona ANGLE D3D11 per l'impostazione del renderer OpenGL ES.

  • Risolto il problema per cui Maiusc+B non digitava la lettera B maiuscola.

27.0.2 (dicembre 2017)

  • La nuova funzionalità Avvio rapido fornisce tempi di avvio più rapidi dell'emulatore, in base a un'istantanea della tua istanza AVD.

    L'Avvio rapido è abilitato per impostazione predefinita per tutti i AVD. Anche se la prima volta che avvii una Durata di visualizzazione media, è necessario che venga eseguito un avvio a freddo (proprio come quando si accende un dispositivo), tutti gli avvii successivi sono veloci e il sistema viene ripristinato allo stato in cui è stato chiuso l'emulatore (in modo simile alla riattivazione di un dispositivo).

    Se vuoi controllare quando l'emulatore salva un'istantanea, apri la finestra dei controlli estesi dell'emulatore e fai clic su Impostazioni. Qui puoi selezionare una delle seguenti impostazioni per Salva stato avvio rapido all'uscita:

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

    La tua 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 OpenGL ES 3 per Mac (per immagini di sistema che utilizzano il livello API 24 e versioni successive, le API di Google e l'ABI x86).

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

  • Nuove opzioni per il rendering con Swiftshader / ANGLE:

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

    Le opzioni precedenti -gpu swiftshader e -gpu angle sono state ritirate. Nella finestra dei controlli estesi, le opzioni "SwiftShader" e "ANGLE" per l'impostazione del renderer OpenGL ES in Impostazioni > Avanzate ora utilizzano le varianti *_indirect.

  • Varie altre correzioni di bug.

26.1.4 (agosto 2017)

Questa è una release secondaria con correzioni di bug e i seguenti miglioramenti alla configurazione della GPU:

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

26.1.3 (agosto 2017)

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

  • Questa versione è ora necessaria per utilizzare le immagini di sistema Android 8.0 più recenti. Sono conformi agli alti e includono partizioni vendor.img separate.
  • Il nuovo HAXM 6.2.0 è ora disponibile (controlla l'SDK Manager) e include i seguenti aggiornamenti:
    • Utilizzo della memoria migliorato. Il set di memoria per il picco di lavoro bloccato da HAXM non corrisponde più alle dimensioni della RAM dell'AVD, ma la memoria viene impaginata on demand. Ciò dovrebbe consentire all'emulatore di funzionare in modo più affidabile su macchine con quantità inferiori di RAM.
    • Ora l'emulatore con HAXM 6.2.0 può avviarsi più velocemente su macOS, saltando una lunga fase di inizializzazione.
  • Miglioramenti alla configurazione della GPU
    • Sono stati risolti i problemi relativi alla schermata nera all'avvio durante l'esecuzione del rendering del software lato ospite ricorrendo al rendering del software lato host con Swiftshader. Le revisioni più recenti delle immagini di sistema per i livelli API 19-25 con le API di Google devono avere un rendering lato ospite funzionante.
    • Risolto il problema per cui l'emulatore passa a un renderer software a causa del rilevamento della presenza di GPU Intel meno recenti, ma in realtà l'emulatore funziona su una GPU discreta. Le GPU che passano per l'utilizzo di ANGLE o del rendering Swiftshader sono stabilite come segue:
      • Le iGPU Intel meno recenti presentano problemi con i driver sia sui driver OpenGL che ANGLE D3D. Gli utenti con Intel HD Graphics 3xxx e versioni precedenti utilizzeranno Swiftshader.
      • Alcuni utenti hanno segnalato l'impossibilità di usare le immagini di livello API 25 a causa di un bug per cui "l'Avvio app Pixel continua a interrompersi". Sembra che si tratti di un problema del driver in alcuni modelli Intel HD 4xxx. quindi passeranno all'uso automatico ANGLE.
    • Per ottenere risultati ottimali con l'emulazione della GPU, ti consigliamo di utilizzare una GPU NVIDIA o AMD discreta oppure una GPU Intel più recente (Iris, HD 5xxx, HD 5xx/6xx).
    • Risolto il problema per cui l'emulatore non si avviava (impossibile inizializzare l'emulazione OpenID) se la durata di visualizzazione media era configurata con hw.gpu.mode=host e l'emulatore era stato avviato in un client desktop remoto.
    • Sono state chiarite le impostazioni "Livello API OpenGL ES (richiede il riavvio)"; è stata aggiunta un'opzione per eseguire il downgrade da OpenGL ES 3 a OpenGL ES 2 in caso di problemi o se è necessario eseguire un test su livelli API OpenGL ES inferiori.
    • Il renderer Mesa è deprecato; d'ora in poi per hw.gpu.mode=mesa verrà impostato automaticamente l'utilizzo di Swiftshader sull'host.
  • Miglioramenti per macOS:
    • L'emulatore è ora completamente compatibile con macOS 10.13 High Sierra tramite Hypervisor.Framework o HAXM 6.2.0.
    • Hypervisor.framework è ora abilitato per impostazione predefinita su macOS per le immagini x86 a 32 bit al fine di migliorare le prestazioni e la compatibilità macOS. Se riscontri problemi specifici, invia una segnalazione di bug e aggiungi HVF = off a ~/.android/advancedFeatures.ini (crea questo file se non esiste).
    • Risolti i problemi senza connessione a internet / l'impossibilità di collegare il 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 con buffer in base a AVFoundation.
  • Aggiunto il supporto per il Wi-Fi in alcune immagini di sistema (al momento solo il livello API 25). È disponibile un punto di accesso "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 a dimensioni fisse non avessero spazio di archiviazione sufficiente. Di conseguenza, 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 il problema per cui, se si utilizzava una CPU meno recente con Intel x86 EPT ma senza UG, l'emulatore non riusciva ad avviarsi se veniva configurato più di un core.
  • Risolto il problema per cui HyperV veniva rilevato in modo errato se l'emulatore era in esecuzione in un hypervisor Xen.
  • Risolto il 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 proxy HTTP personalizzata nei controlli estesi (fai clic su Altro , quindi 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 un visualizzatore wipevnc, per eseguire la connessione alla porta 5901.

      • Per utilizzare il client di condivisione dello schermo integrato di Mac, è necessaria una password VNC all'avvio dell'emulatore. Per impostare una password, utilizza questo comando:

        emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio

        Poi 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 emulatore). Se fai clic su Segnala un bug, si apre una finestra di dialogo in cui puoi visualizzare i dettagli della segnalazione di bug, ad esempio lo screenshot, le informazioni di configurazione della durata di visualizzazione media e il log della segnalazione di bug. Puoi quindi salvare il report per te o segnalare problemi con l'emulatore.

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

  • Aggiunto il DNS preferito dall'host all'elenco DNS Qemu su Windows, quando più interfacce di rete virtuale sull'host introducono più indirizzi DNS che non funzionano per l'emulatore.

  • Aggiunto il supporto sperimentale di macOS Hypervisor.Framework per immagini x86 a 32 bit su macOS 10.10 e versioni successive tramite flag del server, che dovrebbero migliorare il tempo 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. Attualmente, 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 delle immagini sul display, il che dovrebbe aiutare a risolvere i problemi di coerenza dei colori su tutte le piattaforme.

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

  • Aggiunge flag di funzionalità aggiornabili online per risolvere rapidamente i problemi derivanti da configurazioni hardware problematiche. Questo consente a Google di implementare correzioni e funzionalità che dipendono dalle configurazioni utente aggiornando i flag lato server. Se riscontri problemi con hardware specifici, segnala un bug per consentirci di effettuare accertamenti.
  • Nuovo supporto dell'input rotatorio per le immagini di sistema del livello 25 dell'API Android Wear. Per emulare la manopola di input rotante 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 su Ask senza input.
  • L'emulatore a 32 bit richiede ora che le dimensioni massime della RAM AVD siano inferiori o uguali a 512 MB, per evitare che l'emulatore esaurisca lo spazio disponibile nello spazio di indirizzi virtuali di 2 GB.
  • Aggiunge il supporto per i percorsi assoluti nelle immagini dell'emulatore.
  • Aggiunge nella finestra estesa per le immagini del Google Play Store una nuova scheda 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 emulatore. Se riscontri problemi con il driver OpenGL su un computer Windows, prova a utilizzare le opzioni ANGLE (D3D11) o ANGLE (D3D9) (è necessario riavviare). Se riscontri problemi con il driver OpenGL su un computer non Windows, prova a utilizzare il renderer software Swiftshader (è necessario riavviare).
  • È stato corretto un arresto anomalo raro all'uscita quando l'emulatore riceve i comandi exit e minimize.
  • Risolve un problema di scalabilità durante la modifica dei display su un computer Mac. (Issue 268296)
  • Risolve un problema in cui l'emulatore impiega il 300% della CPU e lo tiene in sospeso dopo aver ripristinato il computer host dalla modalità di sospensione o quando l'emulatore è in esecuzione da molto tempo.
  • È stato corretto un arresto anomalo all'arresto dell'emulatore.

Aggiornamenti con HAXM v6.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 dell'emulatore Android supporta HAXM v6.1.1, che include i seguenti aggiornamenti:

  • Abilita l'emulazione delle Performance Monitoring Unit (PMU). (Issue 223377)
  • Corregge la coesistenza con VirtualBox e Docker su Mac. (Numero 197915)
  • Rivedi il messaggio di errore di installazione visualizzato quando il programma di installazione non riesce a rilevare Intel VT-x su Windows, in genere perché Hyper-V è abilitato.
  • Aggiunge il supporto per l'accelerazione dell'emulatore Android in una VM Windows basata su Hyper-V. Questo aggiornamento richiede che l'istanza Hyper-V host (quella che gestisce la VM o l'ospite Windows) utilizzi la versione più recente 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 versione 25.0.4 o successiva.
  • 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 desktop conformi, l'emulatore ora supera il 100% dell'elenco mustpass CTS dEQP-GLES2 per Android. Questa funzionalità è stata rilasciata per le immagini x86 a livello API 24 (revisione 11 e versioni successive) e sarà presto inclusa per tutte le immagini di sistema.
  • Prestazioni di riproduzione video migliorate. L'emulatore ora memorizza tutti i buffer di colore del video nella memoria condivisa host/ospite ed esegue la conversione finale da YUV a RGB necessaria nella GPU. Al momento, il formato 1080p30 dovrebbe rientrare nella portata della maggior parte dei sistemi. Questa funzionalità è stata rilasciata per le immagini x86 a livello API 24 (revisione 11 e successive) e sarà presto inclusa per tutte le immagini di sistema.
  • Ora l'emulatore annulla correttamente la registrazione dall'elenco adb devices all'uscita e chiude le porte TCP aperte sulle macchine 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, Android Emulator verrà rilasciato separatamente da SDK Tools. Questa release contiene una serie di miglioramenti delle prestazioni, nuove funzionalità e correzioni di bug.

Revisione secondaria 25.3.1 (marzo 2017)

  • È stato risolto l'arresto anomalo che si verificava su alcune configurazioni GPU disattivando GLAsyncExchange per impostazione predefinita. Questa funzionalità è stata aggiunta nella versione 25.3.0 per migliorare la durata dei frame e i frame al secondo per giochi e video, ma causa errori dell'emulatore su alcune configurazioni di macchine 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.
  • Revisione Strumenti SDK Android 25.3.0.

Nuove funzionalità e correzioni di bug

  • Motore di emulazione aggiornato a QEMU 2.7, che include tutte le correzioni di bug recenti, le prestazioni migliorate e le nuove funzionalità.
  • Nuovo supporto per IPv6.
  • L'emulatore ora utilizza SwiftShader come renderer software puro sull'host.
  • Miglioramenti delle prestazioni di Android Pipe: Android Pipe, il canale di comunicazione principale tra l'emulatore e il sistema operativo Android, è ora un ordine di gran lunga più veloce, ha una latenza minore e offre migliori prestazioni multi-thread. Ciò causa una serie di miglioramenti delle prestazioni dell'emulatore, tra cui:
    • Miglioramento della velocità di push/pull di ADB.
    • Migliore supporto per l'accelerazione 3D.
    • Maggiore reattività complessiva dell'emulatore.
    • Prestazioni grafiche migliorate.
  • Ora l'emulatore utilizza i buffer lato GPU (glBindBuffers/glBufferData) quando vengono richiesti dal guest, riducendo l'overhead della CPU in alcune app.
  • Supporto audio migliorato.
  • I/O disco più veloce: l'emulatore ora utilizza thread separati per inviare l'I/O sul disco, con conseguente riduzione della latenza e migliore velocità effettiva (circa 1,5 volte la velocità di I/O sequenziale, ~5 volte la velocità di I/O ad accesso casuale). Ciò riduce anche il numero di lavaggi sul disco, con un conseguente carico molto inferiore sui dispositivi fisici.
  • L'emulatore ora utilizza file sparsi per l'avvio del disco su computer Windows, velocizzando sia il primo avvio sia gli avvii nei dati eliminati. Durante la creazione o la reimpostazione di una durata di visualizzazione media, l'emulatore ora scrive su disco 100-200 MB di dati, anziché 2 GB o più.
  • Diversi miglioramenti alla GUI:
    • L'emulatore ora utilizza Qt 5.7.0, che include correzioni di bug e miglioramenti delle prestazioni.
    • L'inizializzazione dell'interfaccia utente non tenta più di caricare tutti gli eseguibili dell'emulatore come plug-in Qt, quindi è notevolmente più breve, soprattutto sugli HDD.
    • Le interazioni con l'interfaccia utente ora sono più veloci e fluide, incluse la rotazione, il ridimensionamento delle finestre e il caricamento e la chiusura delle finestre di controlli estese.