Notes de publication de l'émulateur | Développeurs Android
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 delibpng
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 maintenantlibfreetype
,libsoftokn
,
libsqlite3
, etlibxkbcommon
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 sursélectionner()
avec une boucle principale basée surkqueue
. - 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
etGL_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 maintenantavorter()
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 deuxstdout
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
configureMESA_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:- Quittez tous les émulateurs.
- Supprimer les deux
~ / .android / adbkey
et~ / .android / adbkey.pub
des dossiers. - Exécutez la commande suivante:
adb kill-server
- Exécutez la commande suivante:
périphériques adb
- Essuyez les données AVD.
- 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 standardANDROID_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:
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
etqemu-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 deeglSwapBuffers
. - 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 leGLESDynamicVersion
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-
/ *
- Les fenêtres:
- 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/
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".
- Fixed an issue that caused webcam capture to sometimes output a distorted
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. - You can save an AVD snapshot at any time using the Save Now button in
-
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.
- Fixed an issue where clipboard sharing was not working unless the Activer
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.
- Oui: Always save quick boot snapshot when you close the emulator.
-
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 separatevendor.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.
- Improved memory usage. The peak working set of memory pinned by HAXM is
- 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.
- Older Intel iGPUs have driver issues on both OpenGL and ANGLE D3D
- 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 withhw.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.
- Fixed issues with black screen on boot when performing guest-side
- 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 appendHVF = 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.
- The emulator is now fully compatible with macOS 10.13 High Sierra
- 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:- Execute:
emulator -gpu guest -avd avd_name
-no-window -qemu -vnc :1 -
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 stdioAnd then enter
change vnc password
into the console, and enter a
password.
-
Android O is not currently supported for VNC mode.
- Execute:
-
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
.
- If you experience problems with it, add the line
-
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
.
- If you experience problems with OpenGL ES 3, add the line
-
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
etminimiser
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
list on exit and closes open TCP ports on Linux machines.
dispositifs - 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églageGLAsyncSwap = 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.
- The emulator now uses Qt 5.7.0, which includes bug fixes and
Commentaires
Laisser un commentaire