Faire fonctionner l’émulateur Android plus rapidement

L’émulateur Android est un peu lent. Pour certains appareils, comme le Motorola Droid et le Nexus One, l’application s’exécute plus rapidement sur le périphérique que l’émulateur. C’est un problème lors du test des jeux et des effets visuels.

Comment faire fonctionner l’émulateur aussi vite que possible? J’ai joué avec ses parameters mais je n’ai pas trouvé de configuration qui montre une amélioration notable pour le moment.

Page web officielle

~ 50% plus vite

Les fenêtres:

  • Installez “Intel x86 Emulator Accelerator (HAXM)” => Gestionnaire de SDK / Extras
  • Installer “Images Intel x86 Atom System” => SDK-Manager / Android 2.3.3
  • Accédez au dossier racine du SDK Android et accédez à extras \ intel \ Hardware_Accelerated_Execution_Manager. Exécutez le fichier IntelHaxm.exe à installer. (dans Android Studio, vous pouvez accéder à: Paramètres -> SDK Android -> Outils SDK -> Accelerator Intel x86 Emulator (programme d’installation HAXM))

  • Créer AVD avec CPU / ABI “Intel atom x86”

  • Exécutez l’émulateur et archivez la console exécutée par HAXM (ouvrez une fenêtre d’invite de commandes et exécutez la commande: sc query intelhaxm)

entrer la description de l'image ici

N’oubliez pas non plus d’installer celui-ci

entrer la description de l'image ici

PS lors de la création d’AVD append de la mémoire d’émulation: Matériel / Nouveau / Périphérique Taille du disque / Configurer la valeur 512 ou plus

Linux:

  • Installez KVM: ouvrez GOOGLE, écrivez “kvm installation”
  • Créer AVD avec CPU / ABI “Intel atom x86”
  • Exécuter à partir de la ligne de commande: emulator -avd nom-avd -qemu -m 512 -enable-kvm
  • Ou lancez Eclipse: Exécuter / Exécuter les configurations / Onglet “Cible” -> vérifier AVD Intel x86 et dans la fenêtre “Options supplémentaires de la ligne de commande de l’émulateur”, append: -qemu -m 512 -enable-kvm (cliquez sur Exécuter)

entrer la description de l'image ici

PS pour Fedora , pour Ubuntu

OS-X:

  • Dans Android SDK Manager, installez Image Intel x86 Atom System
  • Dans Android SDK Manager, installez Accelerator Intel x86 Emulator Accelerator (HAXM)
  • Dans finder, accédez à l’emplacement d’installation d’Intel Emulator Accelerator et installez IntelHAXM (ouvrez le dmg et exécutez l’installation). Vous pouvez trouver l’emplacement en plaçant votre souris sur l’entrée Acculator Accelerator dans le SDK Manager.
  • Créez ou mettez à jour un AVD et spécifiez Intel Atom x86 en tant que processeur. Intel X86 Emulator Accelerator (HAXM) indiquant l'emplacement

PS: Vérifiez cet outil, même très pratique

MISE À JOUR: Maintenant qu’une image Intel x86 est disponible, la meilleure réponse est par zeste ci-dessus.

Comme CommonsWare l’a correctement souligné, l’émulateur est lent car il émule un processeur ARM, ce qui nécessite une traduction vers des opcodes Intel. Cette virtualisation grignote le processeur.

Pour rendre l’émulateur plus rapide, vous devez lui donner plus de CPU. Commencez avec un processeur rapide ou mettez à niveau si vous le pouvez.

Ensuite, donnez à l’émulateur plus de CPU que vous avez:

  1. Désactiver l’hyperthreading – Comme l’émulateur ne semble pas utiliser plus d’un cœur, l’hyperthreading réduit en fait la quantité de temps processeur globale que cet émulateur aura. La désactivation de HT ralentira les applications qui tirent parti de plusieurs processeurs. Hyperthreading doit être désactivé dans votre BIOS.
  2. Faites fonctionner l’émulateur sur un processeur autre que le processeur 0 – Cela a un impact beaucoup plus faible que la désactivation de HT, mais cela en aide certains. Sous Windows, vous pouvez spécifier le processeur sur lequel un processus sera exécuté. Beaucoup d’applications vont mastiquer le processeur 0 et, par défaut, l’émulateur s’exécute sur le processeur 0. Je change l’émulateur pour qu’il s’exécute sur le dernier. Notez que sous OS X, vous ne pouvez pas définir d’affinité (voir: https://superuser.com/questions/149312/how-to-set-processor-affinity-on-a-mac ).

Je constate une amélioration d’ environ 50% avec ces deux changements en place.

Pour définir l’affinité du processeur sous Windows 7:

  1. Ouvrir le gestionnaire de tâches
  2. Cliquez sur Afficher tous les processus (pour exécuter en tant qu’administrateur, sinon vous ne pouvez pas définir l’affinité du processeur)
  3. Faites un clic droit sur emulator.exe et choisissez Définir l’affinité …
  4. Dans la boîte de dialog Set Affinity, sélectionnez uniquement le dernier processeur.

Remarque: Lorsque vous modifiez l’affinité de cette manière, cela ne change que pour la durée de vie du processus. Au prochain démarrage, vous devez recommencer.

entrer la description de l'image ici

Je voudrais suggérer de donner un coup de pouce à Genymotion . Il s’exécute dans VirtualBox d’Oracle et atteindra légitimement 60 fps sur un système modéré.

Voici un screencap d’un de mes ateliers, fonctionnant sur un MacBook Air modèle 2012:

Nexus 7 émulateur à 56,6 fps

Si vous ne pouvez pas lire le texte, c’est un émulateur Nexus 7 fonctionnant à 56,6 ips. Le bonus supplémentaire (gros!) Est que Google Play et Google Play Services sont fournis avec les machines virtuelles.

(La source de l’animation démo peut être trouvée ici .)

Activez l’ accélération matérielle GPU (en plus de HAXM d’Intel), si vous utilisez API 15 v3 ou plus récent et les outils SDK v17 +. L’accélération graphique pour l’émulateur tire parti du matériel graphique de votre ordinateur de développement, en particulier de son unité de traitement graphique (GPU), pour accélérer le dessin de l’écran. Cela donne une augmentation notable de la vitesse.

Pour activer l’accélération graphique activée par défaut sur votre émulateur : lors de la création de l’AVD, dans la section Matériel, cliquez sur Nouveau, sélectionnez l’émulation GPU et définissez la valeur sur Oui.

Pour activer l’accélération uniquement à l’exécution : utilisez l’indicateur -gpu lors du démarrage de l’émulateur comme ceci:

 emulator -avd  -gpu on 

Source: didacticiel sur l’utilisation de l’émulateur par Google .

Modifier Bien que l’utilisation des images d’Intel permette de gagner en performance, les performances obtenues grâce à Genymotion sont beaucoup plus importantes. Voir la réponse de Paul Lammertsma .

Réponse précédente

Avec ADT rev 17, l’émulateur prend en charge les images système x86 en mode de virtualisation sous Windows et Mac OS X. Cela a un impact notable sur les performances.

ADT rev 17 notes: http://android-developers.blogspot.jp/2012/03/updated-sdk-tools-and-adt-revision-17.html

Configuration de l’accélération de la machine virtuelle: http://developer.android.com/guide/developing/devices/emulator.html#accel-vm

Je suis récemment passé d’un core 2 @ 2.5 avec 3 Go de ram à un i7 @ 1.73 avec 8 Go de RAM (les deux systèmes fonctionnaient sous Ubuntu 10.10) et l’émulateur fonctionne au moins deux fois plus vite maintenant. Lancer plus de matériel est certainement utile.

Je voulais juste dire qu’après avoir installé l’accélérateur Intel HAXM et utiliser l’image Intel Atom, l’émulateur semble fonctionner 50 fois plus vite. La différence est incroyable, allez y faire un tour!

http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html

J’ai remarqué que l’émulateur par défaut est uniquement Core 0, où la plupart des applications Windows par défaut à “n’importe quel” core. De plus, si vous le mettez sur un autre core (comme le dernier core), cela peut rendre l’émulateur complètement fou. Si vous le pouvez, vous pouvez essayer de placer vos applications à utilisation intensive du processeur sur les autres cœurs de processeur pour accélérer la vitesse.

Du sharepoint vue du matériel, procurez-vous le processeur le plus rapide possible pour les applications à cœur unique. Plus de deux cœurs pourraient ne pas connaître une grande différence en termes de performances de l’émulateur.

Eclipse + l’émulateur Android consumnt une tonne de RAM. Je recommanderais 3 Go de RAM au moins parce que j’ai utilisé un système avec 2 Go de RAM, et cela a ralenti parce que le système était à court de RAM et a commencé à utiliser le fichier de page.

Je pense que les meilleurs processeurs auront probablement une horloge haute (n’utilisez que l’horloge comme mesure pour les processeurs de la même série), gèrent bien les opérations non-SIMD et disposent d’un mécanisme de turbo-boost. Il n’y a pas beaucoup de benchmarks basés sur Java, mais une recherche globale de tests d’applications tels que la compression et la bureautique. Ne regardez pas les jeux ni les médias, car ceux-ci sont grandement affectés par SIMD. Si vous en trouvez un Java, mieux encore.

Cette année, Google I / O (2011) a présenté un émulateur plus rapide. Le problème ne réside pas tant dans le code d’octet entre ARM et x86 que dans le rendu logiciel effectué par QEMU. Ils contournent le rendu de QEMU et envoient le rendu directement sur un serveur X, je crois. Ils ont montré un jeu de voiture avec de très bonnes performances et fps.

Je me demande quand cela sera disponible pour les développeurs …

Google a récemment annoncé un nouvel émulateur pour Android. C’est beaucoup plus rapide et meilleur que l’ancien. Vous pouvez trouver plus d’informations à ce sujet ici .

Je pense que c’est parce que la machine virtuelle clr utilise cpu directement sans traduction de code opcode. Il peut s’agir d’une optimisation pour une application clr ou d’un démarrage de Windows Mobile / Window Phone 7 sur le processeur INTEL. Plate-forme Android basée sur Linux et théoriquement, vous pouvez démarrer Android sur une machine virtuelle dans un environnement i686. Dans ce cas, les machines virtuelles telles que vmware peuvent exécuter certains opcodes directement. Mais cette option ne sera autorisée que si vous écrivez sur Java. Parce que Java interprète leur code-octet ou le précomstack avant l’exécution. voir: http://www.taranfx.com/how-to-run-google-android-in-virtualbox-vmware-on-netbooks

Merci @zest! Travaillé comme un charme. Quelques points à noter: Nécessité d’appliquer le correctif Intel pour que HAXM traite le problème de panique du kernel: http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager Aussi, remarque , si vous avez plus d’un abi, vous devez en désinstaller un en raison d’un bogue dans la dernière version de l’API Android (r19): https://code.google.com/p/android/issues/detail?id= 66740 (supprimez armeabi-v7a dans ce cas, puisque vous voulez que le x86 abi). Outre les 45 minutes nécessaires pour résoudre ces problèmes, il s’agissait d’un exercice très enrichissant en termes de performances accrues de l’émulateur.

Oh l’asile … celui des fous … malheur à moi …

Il y a une réponse assez complète sur mon blog à http://tenacious33.wordpress.com/2012/04/05/improving-android-emulator-performance/

Je vais aborder le “mode accéléré” de la page 17 dans mon blog en une semaine ou deux. La liste des mises en garde qui y sont associées n’inspire ni confiance ni fierté.

J’utilise le processeur / ABI Intel (86). J’ai créé un autre émulateur à l’aide de l’ARM (armeabi-v7a) et j’ai constaté une amélioration de la vitesse. J’utilise la plate-forme 4.1.2 API niveau 16

Une alternative à l’émulateur est la machine virtuelle AndroVM, qui fonctionne beaucoup plus rapidement que l’émulateur et prend en charge l’accélération OpenGL:

http://androvm.org/

De manière anecdotique, j’estime qu’il fonctionne plus rapidement que les appareils Android réels.

J’espère que cela t’aidera.

Goto to your BIOS settings. Enable your Virtualization technology in your settings..

Cela a résolu mon problème …

Mettez à jour votre Android Studio actuel vers Android Studio 2.0 Et mettez également à jour les images du système.

L’émulateur Android Studio 2.0 fonctionne environ 3 fois plus rapidement que le précédent émulateur d’Android et, grâce aux améliorations de l’ADB, vous pouvez désormais transférer les applications et les données 10 fois plus rapidement vers l’émulateur que vers un périphérique physique. Comme un périphérique physique, l’émulateur Android officiel inclut également les services Google Play intégrés, ce qui vous permet de tester davantage de fonctionnalités API. Enfin, le nouvel émulateur dispose de nouvelles fonctionnalités riches pour gérer les appels, la batterie, le réseau, le GPS, etc.

Vous pouvez également essayer l’ émulateur Visual Studio Android , qui peut également être installé en tant qu’émulateur autonome (vous n’avez pas besoin de Visual Studio). Veuillez noter qu’il ne peut être installé que sous Windows Pro ou les systèmes supérieurs.

Utilisez Genymotion au lieu de l’émulateur. Genymotion a de meilleures performances https://www.genymotion.com

choisissez un émulateur basse résolution (ex: Nexus S) si vous n’avez pas une bonne carte graphique (comme moi)