Apple

Notes de publication de l'émulateur | Développeurs Android

Par Maximus63 , le 29 mai 2019 - 58 minutes de lecture

Android Emulator est inclus avec Android Studio.

Les versions de l'émulateur antérieures à 25.3.0 ont été distribuées dans le cadre du logiciel Android.
Outils SDK.

Pour vous assurer que vous avez la dernière version, vérifiez la
Gestionnaire de SDK pour les mises à jour.

Pour les versions d’Android Emulator antérieures à 25.3.0, reportez-vous à la
Notes de version des outils SDK Android.

Pour plus de détails sur les bugs corrigés dans chaque version, voir la
Blog sur les mises à jour d'Android Studio.

Contenus

29.0.6 (1er mai 2019)

Cette mise à jour inclut plusieurs nouvelles fonctionnalités, des améliorations aux fonctionnalités existantes,
et corrections de bugs.

Suppression de la prise en charge de QEMU1 et de Windows 32 bits

Pour mieux gérer l'émulateur, nous ne livrons plus QEMU1 et Windows 32 bits.
binaires. Si vous utilisez Windows 32 bits, vous ne pouvez pas mettre à niveau vers la version 29.0.6.

Conditions requises pour les images du système Android Q

Si vous souhaitez exécuter un AVD utilisant une image système Android Q, vous devez maintenant utiliser
version 29.0.6 (cette version version) ou supérieure.

Projet Marble Improvements

Cette mise à jour continue notre travail sur le projet Marble
initiative annoncée lors du sommet des développeurs Android
en novembre 2018. Pour plus d'informations sur les autres améliorations apportées à Project Marble
dans les versions précédentes, voir Android Emulator: Project Marble Improvements.

Pour cette mise à jour, la plupart de nos efforts dans le cadre du projet Marble ont été consacrés à la réduction des
l’utilisation des ressources de l’émulateur, telle que la réduction de l’utilisation du processeur de l’émulateur en mode inactif.
Nous avons également inclus des modifications qui facilitent l'utilisation de l'émulateur dans un
une plus grande variété d’environnements et nous avons résolu les problèmes généraux de qualité.

Les sections suivantes décrivent les améliorations apportées à Project Marble:
inclus avec cette mise à jour:

Améliorations du comportement audio de l'hôte

À partir de la version 28.0.3, l'émulateur bloque l'entrée audio.
de l'hôte par défaut.

Si vous souhaitez utiliser les données audio de l’hôte, vous pouvez activer cette option en allant à
Commandes étendues> Microphone et permettant Microphone virtuel utilise l'hôte
entrée audio
. Cette option est automatiquement désactivée lorsque l'émulateur est
redémarré.

Si vous utilisez la ligne de commande, vous pouvez également activer l'audio hôte à l'aide du bouton
-allow-host-audio option, et vous pouvez utiliser les commandes ADB suivantes pour activer
activer ou désactiver les données audio, respectivement:

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

Améliorations pour les versions d'émulateur sans tête

À partir de la version 28.0.25, l'émulateur comprend une option de génération sans tête.
qui peut fonctionner sans l'interface utilisateur. Vous pouvez utiliser des versions sans tête pour vous aider à configurer le
émulateur pour les flux de travail Docker et d'intégration continue (CI).

Avec cette mise à jour, nous avons apporté d’autres améliorations pour permettre à l’émulateur de fonctionner correctement.
avec un nombre minimum de dépendances. Sous Linux, les constructions sans tête ne sont plus
inclure le pulseaudio ou libX11 bibliothèques. Le partage dépendant du système
Les bibliothèques qui ne sont pas fournies avec l’émulateur ont été réduites à la
liste suivante:

  • 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

Bibliothèques Qt UI mises à niveau vers 5.12 LTS

Cette mise à jour inclut les améliorations suivantes par rapport à la version Qt 5.12 LTS:

  • Pour éviter les accidents dans Qt's libpng décodage au démarrage de certains systèmes
    images, l’émulateur utilise maintenant sa propre copie de libpng décoder les images PNG.
  • Pour résoudre les problèmes liés à certaines installations Linux contenant des versions incompatibles
    de certaines bibliothèques dépendantes de Qt, nous emballons maintenant libfreetype, libsoftokn,
    libsqlite3, et libxkbcommon avec l'émulateur.
  • L’émulateur utilise maintenant les bibliothèques de fenêtrage natives de la plate-forme pour obtenir
    surveiller les dimensions, au lieu d'utiliser les bibliothèques Qt qui sont retournées peu fiables
    résultats.

Optimisations automatiques du processeur après le démarrage à froid

Pour traiter l'utilisation du processeur, l'émulateur exécute maintenant les commandes ADB suivantes à froid.
démarrer après avoir reçu un démarrage complet signal:

Paramètres du shell adb screen_off_timeout 214783647
Cette commande augmente le délai d’arrêt de l’écran afin que l’émulateur puisse être utilisé dans
mode batterie sans charge. En mode batterie, l'utilisation du processeur d'arrière-plan est grandement
réduit.
En mode de charge CA, les opérations en arrière-plan GMSCore telles que les mises à jour d’application peuvent prendre
sur tous les cœurs de processeur du périphérique – et par extension sur la machine de l'utilisateur – sans
Attention.
shell adb pm révoquer com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
Cette commande annule les autorisations de microphone pour l'application de recherche Google, qui
réduit considérablement l'utilisation du processeur d'arrière-plan sur l'écran d'accueil et dans le lanceur lorsque
l'application de recherche Google est active.
Cette commande est exécutée en plus du comportement par défaut de l’émulateur.
désactiver l'audio hôte pour l'hôte. De plus, cela
fournit automatiquement l’atténuation de l’utilisation du processeur décrite pour
détection de mots chauds à partir de la version 28.0.23.

Nouvelles variables d'environnement pour la surveillance des performances

Vous pouvez maintenant utiliser deux nouvelles variables d’environnement pour permettre une surveillance détaillée des données.
les performances et l’utilisation des ressources de l’émulateur.

SHOW_PERF_STATS = 1
Cette variable d'environnement active le suivi de l'utilisation du processeur et de la RAM. suivi
pour l'utilisation de la RAM, fait la distinction entre l'utilisation graphique et la mémoire résidente totale.
ANDROID_EMU_TRACING = 1
Cette variable d’environnement permet d’imprimer chaque fois une entrée ou un graphique
l'opération prend beaucoup de temps (plus de 1 ms).
Nous utilisons également cette variable d’environnement pour diagnostiquer les problèmes
Les utilisateurs Windows ont fait l'expérience de plus de jank (images perdues) que d'utilisateurs
expérience sur macOS ou Linux.

Améliorations générales du projet en marbre

Cette mise à jour inclut également les améliorations générales suivantes faisant partie de l'initiative Project Marble:

  • Vous pouvez maintenant mettre immédiatement en pause toutes les vCPU de l'émulateur via les commandes de console suivantes:
    • adb emu avd pause
    • adb emu avd CV
  • Réduction considérable des frais généraux liés au dessin OpenGL. Cette amélioration réduit l'utilisation du processeur
    pendant que l'émulateur joue des animations.
  • Prise en charge restaurée du périphérique de réseau virtuel e1000 de QEMU. Vous pouvez utiliser
    cet appareil pour configurer l’émulateur dans un environnement réseau ponté. Dans un
    l’interface réseau pontée, l’émulateur est affiché sur le réseau hôte et le
    Le réseau hôte est affiché sur l'émulateur.
  • Les fichiers binaires du BIOS appropriés à QEMU 2.12 sont maintenant utilisés pour démarrer l'émulateur.
  • Mis à niveau ffmpeg version à 3.4.5 pour le codage et le décodage vidéo.
  • Réduction considérable des frais généraux des E / S de la boucle principale QEMU sur macOS en remplaçant la principale
    boucle qui était basée sur sélectionner() avec une boucle principale basée sur kqueue.
  • La taille de la mémoire tampon Logcat a été augmentée à 2 Mo afin de résoudre les problèmes liés aux incidents inattendus.
    EOF lors de l'exécution de logcat avec l'émulateur.
  • L'émulateur exporte maintenant le LC_ALL = C variable d'environnement par défaut. Ce
    changer les adresses et les problèmes d'incompatibilité associés à l'exécution de la
    émulateur dans différents lieux.
  • Vous pouvez maintenant suivre l'utilisation du processeur et de la RAM de l'émulateur à l'aide des performances
    statistiques auxquelles vous pouvez accéder à Contrôles étendus> Paramètres> Avancé>
    Statistiques de performance
    . Utilisez ces statistiques pour diagnostiquer rapidement les problèmes si l'émulateur
    semble utiliser trop de CPU ou de RAM.
  • glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE utilise maintenant le GPU de l'hôte
    résultat au lieu d'un imité. Cette modification permet de résoudre les problèmes liés aux images.
    et les actifs ne s'affichent pas à cause d'un format incorrect pour la relecture.
  • Ajout du support pour les extensions OpenGL ES GL_EXT_texture_format_BGRA8888
    et GL_APPLE_texture_format_BGRA8888 si ces extensions sont supportées par le
    hôte.
  • Ajout de plus d'informations de diagnostic sur l'interface de Bugreport. De plus, vous pouvez accéder à
    rapports de bogue de la console en utilisant les commandes suivantes:

    • telnet localhôte 5554
    • avd rapport de bug
  • Sur les images du système Android Q, l’émulateur augmente sa taille de RAM minimale à 2.
    GB.
  • Ajout de davantage de journalisation et d'impression chaque fois qu'OpenGL ou l'hyperviseur ne parvient pas à
    initialiser.
  • Si l'émulateur ne peut pas démarrer un concurrent -lecture seulement exemple d’un DAV, le
    émulateur tente maintenant de relancer la -lecture seulement AVD 3 fois plus sur 3
    secondes. Ce changement augmente la probabilité que l’émulateur puisse
    lancement simultané -lecture seulement instances d'un AVD si d'autres instances en écriture de
    AVD n’a pas fini de nettoyer les fichiers périmés.
  • Pour les images système à venir, l'émulateur prend désormais en charge Hardware Composer 2.0.
    Cette modification devrait réduire les frais généraux du pilote lors de l'exécution de la plupart des animations.
  • La construction de l'émulateur est maintenant basée sur CMake / Ninja.
  • Dans l'interface utilisateur des commandes étendues de l'émulateur, séparer les lignes dans les raccourcis clavier
    table ont été restaurés.
  • Les utilisateurs peuvent maintenant choisir de fournir à notre équipe les métriques d’utilisation du processeur et de la RAM de manière
    Intervalle de 10 secondes. Nous utilisons ces métriques pour enrichir nos données sur l'émulateur
    l'utilisation des ressources avec différents cas d'utilisation de nos utilisateurs, ce qui nous permet de
    rendre l’émulateur plus efficace et réactif.

Correction générale du projet en marbre

Cette mise à jour inclut également les correctifs généraux suivants faisant partie de la
Projet Marble:

  • Correction de problèmes de contractions et d'images incorrectes affichées sur
    systèmes dotés de processeurs graphiques Intel lors de l’utilisation d’images système Android Q.
  • Résolution des problèmes d'affichage d'un écran noir lors de l'utilisation du système Android Q
    images avec des peaux Pixel 2 XL (ou toute peau présentant une encoche ou des coins arrondis).
  • Correction d'un problème où le -taille de la partition l'option de ligne de commande ne serait pas définie
    la taille de la partition de données.
  • Problème résolu: pulseaudio sur l'émulateur Linx tournait et prenait place
    un cœur de processeur entier dans certaines situations.
  • Correction de problèmes avec un accès mémoire hors limites lors du traitement compressé
    textures.
  • Correction des erreurs GL survenues sur l'hôte dans glTexSubImage2D lors de la mise à jour
    certains tampons gralloc (au format RGB 565, RGB10A2, RGB (A) 16F).
  • Correction d'un problème d'affichage
    dans les images du système Android Q avec des instantanés où l'ombre de notification
    la géométrie a été rendue avec un paramètre de diviseur d'instance incorrect.
  • Correction de quelques problèmes de blocage et de blocage difficiles à reproduire lors du lancement
    en raison de la perte de signaux Qt ou d'avoir des états instables et incohérents au démarrage.
  • Correction de nombreux problèmes de simultanéité. Nous sommes maintenant en mesure de construire l'émulateur Linux
    avec ThreadSanitizer (TSAN), qui peut facilement détecter des bugs autrement
    difficile à reproduire.
  • Pour les utilisateurs de Linux: nous avons constaté que sur certains noyaux d’hôte, l’invité Android
    Le noyau peut générer des erreurs et sortir de KVM avec une erreur matérielle générique. L'émulateur
    va maintenant avorter() quand cela se produit pour augmenter la capacité de débogage
    (Auparavant, l'émulateur était suspendu).
  • Pour les utilisateurs de Linux: pour plus de commodité avec les configurations CI, vous pouvez utiliser le nouveau
    -stdouterr-file option de ligne de commande pour rediriger les deux stdout et
    stderr dans un fichier.
  • Correction d'un problème où SO_REUSEADDR a été utilisé incorrectement. Pour plus d'informations,
    voir les détails du commit.
  • Correction d'un problème de longue date avec l'émulateur Windows où les sous-processus,
    telles que les commandes ADB, n’a pas pu démarrer si le nom d’utilisateur contient des espaces.
  • Correction d'un problème d'initialisation manquante de RCU dans les threads HAXM vCPU. Ce
    Ce correctif peut éventuellement résoudre certains accidents et certaines conditions de concurrence.
  • Correction d'un crash qui se produisait avec certains modèles de sauvegarde et de chargement
    instantanés à partir de l'interface utilisateur des instantanés à l'aide d'images récentes du système Android Q.
  • Problème résolu: la caméra de scène virtuelle était vide lorsque l'émulateur
    a été initialisé à partir d’un instantané si une macro AR était en cours de lecture lorsque cet instantané
    a été sauvé.
  • Problème résolu: certains utilisateurs dotés de configurations de bureau à distance obtenaient un écran noir
    lors du lancement de l'émulateur sous Linux. Pour éviter cela, l'émulateur maintenant explicitement
    configure MESA_RGB_VISUAL. Pour plus d'informations, voir les détails du commit.
  • Correction d'un problème où la rotation
    Les boutons apparaîtront sur les AVD TV.
  • Correction d'un problème où si émulateur
    toujours sur le dessus, la fenêtre des contrôles étendus s’affiche à chaque fois que le
    l'émulateur a été tourné.

Profils matériels pour appareils pliables

L'émulateur inclut désormais des profils matériels pour les périphériques pliables. Pour utiliser ces
nouveaux profils matériels, vous devez utiliser Android Studio 3.5 Canary 10 ou une version ultérieure.

Il existe deux profils matériels pliables que vous pouvez utiliser pour créer un AVD:

  • 7,3 "pliable: 1536×2152 déplié, 4,6" 840×1960 plié
  • 8 "pliable: 2200×2480 déplié, 6.6" 1480×2480 plié

Lorsque vous exécutez l’émulateur avec l’un de ces profils matériels, vous pouvez plier et
dépliez le périphérique en utilisant les actions de pliage et de dépliage
dans la barre d’outils de l’émulateur, les commandes de la console,
ou les raccourcis clavier suivants:

  • Plier: Ctrl + F (Commande + F sur macOS)
  • Se dérouler: Ctrl + U (Commande + U sur macOS)

Macros AR

L'émulateur comprend désormais des macros AR qui peuvent vous aider à tester des actions AR courantes.
Par exemple, vous pouvez utiliser une macro pour réinitialiser tous les capteurs de l'appareil sur leur
État par défaut.

Pour plus d'informations, voir Tester les actions AR courantes avec des macros.

Support Vulkan (Windows, Linux)

Les utilisateurs Windows et Linux peuvent désormais tester les applications Vulkan avec l’émulateur Android jusqu’à
Vulkan 1.1 lors de l’utilisation d’une image système compatible (Android Q Bêta 3 ou supérieur pour
Vulkan 1.1, Android Q Beta 2 pour Vulkan 1.0) et un processeur graphique compatible (cet
inclut la plupart des GPU Intel, NVIDIA et AMD à partir de 2014).

Pour activer le support Vulkan, vous devez ajouter les indicateurs de fonctionnalité suivants à votre
~ / .android / advancedFeatures.ini fichier (créer le fichier s’il n’existe pas):

  • Vulkan = on
  • GLDirectMem = on

Support initial pour les développeurs de ROM

Les développeurs de ROM qui construisent le sdk_phone_x86 ou sdk_phone_x86_64
(userdebug, eng variantes) cibles sur AOSP maîtriser branche peut maintenant exécuter un
Emulateur compatible Vulkan.

Ce support est toujours expérimental et s’adresse principalement aux développeurs qui travaillent sur
images système, pilotes et moteurs de jeu. Beaucoup d'extensions manquent encore.
cependant, HOST_COHERENT la mémoire est supportée, et vous devriez maintenant pouvoir
Exécutez les exemples du didacticiel de l'API Vulkan.

Si vous utilisez linux, vous pouvez essayer ceci en utilisant les commandes suivantes:

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
déjeuner sdk_phone_x86_64-userdebug
make -j12
émulateur -no-snapshot -feature Vulkan, GLDirectMem

Skia rendu avec Vulkan

Les GPU NVIDIA et AMD prenant en charge Vulkan prennent également en charge l’interopérabilité sans copie avec
OpenGL via le GL_EXT_memory_objects extension. L'émulateur exploite cette
possibilité de fournir un moyen complet de rendre l'interface utilisateur Android à l'aide du logiciel Skia
API Vulkan.

Si vous avez un GPU NVIDIA ou AMD prenant en charge Vulkan, utilisez les méthodes suivantes:
commandes permettant de tester le rendu Skia avec une image système compatible (Android Q
Bêta 3 et plus):

coquille adb
su
setprop debug.hwui.renderer skiavk
Arrêtez
début

support macOS pour Vulkan

Le support macOS est toujours expérimental, mais l’émulateur inclut déjà le
Swiftshader,
MoltenVK, et
API de libportability (gfx-rs).
Vous pouvez expérimenter avec ces API en définissant l'environnement suivant
variables:

  • Swiftshader: ANDROID_EMU_VK_ICD = swiftshader
  • MoltenVK: ANDROID_EMU_VK_ICD = moltenvk
  • libportabilité: ANDROID_EMU_VK_ICD = portabilité

Problèmes connus

HAXM peut parfois ne pas réussir à mapper la mémoire cohérente Vulkan à l'invité et se fermer
bas de l'émulateur. Ceci est traité dans une prochaine mise à jour de HAXM.

Emulateur de streaming gRPC (Linux)

Nous essayons toujours de rendre l’émulateur aussi polyvalent que possible en permettant
rendu GPU hôte et interactivité dans la plus large gamme de contextes en cours d'exécution.
Nos utilisateurs de CI et de postes de travail distants ont les problèmes de longue date suivants:

  • L’envoi par programme de commandes d’entrée à l’émulateur implique soit
    exécuter des commandes du shell adb pouvant être très onéreuses, ou utiliser le
    la console telnet, qui est plus rapide, mais peut ne pas fonctionner avec certains réseaux
    configurations.
  • Les utilisateurs de CI utilisent souvent des émulateurs sans tête, ce qui peut compliquer leur observation.
    problèmes qui nécessitent que l’écran soit visible ou interactif.
  • Les utilisateurs de bureau à distance ne peuvent souvent pas interagir avec l’émulateur lorsqu’ils utilisent
    Rendu GPU car le rendu GPU est souvent lié à la configuration non virtuelle de l'hôte.
    affiche.

Pour résoudre ce problème, lorsqu’il est exécuté sur une machine Linux, l’émulateur sert maintenant un
service de gRPC. Le gRPC est un cadre général
pour RPC qui fonctionne sur HTTP.

Par défaut, le service d'émulateur gRPC est désactivé, mais vous pouvez activer le
service en utilisant l’option de ligne de commande suivante, où

est le port sur lequel l’émulateur doit répondre aux requêtes gRPC (généralement 5556):




-grpc 

Une fois le service démarré, les commandes gRPC peuvent être émises par les clients. le
ensemble actuel de commandes permet à la fois l'envoi d'événements d'entrée et la réception
captures d'écran. Ces commandes permettent de résoudre les problèmes suivants:

  • Les commandes d'entrée peuvent être envoyées à l'émulateur avec un temps système minimal via HTTP. HTTP
    permet également d’envoyer des commandes dans des configurations réseau supplémentaires.
  • Des commandes de capture d'écran peuvent être envoyées pour interroger l'écran actuel, même si le
    l'émulateur fonctionne sans tête. Pour l'interactivité, les événements d'entrée peuvent également être envoyés
    Retour à l'émulateur.
  • Les utilisateurs de bureau à distance peuvent exécuter l’émulateur sans tête sur l’affichage principal avec
    Rendu accéléré par le GPU lors de l'utilisation de gRPC pour obtenir des captures d'écran et envoyer des entrées
    événements afin d'interagir avec l'émulateur.

Pour une liste complète des commandes disponibles, voir
ce protobuf.

Pour vous aider à démarrer avec gRPC, nous vous avons fourni quelques exemples de clients.
que vous pouvez vous référer.

Actuellement, cela inclut les exemples suivants:

  • Un service basé sur Go qui peut être utilisé pour interroger les états de l'émulateur.
  • Une application React qui démontre l'interactivité à distance via une capture d'écran et une saisie
    RPC. Cet exemple nécessite la version 3.7.0 ou une version ultérieure de protobuf.
  • Un exemple Python qui interroge la configuration de la machine virtuelle de l’émulateur, puis envoie
    une série de commandes.

28.0.25 (29 mars 2019)

Cette mise à jour inclut les améliorations et correctifs suivants:

Emulateur sans tête

L’émulateur a été difficile à installer avec Docker et d’autres applications continues.
intégration (CI) en raison des attentes implicites du système en cours de traitement.
capable de supporter Qt avec ses dépendances de bibliothèque partagées
(entre autres questions).

Dans un premier temps, nous avons introduit une variante de l'émulateur.
lanceur avec des exécutables QEMU qui ne dépendent pas de Qt. Sous Linux, il y a
toujours un lien vers libX11, mais nous espérons l’enlever aussi bientôt.

Pour utiliser l'émulateur sans tête, exécutez l'émulateur à partir de la ligne de commande, comme d'habitude.
mais remplacer l'invocation binaire de l'émulateur par émulateur sans tête. Pour plus
informations, voir le 28.1.8 Canary
publication de la mise à jour.

  • Correction des secousses et affichage incorrect des images sur les processeurs graphiques Intel lors de l'exécution d'Android
    Q images système.
  • Problèmes résolus d'affichage d'un écran noir lors de l'utilisation du système Android Q
    images avec des skins Pixel 2 XL.
  • Les derniers fichiers binaires du BIOS sont maintenant utilisés pour démarrer l'émulateur. Ce changement
    peut aider à réduire les erreurs de "demande d'arrêt de vCPU" qui se produisent parfois lorsque
    lancement de l'émulateur sous Windows.
  • Backported un problème pour le problème "affichage incorrect lors de la reprise d'images système Android Q à partir d'un instantané".
  • Les utilisateurs rencontraient des problèmes d'émulateurs "non autorisés"
    en raison d'une modification incompatible dans ADB dans platform-tools 28.0.2. Vous pouvez
    Maintenant, utilisez ADB en toute sécurité depuis platform-tools 28.0.2 avec l'émulateur. Si vous êtes
    rencontrez des problèmes avec des émulateurs "non autorisés", procédez comme suit:
    étapes de dépannage:

    1. Quittez tous les émulateurs.
    2. Supprimer les deux ~ / .android / adbkey et ~ / .android / adbkey.pub des dossiers.
    3. Exécutez la commande suivante: adb kill-server
    4. Exécutez la commande suivante: périphériques adb
    5. Essuyez les données AVD.
    6. Relancez l'émulateur.

28.0.23 (29 janvier 2019)

Cette mise à jour inclut les améliorations et correctifs suivants:

Entrée audio de l'hôte désactivée par défaut

Un article récent sur Reddit
détaillé comment le système d'exploitation invité Android utiliserait toujours le microphone de l'hôte
audio, permettant ainsi à "OK Google" de fonctionner de manière inattendue. Nous sommes désolés pour
cela et travaillera avec l'équipe Android pour vous assurer que la détection de mots clés est
désactivé dans l'image système également.

Pour résoudre ce problème, nous avons apporté les modifications suivantes:

  • Les données audio réelles de l'hôte sont maintenant supprimées par défaut. Lorsque l'invité utilise le
    microphone, le silence est passé au lieu de l'audio de l'hôte.
  • Si vous souhaitez utiliser les données audio de l'hôte, vous pouvez maintenant activer cette option en
    aller à Commandes étendues> Microphone et permettant Microphone virtuel
    utilise l'entrée audio de l'hôte
    . Cette option est automatiquement désactivée chaque fois que le
    l'émulateur est redémarré.

Mises à jour sur les enquêtes sur l'utilisation du processeur

Au cours de nos enquêtes sur Project Marble, nous avons constaté une utilisation élevée du processeur sur
l'émulateur tombe généralement dans les trois catégories suivantes:

Au repos: mises à jour automatiques des applications dans les images du Play Store

Nous avons constaté qu'à intervalles aléatoires, toutes les applications installées sont mises à jour, même lorsque le
l’utilisateur n’est pas connecté. Au cours du processus, l’utilisation de l’UC est fonction du nombre
noyaux x 100% (généralement ~ 400%) dans GMSCore et dex2oat. Vous pouvez atténuer cela
problème en désactivant les mises à jour automatiques de l'application dans l'application Play Store.

Au repos: détection de mot clé

Lorsque vous êtes sur l'écran d'accueil et sans aucune application au premier plan, il peut y avoir une grande
utilisation du processeur (~ 25% avec des pics à 50%). Ceci est dû à la détection de mots clés
qui pings constamment l'hôte. Vous ne pouvez pas atténuer ce problème en désactivant l'hôte.
entrée audio parce que le coût du processeur est principalement causé par le temps qu'il faut
voyager à l'invité de l'hôte. Cependant, vous pouvez atténuer ce problème en
révoquer les autorisations de microphone de l'application Google.

En activité, parfois au ralenti: Animations

Les animations sont la troisième source d’utilisation élevée du processeur. Nous avons trouvé que par
l'optimisation de la pile de pilotes graphiques, nous pouvons également réduire l'utilisation du processeur, même lorsque le
l'émulateur n'est pas inactif. Nous allons déployer des optimisations de pilotes graphiques
progressivement dans le cadre du projet Marble.

28.0.22 (21 décembre 2018)

Cette mise à jour inclut les améliorations et correctifs suivants:

  • Correction d'un problème de longue date dans lequel, dans certains paramètres, l'émulateur Mac
    redémarrage ou panique du noyau sur la sauvegarde Quickboot. (Numéro 120951634)
  • Lorsqu’un fichier mappé est utilisé comme instantané RAM, l’émulateur démappe maintenant le
    mappage de fichier explicitement à la sortie.

28.0.20 (11 décembre 2018)

Cette mise à jour inclut les améliorations et correctifs suivants:

  • Correction d'un problème sous Windows qui entraînait le blocage de l'instantané de l'émulateur
    charge avec certains modèles de processeurs graphiques Intel.
  • Correction d'un problème qui causait une non autorisé Etat du périphérique ADB lors de l'utilisation d'un
    non standard ANDROID_SDK_HOME emplacement.
  • Correction d'un problème sous Windows qui entraînait le blocage de l'émulateur lors de
    le démarrage des images système avec l’accélération du processeur désactivée.
  • Correction du pixelisé
    Problème d'affichage de l'émulateur. Le sous-échantillonnage devrait maintenant fonctionner.
  • Correction d'un problème
    sur macOS 10.14+ où le contrôle de la souris par la caméra de la scène virtuelle pourrait devenir
    trop sensible en raison d'une interaction avec les nouveaux paramètres de sécurité d'accessibilité.
  • Correction d'une erreur dans le calcul du fuseau horaire qui pouvait entraîner l'horloge de l'émulateur
    changer sporadiquement.
  • Correction d'erreurs de rendu dans divers cocos2d et Unreal
    applications de moteur.
  • Ajout du support dans l'émulateur pour le peer-to-peer Wi-Fi.
    Deux émulateurs peuvent désormais communiquer directement via Wi-Fi si vous utilisez la dernière
    Pie Play Store image. Pour utiliser le peer-to-peer Wi-Fi, démarrez deux AVD avec le même
    -wifi-server-port et -wifi-client-port arguments:

    • émulateur @ -wifi-serveur-port 9999
    • émulateur @-wifi-client-port 9999
  • Ajout du support pour plus de webcams sur Windows en prenant n'importe quel cadre incompatible
    tailles et les redimensionner dynamiquement pour correspondre au réglage de la caméra dans Android
    client.

28.0.16 (novembre 2018)

Cette mise à jour inclut plusieurs nouvelles fonctionnalités, des améliorations aux fonctionnalités existantes,
et corrections de bugs.

L'utilisation des ressources

L’émulateur utilise désormais moins de RAM, surtout lorsqu’il utilise des images système avec
API de niveau 28 ou supérieur. Ces images système incluent une utilisation améliorée de la mémoire pour
pilotes graphiques côté invité.

En outre, nous avons également amélioré l’utilisation des ressources dans les domaines suivants:

  • Utilisation réduite de la mémoire de l'émulateur lors des tests de longue durée. Si vous avez encore
    rencontrez des problèmes d'utilisation de la mémoire lors de tests de longue durée, veuillez créer
    un problème décrivant votre cas d'utilisation dans Issue Tracker.
  • Réduction de l'utilisation du processeur lors de l'exécution d'applications avec des animations.
  • Problème résolu: le contexte AIO QEMU pouvait fuir sous Windows.

Exécuter plusieurs instances d'un seul DAV simultanément

Vous pouvez maintenant lancer plusieurs instances du même AVD et les exécuter simultanément.
Les instances que vous lancez après la première instance sont en lecture seule et leur
les modifications apportées au disque virtuel invité sont ignorées à la sortie.

Pour exécuter plusieurs instances du même AVD en même temps, lancez toutes les instances.
après la première instance de la ligne de commande en utilisant le -lecture seulement drapeau.

Cette fonctionnalité est rendue possible par la copie des fichiers QCOW2 associés à la
parties inscriptibles de l'image Android. Pour vous aider à gérer l’espace disque, nous avons également
empaqueté le qemu-img outil de ligne de commande pour vous permettre de pré-engager QCOW2
fichiers avant de lancer plusieurs instances.

De plus, utilisé en conjonction avec le Instantanés de RAM invités sauvegardés dans un fichier
fonctionnalité, plusieurs instances AVD partagent le même
instantané principal AVD Quickboot en tant que source commune de RAM invitée à copier-écrire.
Cette propriété signifie que les instances partagent une grande partie de leur RAM en commun. Utilisation
Cette fonctionnalité permet d'exécuter des tests nécessitant l'exécution simultanée de plusieurs périphériques.

Nous apprécions vos commentaires sur les cas d’utilisation possibles qui font partie de vos tâches normales.
flux de travail interactif ou CI. S'il vous plaît créer ou upvote questions en Problème
Traqueur
.

Instantanés de RAM invités sauvegardés dans un fichier

En pré-allouant et en mappant la RAM invitée sous forme de fichier, l’émulateur peut maintenant enregistrer
Instantanés instantanés au cours de l'exécution, au lieu de faire tout le travail à la sortie. Si
vous rencontrez actuellement de longs temps de sauvegarde lorsque vous fermez vos émulateurs, activez
cette fonctionnalité pour améliorer vos performances Quickboot. Par défaut, un démarrage rapide
instantané est sauvegardé à la sortie et chargé à nouveau à chaque fois, comme suspendre et
réveiller un vrai appareil.

Comme la RAM invitée Android est maintenant automatiquement enregistrée par défaut, si vous souhaitez définir une
état de l'appareil et charger à plusieurs reprises à partir de cet état, vous devez dire à l'émulateur
ignorer les modifications après chaque session. Vous pouvez le faire des manières suivantes:

Remarque: Quand tu cours plusieurs instances simultanées du même AVD,
l'émulateur désactive la sauvegarde automatique, mais ces instances utilisent alors toutes les
Fichier de démarrage rapide en tant que source commune de mémoire de copie sur écriture.

Les instantanés pris et chargés via la fonction d'interface utilisateur des instantanés
a fait avant, sans aucun mappage de fichier.

Comme il s’agit d’un changement important dans le fonctionnement de Quickboot, nous aimerions beaucoup
appréciez vos commentaires pour savoir si cela améliore les performances de Quickboot et quoi
genre de problèmes que vous rencontrez en l'utilisant. Si vous rencontrez des problèmes, vous pouvez
désactiver cette fonctionnalité en ajoutant la ligne suivante à votre
~ / .android / advancedFeatures.ini fichier:

QuickbootFileBacked = off

Lorsque vous démarrez l’émulateur à partir d’un instantané (en utilisant le -instantané
ligne de commande, ou lancer à partir d’un instantané dans le gestionnaire AVD) le
L'émulateur désactive l'enregistrement automatique des instantanés Quickboot et l'enregistrement Quickboot.
instantanés à la sortie. Cela réduit les chances que l’instantané Quickboot soit
écrasé par inadvertance et évite les chemins de secours lents qui n’utilisent pas
instantanés Quickboot sauvegardés sur fichier.

QEMU 2.12

Nous avons repositionné notre variante de QEMU de QEMU 2.9 à QEMU 2.12. Cette mise à jour
inclut les modifications suivantes de QEMU:

Voici quelques-uns des changements notables qui ont un impact sur l'émulateur Android:

  • x86: gdbstub donne maintenant accès aux registres SSE.
  • Images de disque: Le verrouillage d'image est ajouté et activé par défaut. QEMU multiple
    les processus ne peuvent pas écrire sur la même image tant que l'hôte prend en charge OFD ou
    verrouillage posix, sauf indication contraire des options.
  • qemu-img: qemu-img redimensionner prend en charge la préallocation des nouvelles parties de l'image.
  • La réduction de QCOW2 est maintenant prise en charge dans qemu et qemu-img.

Accessibilité

  • Résolution des problèmes liés aux lecteurs d’écran et meilleure prise en charge de ces outils dans
    l'interface utilisateur d'enregistrement d'écran et de capture instantanée.
  • A rendu les icônes de notification de démarrage rapide plus accessibles aux utilisateurs daltoniens.

Graphique

  • Correction d'un problème d'accès mémoire en dehors de la limite pouvant survenir pour OpenGL ES
    vertex array pointeurs.
  • Certains GPU plus anciens ne supportaient pas OpenGL 2.1 ou supérieur (requis), ou
    eu d'autres problèmes de fiabilité. Ces problèmes peuvent provoquer le blocage de l'émulateur sur
    démarrer, geler ou être inutilisable avec le paramètre de GPU par défaut. L'émulateur maintenant
    passe automatiquement au moteur de rendu Swiftshader s’il détecte que ces
    Les GPU sont en cours d'utilisation.
  • Correction d'un problème en raison duquel l'émulateur ne publiait pas le framebuffer correct si
    FBO! = 0 était lié au moment de eglSwapBuffers.
  • Résolution du problème suivant: l'affichage virtuel Android ne s'affiche que dans la partie supérieure.
    coin gauche. Nous pensons que cela était dû à des variables d’environnement Qt mal configurées.
    L'émulateur remplace maintenant toutes les variables d'environnement liées à la mise à l'échelle Qt.
  • Correction d'un problème qui entraînait le blocage de l'émulateur dans certaines situations lors du chargement
    Applications GLES1 à partir d’un instantané.
  • Correction des problèmes de simultanéité dans OpenGL et lancement des threads de rendu qui pourraient
    entraîner en double libère ou corrompu des données.
  • Android Emulator prend désormais en charge la prise en charge de la texture comprimée ASTC LDR
    (GL_KHR_texture_compression_astc_ldr) pour les images système utilisant le niveau 28 de l'API
    ou plus.
  • La plupart des GPU modernes devraient désormais pouvoir lancer l'émulateur avec OpenGL ES 3.x
    activé par défaut sans utiliser le GLESDynamicVersion indicateur de fonctionnalité.
  • -gpu guest (rendu du logiciel dans l'invité) est obsolète. Système
    les images pour les API de niveau 28 ou supérieur passent maintenant automatiquement à l’utilisation de Swiftshader
    au lieu (-gpu swiftshader_indirect).
  • Si l'émulateur est lancé à partir de la ligne de commande à l'aide de la commande -pas de fenêtre drapeau,
    le moteur de rendu par défaut est maintenant Swiftshader.

Emplacement

  • L'émulateur peut maintenant mettre à jour le relèvement avec la latitude et la longitude
    position. Le capteur virtuel du magnétomètre s’adapte dynamiquement à la force magnétique
    North en induisant un mouvement lors de la lecture d’un fichier GPX ou KML.
  • La vitesse du périphérique peut maintenant être définie sur la page Emplacement.
  • Lors de la lecture d’un fichier GPX ou KML, la vitesse est réglée automatiquement et est
    mis à zéro à la fin de la lecture.
  • L'altitude n'est plus limitée entre -1 000 et +10 000
    mètres.
  • Problème résolu: la position GPS virtuelle ne serait pas mise à jour
    périodiquement sauf si la fenêtre Contrôles étendus a été ouverte au moins une fois.

Caméra

Sous Windows, davantage de webcams sont maintenant prises en charge car l’émulateur est dynamique.
redimensionne les images de la caméra fournies par la webcam. Cette fonctionnalité a également
empêche les erreurs de livraison de trames de provoquer le blocage de l'émulateur.

Play Store

Pour résoudre les problèmes de manque d’espace disque sur les images du Play Store, le
l'émulateur redimensionne automatiquement la partition userdata à 6 Go lors de l'exécution
avec un nouveau Play Store AVD.

Améliorations et corrections générales de la qualité

  • Certains utilisateurs ont signalé que l'émulateur fonctionnait lentement. Nous avons identifié un
    cause possible où le répertoire temporaire pour l'émulateur se termine avec trop
    fichiers périmés à l'intérieur. En guise de solution de contournement, l’émulateur ne stocke plus le dynamisme de la BAD.
    vérifier les fichiers dans ce répertoire. Cependant, il peut également être utile de supprimer le contenu.
    de ce dossier. Le dossier est situé à l’un des emplacements suivants,
    en fonction de votre système d'exploitation:

    • Les fenêtres: C: Utilisateurs AppData Local Temp AndroidEmulator *
    • MacOS ou Linux: / tmp / android-/ *
  • Si l’émulateur ne parvient pas à démarrer en raison d’une mémoire vive insuffisante, une erreur se produit.
    le message est maintenant affiché. Si vous êtes sur Windows et remarquez qu'il y a de la RAM
    libre, mais vous ne parvenez toujours pas à démarrer l'émulateur, la charge de validation peut avoir
    été dépassé. Pour obtenir de l'aide sur ce problème, voir la page Dépannage de l'émulateur.
  • le -sysdir L'option de ligne de commande remplace maintenant correctement le système inféré
    répertoire d'images.
  • Le modem virtuel prend désormais en charge les informations d'activité de modèle + MAI question.
  • Résolution de divers problèmes liés aux fuites de mémoire, à la corruption de mémoire et à l'utilisation du processeur. Si
    you are experiencing crashes, memory leaks, or other high resource usage, please
    create an issue in Issue Tracker.
  • Fixed an issue that reappeared on macOS 10.14 where using Bluetooth headsets
    with the emulator would degrade audio globally. To prevent this, the emulator
    now avoids using Bluetooth audio when running on macOS. (Issue 37070892)
  • Fixed an issue on Windows where the emulator clock would not be in the correct
    timezone.
  • Fixed emulator slowness and hangs on Linux systems with spinning harddrives
    (HDDs).
  • Fixed some compile warnings that could lead to stack corruption on macOS.
  • Fixed issues that could result in misleading reports of hanging.
  • Fixed an issue with destroying thread pools that could cause a crash if one of
    the threads was not successfully created.
  • Fixed an issue on macOS where timers would become unreliable, leading to hangs
    and other strange behavior. If you experience emulator hangs on macOS, please
    create an issue in Issue Tracker.
  • Fixed an issue where closing the emulator would disable the UI, but not
    actually close the emulator.
  • Fixed issues involving sporadic crashes, including an abort due to opening too
    many instances of /dev/urandom.
  • Fixed an issue that caused the emulator to fail to start after the first time
    if ADB was terminated forcefully.
  • The MIPS build has been removed. If you still require MIPS, please create an
    issue in Issue Tracker.
  • Fixed an issue where ADB connections could become corrupt on snapshot load.
  • Fixed an issue where the emulator window would have an afterimage or teleport
    offscreen when resuming a snapshot where the device orientation was different
    from the AVD's default orientation.
  • Fixed issues involving crashes when saving snapshots.
  • On Linux, btrfs filesystems can cause extreme slowdowns because the emulator
    automatically saves snapshots and uses copy-on-write for its virtual disk
    dispositifs. We recommend cleaning out the ~/.android/avd directory and running
    the following command on the empty ~/.android/avd directory:

    chattr +C
    

    This creates new snapshots in a folder where copy-on-write is disabled.

HAXM 7.3.2

We would like to mention HAXM 7.3.2 again because it must be installed in order
for recent system images to run properly on the emulator. HAXM 7.3.2 should
already be available in the Stable channel, and can also be installed manually
from https://github.com/intel/haxm/releases.

Here are a couple of the issues that this version of HAXM resolved:

  • Fixed random crashes of guest OSes that use a recent Linux kernel (>= 4.6).
    For example, Ubuntu 18.04 (#39, #74).
  • Fixed an x86 instruction emulator bug that could lead to a host crash (#93).

32-bit Windows deprecation

Due to low usage and high maintenance costs, we are planning to deprecate the
32-bit version of the Android Emulator that runs on Windows. We will roll out a
transition plan before removal and end-of-life for the 32-bit version of the
Android Emulator. However, we are actively seeking any feedback or concerns with
this future change.

Please let us know in Issue Tracker
if you currently rely on the 32-bit version of the Android Emulator that runs on
Windows and tell us how we can best work with you going forward.

27.3.10 (August 2018)

This update includes the following bug fix:

RAM size configuration fix

Some users reported that the emulator has been running slow. We identified one
possible cause where the AVD RAM size in the AVD's config.ini file was being
set incorrectly.

To mitigate this, the emulator increases the minimum RAM level for images that
use API level 26 or higher to the Android Studio default level of 1536 MB. Si
your AVD's config.ini file is not listing hw.ramSize in megabytes,
please create an issue in Issue Tracker.
You can find the config.ini file in the following location:

~/.android/avd/.avd/config.ini

27.3.9 (July 2018)

This update includes the following improvements and bug fixes:

Improved error messages for Windows Hypervisor Platform

Some users were having difficulty diagnosing why the Windows Hypervisor Platform
(WHPX) failed to initialize when they activated a WHPX emulator. To help you
diagnose these issues, we have added more informative error messages. Vous pouvez
enable these error messages by running the emulator from the command line using
la -verbose flag.

General fixes

  • Fixed OpenGL errors that occur when loading a snapshot in the camera app.

27.3.8 (July 2018)

This update includes several new features, improvements to existing features,
and bug fixes.

Snapshots

You can now save multiple AVD snapshots for a given device configuration and
choose which of the saved snapshots to load when you start the emulator.

Starting with Android Studio 3.2 Canary 13, each device configuration includes
a control in the advanced settings in the Virtual Device Configuration dialog
with which you can you can specify which AVD snapshot to load when starting the
AVD.

To accommodate this expansion of the snapshot features, we have added a
Snapshots category to the Extended controls dialogue. This new pane
contains controls for saving and loading AVD snapshots, including the controls
for saving and loading the quick-boot snapshot that had previously been in the
Réglages pane.

You can edit the name and description of each saved snapshot.

For details, see Snapshots.

HAXM 7.2.0

HAXM 7.2.0 is now available in all channels.

This update includes bug fixes and improved support for large amounts of RAM.
Also, with this HAXM update and Emulator 27.3 and later, snapshots load their
contents into RAM on demand rather than loading the entire snapshot when the
virtual device starts. This change should greatly decrease the time needed to
load a snapshot.

For details, see Configuring VM acceleration.

27.2.9 (May 2018)

This update includes several new features, improvements to existing features,
and bug fixes.

Screen recording

You can now record video and audio from the Android Emulator and save the
recording to a WebM or animated GIF file.

The screen recording controls are in the Screen record tab of the Extended
Controls
la fenêtre.

Pointe: You can also open the screen recording controls by
  pressing Control + Shift + R (Command + Shift + R on Mac).

To begin screen recording, click the Start recording button in the Écran
record
languette. To stop recording, click Stop recording.

Controls for playing and saving the recorded video are at the bottom of the
Screen record languette. To save the video, choose WebM ou GIF du
menu at the bottom of the tab and click sauvegarder.

You can also record and save a screen recording from the emulator using the
following command on the command line:

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

Captures d'écran

You can take screenshots from the command line with either of the following
commands:

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

Screenshots are saved in PNG format.

Virtual scene camera and ARCore

Developing and testing augmented reality apps (AR) with
ARCore is now even easier with the
new virtual scene camera, which allows you to experiment with your AR experience
within a virtual environment.

For information on using the virtual scene camera in the emulator, see
Run AR apps in Android Emulator.

Google Play Store on Pixel device images

The Google Play Store is now enabled for Pixel and Pixel 2 device images. Ce
is indicated in the AVD Manager in Android Studio
3.2 and later with the Google Play logo in the Play Store colonne. AVDs with
Google Play Store enabled have a jeu de Google tab in the Extended controls
dialog that provides a convenient button for updating Google Play services on
the device.

Snapshots

You can now load a Quick Boot snapshot
without restarting the emulator. To load a snapshot, open the
Extended Controls window to the Réglages
page and click the Load Now bouton.

We have made many improvements to the loading and saving of snapshots to
improve efficiency of resource usage and to minimize the time that each
operation takes. If you still experience unusually long saves, please
file an issue,
providing details of your CPU, RAM, and settings of any antivirus / firewall /
security software that is running.

Rendering with Skia

When using images for API 27 or later, the emulator can render the Android UI
with Skia, which can render more smoothly and efficiently.

For now, use of Skia requires that you explicitly enable it.

To enable Skia rendering, use the following commands in adb shell:

  
  
  
  su
  setprop debug.hwui.renderer skiagl
  Arrêtez
  début

Caméra

On Windows, Android Emulator now uses Media Foundation as the webcam back end,
which greatly improves performance and frame rate for webcam capture, up to 720p
30 FPS.

On Mac, you can now use webcam0 and webcam1 together.

Divers

le -phone-number-prefix command-line option has been changed to
-phone-number [number], which allows setting of the full
numéro de téléphone.

You can now use alphanumeric SMS addresses.

Fixes

  • The Linux version of the Android Emulator is now built using a modern Clang
    C++ toolchain. This change fixes the issue of the emulator failing to start
    due to libGL and libstdc++ errors.
  • Fixed several causes of crashes and hangs.
  • To avoid crashes and hangs caused by not having enough free disk space, the
    emulator now checks for sufficient free disk space on startup, and will not
    start unless at least 2 GB is free.
  • Fixed an issue that prevented some Unity games from rendering.
  • Fixed DNS issue that caused the emulator to be unable to connect to the
    réseau.
  • Fixed an issue that caused changes to the internal storage allocated to an AVD
    through the Virtual Device Configuration dialog to not work.
  • Fixed an issue of many adb processes being created and not properly shut down.
  • Fixed an issue that caused the rotate buttons and other parts of the UI to
    become unresponsive unless the Extended controls window was open.
  • Fixed an issue that caused copy and paste from the host to not work unless the
    Extended controls dialog was opened at least once.
  • The frameless emulator's resize rectangle has been updated to better follow
    the emulator's visual theme.
  • Telephone and SMS are now properly deactivated when airplane mode is on.
  • Fixed an issue that caused SMS and cellular functionality to be disabled after
    loading a snapshot.
  • You will no longer receive false warning messages saying
    “Unable to open... pstore.bin. Permission denied.”
  • Fixed an issue that prevented re-positioning the AVD on some Mac screens.
  • Fixed issues with flickering and blank screens on newer MacBook Pro computers
    when running AVDs with Pixel 2 XL skins.
  • Fixed issues with blank screens when switching into zoomed mode while a
    frameless emulator was active.
  • Fixed an issue that caused the device skin and emulator contents to scroll out
    of sync when zoomed in.

If you are still experiencing hangs or other instabilities, please
file an issue.

27.1.12 (March 2018)

This update includes fixes for the following issues:

  • Bluetooth audio quality degraded after starting the emulator.
    (Issue 37095756)
  • Locations sent to one emulator were sent to all of them.
    (Issue 73450633)
  • GPS location set using the console was overridden by values set using
    Extended Controls > Location in the graphical user interface.
    (Issue 73471760)

If you are still experiencing hangs or other instabilities, please
file an issue.

With this update, a current system image, and a preview version of Android
Studio, you can use Android Emulator to run augmented reality applications built
with ARCore. For detailed requirements and instructions, see
Run AR apps in Android Emulator.

27.1.10 (February 2018)

  • Camera capture resolution

    720p frames can now be captured from an attached webcam.

    To work with Android 8.1 (API level 27) and higher system images, any
    attached webcam must have the capability to capture 720p frames.

  • Fixes

    • Fixed an issue that caused webcam capture to sometimes output a distorted
      or all-green image.
    • Fixed an issue that made it possible to see the following message even when
      there was no actual hang: "emulator: ERROR: detected a hanging thread 'Qt
      event loop'. No response for 15000 ms".

If you are still experiencing hangs or other instabilities, please
file an issue.

27.1.7 (February 2018)

  • Frameless emulator window:

    By default, emulators with device skin files are now shown without a
    surrounding window frame. To show the surrounding window frame, enable
    Show window frame around device in the Settings pane of the Extended
    Controls
    la fenêtre.

  • Quick Boot improvements to make working with AVD snapshots more efficient:

    • You can save an AVD snapshot at any time using the Save Now button in
      the Settings pane of the Extended Controls
      dialog box.
    • The emulator reduces the time that it takes to save a snapshot in many
      cases by saving only the difference between the current state and the
      previously saved snapshot.

    For details, see the Quick Boot
    documentation.

  • The emulator has been updated to use QEMU 2.9.

    Some notable improvements include the following:

    • Optimized I/O and finer-grained I/O thread locking for greater performance.
    • Fixed bugs since QEMU 2.8 (26.1.4).
    • New implementation of the HAXM back end.

    See the full list of changes in the QEMU 2.9 change log.

  • Swiftshader implementation conforming to OpenGL ES 3.0:

    The emulator's Swiftshader renderer now conforms fully with OpenGL ES 3.0.
    For details of the Swiftshader renderer, see the Settings > Advanced
    section of Extended Controls.

  • Fixes

    • Fixed an issue where clipboard sharing was not working unless the Activer
      clipboard sharing
      option was toggled off and on.
    • Fixed a hang when using the Swiftshader rendering back end with
      low-resolution AVDs.

27.0.5 (January 2018)

  • ANGLE for rendering on Windows is now disabled by default.

    If ANGLE works better for you, you can re-enable it with command line
    drapeau -gpu angle_indirect. Or, open the Extended controls window, navigate
    à Settings > Advancedet sélectionnez ANGLE D3D11 pour
    the OpenGL ES renderer setting.

  • Fixed an issue where Shift+B does not type a capital B character.

27.0.2 (December 2017)

  • New Quick Boot feature provides faster emulator start times, based on a
    snapshot of your AVD instance.

    Quick Boot is enabled by default for all AVDs. Although the first time you
    start an AVD it must perform a cold boot (just like powering on a device),
    all subsequent starts are fast and the system is restored to the state at
    which you closed the emulator (similar to waking a device).

    If you want to control when the emulator saves a snapshot, open the
    emulator's Extended controls window
    et cliquez Réglages. Here, you can select one of the following settings
    pour Save quick boot state on exit:

    • Oui: Always save quick boot snapshot when you close the emulator.
      This is the default.
    • Non: Never save quick boot snapshot; always perform a cold boot.
    • Demander: Prompt whether or not to save quick boot snapshot when you close
      the emulator.

    Your selection applies only to the currently open AVD.

    For more information, see the Quick Boot documentation.

  • Added support for Mac OpenGL ES 3 (for system images using API level 24 and
    higher, Google APIs, and the x86 ABI).

  • For added stability in OpenGL ES 2+ apps, emulator now uses OpenGL core
    profile if available.

  • New options for rendering with Swiftshader / ANGLE:

    • -gpu swiftshader_indirect: Faster, more stable variant of Swiftshader
      that works with Quick Boot.
    • -gpu angle_indirect (Windows only): More stable variant of ANGLE D3D
      that also works with Quick Boot.

    The older -gpu swiftshader et -gpu angle options are now deprecated.
    In the Extended controls window, the "SwiftShader" and "ANGLE" options for
    the OpenGL ES renderer setting in Settings > Advanced now use the
    *_indirect variants.

  • Various other bug fixes.

26.1.4 (August 2017)

This is a minor release with bug fixes and the following
improvements to GPU configuration:

  • Enable boot animation when running on ANGLE renderer
  • Disable GLES3 when running on ANGLE renderer

26.1.3 (August 2017)

This is a minor release with bug fixes, performance improvements, and small
feature changes.

  • This version is now required to use the latest Android 8.0 system images.
    They are Treble-compliant,
    featuring separate vendor.img partitions.
  • New HAXM 6.2.0 now available (check the SDK Manager) and includes the
    following updates:

    • Improved memory usage. The peak working set of memory pinned by HAXM is
      no longer equal to the size of the AVD's RAM; instead, memory is paged in
      à la demande. This should help the emulator run more reliably on machines with
      lower amounts of RAM.
    • The emulator with HAXM 6.2.0 can now boot faster on macOS, skipping a
      lengthy initialization phase.
  • Improvements to GPU configuration
    • Fixed issues with black screen on boot when performing guest-side
      software rendering by falling back to host-side software rendering with
      Swiftshader. Latest revisions of system images for API levels 19 – 25 with
      Google APIs should have working guest-side rendering.
    • Fixed an issue where the emulator was switched to a software renderer
      due to detecting the presence of older Intel GPUs, but the emulator was
      actually running on a discrete GPU. Which GPUs will be switched to use ANGLE
      or Swiftshader rendering is determined as follows:

      • Older Intel iGPUs have driver issues on both OpenGL and ANGLE D3D
        drivers. Users with Intel HD Graphics 3xxx and older will use
        Swiftshader.
      • Some users reported the inability to use API level 25 images because
        of a bug in which "Pixel Launcher keeps stopping." This seems to be a
        driver issue in some Intel HD 4xxx models. So they will be switched to
        use ANGLE automatically.
    • For best results with GPU emulation, we recommend either to use a
      discrete NVIDIA or AMD GPU, or a newer Intel GPU (Iris, HD 5xxx,
      HD 5xx/6xx).
    • Fixed an issue where the emulator would fail to start (OpenGL emulation
      failed to initialize) if the AVD was configured with hw.gpu.mode=host et
      the emulator was launched in a remote desktop client.
    • Clarified "OpenGL ES API level (requires restart)" settings; added an
      option to downgrade from OpenGL ES 3 to OpenGL ES 2 if experiencing issues
      or needing to test on lower OpenGL ES API levels.
    • Mesa renderer is deprecated; hw.gpu.mode=mesa sera maintenant
      automatically switched to use Swiftshader on the host.
  • Improvements for macOS:
    • The emulator is now fully compatible with macOS 10.13 High Sierra
      through either Hypervisor.Framework or HAXM 6.2.0.
    • Hypervisor.framework is now enabled by default on macOS for 32-bit x86
      images to improve performance and macOS compatibility. If you experience
      issues with it specifically, please file a bug report and append HVF = off
      à ~/.android/advancedFeatures.ini (create this file if it doesn't exist).
    • Fixed issues with no internet / failure to attach debugger while using
      Hypervisor.framework.
    • To enhance compatibility and performance of webcam capture, the
      QTKit-based camera capture has been replaced with a buffered one based on
      AVFoundation.
  • Added support for Wi-Fi in some system images (currently only API level 25).
    An access point called "AndroidWifi" is available and Android automatically
    connects to it. Wi-Fi support can be disabled by running the emulator with the
    command line parameter -feature -Wifi.
  • Some users raised the concern that the fixed-size Play Store system images
    did not have sufficient storage. As such, we've increased the size to 2 GB by
    default (up from 800 MB).
  • Added a keyboard shortcut (Ctrl+Shift+U) to open the bug reporting UI page
    directly from the settings page.
  • Fixed an issue where if an older CPU with Intel x86 EPT but without UG was
    used, the emulator would fail to boot if more than one core was configured.
  • Fixed an issue where HyperV would be improperly detected if the emulator was
    itself running in a Xen hypervisor.
  • Fixed an issue where the emulator would crash on start in some Linux
    configurations.

26.1.2 (July 2017)

This release includes new features and performance improvements.

  • Added the ability to define a custom HTTP proxy configuration in the
    extended controls (click Plus ,
    puis cliquez sur Réglages et
    Procuration). By default, the emulator uses the Android Studio HTTP proxy
    settings, but this screen allows you to define a manual proxy configuration.

  • Added VNC support for guest mode GPU so emulator can be remotely viewed and
    controlled. For example, you can launch the emulator and let VNC listen to
    port 5901 as follows:

    1. Execute: emulator -gpu guest -avd avd_name
      -no-window -qemu -vnc :1
    2. Open a VNC viewer, such as tightvnc viewer, to connect to port 5901.

      • To use Mac's built-in screen sharing client, a VNC password is
        required when launching the emulator. To set a password, use this
        commander:

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

        And then enter change vnc password into the console, and enter a
        password.

    Android O is not currently supported for VNC mode.

  • Added a File a bug button in the extended controls Help screen
    (Cliquez sur Plus ,
    puis cliquez sur Aidez-moi et Emulator help). Clicking File a bug
    opens a dialog where you can see the bug report details such as the
    screenshot, the AVD configuration info,
    and a bug report log. You can then save the report for yourself or
    report emulator issues.

  • Added gyroscope sensor to emulator and virtual sensors panel. This requires
    a system image with gyroscope support to work (currently API level 24
    and 25).

  • Added host-preferred DNS to Qemu DNS list on Windows, when multiple virtual
    network interfaces on the host introduce multiple DNS addresses which are
    not functional for the emulator.

  • Added experimental macOS Hypervisor.Framework support for 32-bit x86 images
    on macOS 10.10+ through server flags, which should improve boot time and
    performance.

    • If you experience problems with it, add the line HVF = off dans
      ~/.android/advancedFeatures.ini.
  • OpenGL ES 3.x is now enabled by default for system images and host GPUs that
    support OpenGL ES 3. Currently, only Android O (API level 26) and
    Windows/Linux hosts support OpenGL ES 3.

    • If you experience problems with OpenGL ES 3, add the line
      GLESDynamicVersion = off dans ~/.android/advancedFeatures.ini.
  • Emulator now uses offscreen OpenGL FBOs for all rendering except final
    display image posting, which should help with color consistency issues
    across platforms.

  • After collecting data on sudden emulator slowdown issues, we have determined
    that the problem may have to do with some interaction between older Intel
    OpenGL drivers and Windows updates. As such, users with Intel HD 4000, 3000,
    2000 (and related GPUs) now have rendering set by default to either a D3D
    renderer (ANGLE) or Swiftshader (software renderer).

26.0.0 (March 2017)

This release is compatible with API level 26. It also includes a number of
    performance improvements and bug fixes.

Minor revision 26.0.3 (May 2017)

  • Adds online-updateable feature flags for quickly addressing issues
      stemming from problematic hardware configurations. This allows Google to
      roll out fixes and features that are dependent on user configurations by
      updating server-side flags. If you notice issues with specific hardware,
      please report a bug so we can
      investigate the problem.
  • New support for rotatif
        contribution
    for Android Wear API level 25 system
      images. To emulate the rotary input dial on a Wear device, click the
    Rotary Input tab on the extended window.
  • The Crash Reporting dialog is now resizable and no longer resets
    When to send crash reports à Demander without input.
  • The 32-bit emulator now requires that the maximum AVD RAM size be less
      than or equal to 512 MB, in order prevent the emulator from running out of
      room in the 2 GB virtual address space.
  • Adds support for absolute paths in emulator images.
  • Adds a new tab in the extended window for Google Play Store images that
        displays the Play Services version and a button to check for updates to
        Play Services.
  • Adds a dropdown to select the OpenGL renderer on the Emulator Settings page.
        If you are experiencing issues with the OpenGL driver on a Windows
        machine, try using the ANGLE (D3D11) or ANGLE (D3D9) options (requires a
        restart). If you are experiencing issues with the OpenGL driver on a
        non-Windows machine, try using the Swiftshader software renderer (requires
        a restart).
  • Fixes a rare crash on exit when the emulator receives both
    sortie et minimiser commandes.
  • Fixes a scaling issue when changing displays on a Mac machine.
        (Problème
        268296
    )
  • Fixes an issue where the emulator takes 300% of the CPU and holds it
        after resuming the host computer from sleep or when the emulator has been
        running for a long time.
  • Fixes a crash when the emulator is shutting down.

Updates with HAXM v6.1.1 (March 2017)

Remarque: HAXM v6.1.1 is available for Mac
      users through the SDK
      Directeur
as of March 30th, and will be available for Windows users soon.

Version 26.0.0 of the Android Emulator supports HAXM v6.1.1, which
   includes the following updates:

  • Enables Performance Monitoring Units (PMU) emulation.
            (Issue 223377)
  • Fixes coexistence with VirtualBox and Docker on Macs.
            (Issue 197915)
  • Revises the installation error message displayed when the installer
            fails to detect Intel VT-x on Windows, usually because Hyper-V is enabled.
  • Adds support for accelerating the Android Emulator in a Hyper-V-based
            Windows VM. This update requires that the host Hyper-V instance (the one
            that manages the Windows VM/guest) use the latest version of Hyper-V
            with nested virtualization enabled. Hyper-V must be désactivée dans
            the guest Hyper-V instance (the Windows VM).

Dependencies

  • Android SDK Platform-Tools revision 25.0.4 or later.
  • Android SDK Tools revision 26.0.0 or later.

New features and bug fixes

  • Compatible with API level 26.
  • Fully GLES 2.0 compliant. Given a host GPU that has conformant desktop
        OpenGL drivers, the emulator now passes 100% of the Android CTS dEQP-GLES2
    mustpass
    liste
    . This has been released for API level 24 x86 images (revision 11
        and higher) and will soon be included for all system images.
  • Improved video playback performance. The emulator now stores all video
        color buffers in host/guest shared memory and performs necessary final
        YUV to RGB conversion in the GPU. 1080p30 should be well within reach of
        most systems now. This has been released for API level 24 x86 images
        (revision 11 and higher) and will soon be included for all system images.
  • The emulator now correctly unregisters itself from the adb
        dispositifs
    list on exit and closes open TCP ports on Linux machines.
  • adb connections are now more reliable. A running emulator is detected
        faster and doesn’t go into “offline” or “unauthorized” status anymore.

25.3.0 (March 2017)

As of this release, the Android Emulator will be released separately from
  the SDK Tools. This release contains a variety of performance
  improvements, new features, and bug fixes.

Minor revision 25.3.1 (March 2017)

  • Fixed a crash occurring on some GPU configurations by disabling GLAsyncSwap by default.
      This feature was added in 25.3.0 to improve frame timing and frames per second for games
      and video, but causes the emulator to fail on some unknown machine configurations. Vous pouvez
      manually enable it by opening the
    android_sdk/emulator/lib/advancedFeatures.ini fichier et
      réglage GLAsyncSwap = on.

Dependencies

  • Android SDK Platform-Tools revision 24 or later.
  • Android SDK Tools revision 25.3.0.

New features and bug fixes

  • Updated emulation engine to QEMU 2.7, including all recent
      bug fixes, improved performance, and new features.
  • New IPv6 support.
  • The emulator now uses SwiftShader as a pure software renderer on
      the host.
  • Android Pipe performance improvements: Android Pipe, the main
      communication channel between the emulator and Android OS, is now an
      order of magnitude faster, has lower latency and offers better
      multi-threaded performance. This causes a number of performance
      improvements for the emulator, including:

    • Improved ADB push/pull speed.
    • Better 3D acceleration support.
    • Increased overall responsiveness of the emulator.
    • Improved graphics performance.
  • The emulator now uses GPU-side buffers (glBindBuffers /
      glBufferData) when the guest requests them, decreasing CPU overhead
      in some apps.
  • Improved audio support.
  • Faster disk I/O: The emulator now uses separate threads to
      dispatch disk I/O, resulting in lower latency and better throughput
      (~1.5x sequential I/O speed, ~5x random access I/O speed). This also
      reduces the number of flushes to disk, resulting in much lower
      physical device load.
  • The emulator now uses sparse files for disk boots on Windows
      machines, speeding up both first boot and "wipe-data" boots. Quand
      creating or resetting an AVD, the emulator now writes 100-200 MB of
      data to disk, instead of 2 GB or more.
  • Various GUI enhancements:
    • The emulator now uses Qt 5.7.0, which includes bug fixes and
            performance improvements.
    • UI initialization no longer attempts to load all emulator
            executables as Qt plugins, so it's dramatically shorter,
            especially on HDDs.
    • UI interactions are now faster and smoother, including
            rotation, window resizing, and extended controls window loading
            and closing.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.