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 dans le dispositif de l'émulateur. C'est un problème lors des tests de jeux et d'effets visuels.

Comment faire fonctionner l'émulateur aussi vite que possible? J'ai joué avec ses paramètres mais je n'ai pas encore trouvé de configuration qui montre une amélioration notable.

232
demandé sur hpique 2010-04-18 19:02:14

20 réponses

page Web officielle

~50% plus rapide

Windows:

  • Install" Intel x86 Emulator Accelerator (HAXM) "= > SDK-Manager /Extras
  • Install "Intel x86 Atom System Images" = > SDK-Manager / Android 2.3.3
  • allez dans le dossier racine SDK Android et naviguez vers extras\intel\Hardware_Accelerated_Execution_Manager. Exécutez le fichier IntelHaxm.exe pour installer. (dans Android Studio, vous pouvez naviguer vers: Paramètres - > SDK Android - > outils SDK - > accélérateur D'émulateurs Intel x86 (HAXM installer))

  • créer AVD avec" Intel atom x86 "CPU/ABI

  • exécuter émulateur et vérifier dans la console que HAXM en cours d'exécution (ouvrir une fenêtre D'invite de commande et exécuter la commande: sc requête intelhaxm)

enter image description here

Aussi n'oubliez pas d'installer celui-ci

enter image description here

P. S. au cours de l'AVD de création d'ajouter d'émulation de mémoire: Matériel/New/Appareil de la taille de la ram de réglage de la valeur de 512 ou plus

Linux:

  • installer KVM: ouvrir GOOGLE, écrire "installation kvm "
  • créer AVD avec "Intel atom X86" CPU / ABI
  • Exécuter en ligne de commande: l'émulateur -avd avd_name -qemu -m 512 -enable-kvm
  • ou exécuter à partir D'Eclipse: exécuter / exécuter des Configurations / onglet "Cible" - > vérifier Intel x86 AVD et dans la fenêtre "Options supplémentaires de ligne de commande de L'émulateur" ajouter: - qemu-m 512-enable-kvm (cliquer Exécuter)

enter image description here

P. S. Pour Fedora , pour Ubuntu

OS-X:

  • in Android SDK Manager, install Intel x86 Atom System Image""
  • Dans Android SDK Manager, installez Intel x86 Émulateur Accélérateur (HAXM)
  • dans finder, rendez-vous à L'emplacement d'installation de L'accélérateur D'émulateurs Intel et installez IntelHAXM (ouvrez le dmg et exécutez l'installation). Vous pouvez trouver l'emplacement en plaçant votre souris sur l'Émulateur Accélérateur entrée dans le SDK Manager.
  • créer ou mettre à jour un AVD et spécifier Intel Atom x86 comme CPU. Intel x86 Emulator Accelerator (HAXM) showing Location

P. S: Case à cet outil, très pratique même procès

216
répondu zest 2017-10-18 14:48:44

mise à jour: maintenant qu'une image Intel x86 est disponible, la meilleure réponse est par zest ci-dessus.

comme CommonsWare l'a correctement souligné, l'émulateur est lent car il émule un processeur ARM, qui nécessite une traduction vers les opcodes Intel. Cette virtualisation avive le CPU.

pour rendre l'émulateur plus rapide, vous devez lui donner plus de CPU. Commencez avec un CPU rapide ou mettez à jour si vous le pouvez.

alors, donnez à l'émulateur plus de CPU vous avez:

  1. désactiver L'Hyperthreading - puisque l'émulateur ne semble pas utiliser plus d'un cœur, l'hyperthreading réduit en fait le temps CPU global que l'émulateur va obtenir. Désactiver HT ralentira les applications qui profitent de plusieurs CPU. L'Hyperthreading doit être désactivé dans votre BIOS.
  2. faire fonctionner l'émulateur sur un CPU autre que le CPU 0 - cela a beaucoup moins d'impact que de désactiver HT, mais ça aide certains. Sur Windows, vous pouvez spécifier sur quel CPU un processus s'exécute. Beaucoup d'applications vont mâcher CPU 0, et par défaut l'émulateur tourne sur CPU 0. Je change l'émulateur pour le dernier. Notez que sur OS X vous ne pouvez pas définir affinity (voir: https://superuser.com/questions/149312/how-to-set-processor-affinity-on-a-mac ).

je vois quelque part une amélioration de 50% avec ces deux changements en place.

pour définir l'affinité du processeur sur Windows 7:

  1. Ouvrir Le Gestionnaire Des Tâches
  2. , Cliquez sur Afficher Tous les Processus (à exécuter en tant qu'administrateur, sinon vous ne pouvez pas définir l'affinité du processeur)
  3. clic Droit sur l'émulateur.exe et choisir ensemble affinité...
  4. dans la boîte de dialogue Set Affinity, sélectionnez seulement le dernier CPU

Note: Lorsque vous changez l'affinité de cette façon, elle ne change que pour la durée du processus. Prochain démarrage, vous devez le faire à nouveau.

enter image description here

34
répondu mcohen75 2017-03-20 10:18:14

je suggère de donner un spin à Genymotion . Il tourne dans la VirtualBox D'Oracle, et atteindra légitimement 60 fps sur un système modéré.

voici une capture d'écran d'un de mes ateliers, tournant sur un MacBook Air bas de gamme 2012:

Nexus 7 emulator running at 56.6 fps

si vous ne pouvez pas lire le texte, C'est un émulateur Nexus 7 tournant à 56.6 fps. Les autres (en gros!) bonus est que Google Play et les services Google Play sont fournis avec les machines virtuelles.

(la source de l'animation demoed peut être trouvée ici .)

16
répondu Paul Lammertsma 2013-07-11 16:40:26

activer GPU Hardware Acceleration (en plus du HAXM D'Intel), Si vous utilisez API 15 v3 ou une version plus récente et les outils SDK v17+. L'accélération graphique pour l'émulateur profite du matériel graphique de votre ordinateur de développement, en particulier son unité de traitement graphique (GPU), pour rendre le dessin d'écran plus rapide. Cela donne un coup de pouce appréciable dans 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 émulation GPU et réglez la valeur à Yes.

pour permettre l'accélération seulement à l'exécution : utilisez le drapeau-gpu tout en démarrant l'émulateur comme ceci:

emulator -avd <avd_name> -gpu on

Source: Google utilise le tutoriel D'émulateur .

11
répondu John Lehmann 2013-01-28 19:21:20

"Edit bien que L'utilisation des images Intel apporte des gains de performance, les performances obtenues en utilisant Genymotion sont beaucoup plus importantes. Voir réponse de Paul Lammertsma .

Précédente Réponse

avec ADT rev 17 l'émulateur prend en charge l'exécution d'images système x86 en mode virtualisation sur 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

Configurer L'Accélération De La Machine Virtuelle: http://developer.android.com/guide/developing/devices/emulator.html#accel-vm

9
répondu ThomasW 2017-05-23 12:02:53

je suis récemment passé d'un noyau 2 @ 2.5 avec 3 Go de ram à un i7 @ 1.73 avec 8 Go de ram (les deux systèmes ont lancé Ubuntu 10.10) et l'émulateur fonctionne au moins deux fois plus vite maintenant. Jeter plus de matériel à elle certainement aider.

7
répondu TripleG 2011-02-01 05:43:39

voulait juste dire qu'après avoir installé L'accélérateur Intel HAXM et utilisé L'image de L'atome Intel, l'émulateur semble tourner 50 fois plus vite. La différence est incroyable, check it out!

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

6
répondu sonicboom 2012-12-30 15:31:38

j'ai remarqué que l'émulateur est par défaut à Core 0, où la plupart des applications Windows seront par défaut à" any " core. De plus, si vous le mettez sur un autre noyau (comme le dernier), il peut rendre l'émulateur fou. Si vous le pouvez, vous pouvez essayer de mettre vos applications d'utilisation de processeurs lourds sur les autres cœurs CPU pour une augmentation de la vitesse.

Hardware-wise, obtenez le CPU le plus rapide que vous pouvez obtenir qui fonctionne pour les applications mono-core. Plus de 2 cœurs pourraient ne pas éprouver une énorme différence en termes de performance de l'émulateur.

Eclipse + L'émulateur Android mangent ensemble une tonne de RAM. Je recommande 3 gigs de RAM au moins parce que j'ai utilisé un système avec 2 gigs de RAM, et il a ralenti parce que le système a manqué de RAM et a commencé à utiliser le fichier page.

je pense que le meilleur CPUs pour elle aura probablement une horloge haute (utilisez seulement l'horloge comme mesure pour les CPUs dans la même série btw), Gérer les opérations non-SIMD bien, et avoir un turbo boost mécanisme. Il n'y a pas beaucoup de benchmarks basés sur Java, mais dans l'ensemble, cherchez des benchmarks d'applications comme la compression et le bureau. Ne regardez pas les jeux ou les médias, car ceux-ci sont grandement touchés par SIMD. Si vous en trouvez un en Java, encore mieux.

4
répondu Joe P 2011-05-09 02:53:38

sur cette année google I/O (2011), Google a démontré un émulateur plus rapide. Le problème n'est pas tant sur le code octet entre ARM et x86 que sur le rendu logiciel effectué par QEMU. Ils contournent le rendu de QEMU et envoient le rendu directement à un serveur X je crois. Ils ont montré un jeu de voiture avec très bon performace et fps.

je me demande quand cela sera disponible pour les développeurs...

3
répondu Cesar 2011-06-14 18:38:54

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

3
répondu Koc 2015-12-17 08:41:06

je pense que c'est parce que la machine virtuelle clr utilise cpu directement sans traduction de code opcode. Il peut être l'optimisation pour l'application clr ou peut être windows mobile / window phone 7 lancé sur INTEL proccessor. Plateforme Android basée sur linux et théoriquement vous pouvez démarrer android sur une machine virtuelle dans l'environnement i686. Dans ce cas, des machines virtuelles telles que vmware pourraient exécuter certains opcodes directement. Mais cette option ne sera autorisée que si vous écrivez sur le Java. Parce que la Java interpréter leur byte-code ou précompiler avant l'exécution. voir: http://www.taranfx.com/how-to-run-google-android-in-virtualbox-vmware-on-netbooks

1
répondu assad 2010-12-20 19:30:25

Merci @zest! A travaillé comme un charme. Certaines choses à noter: Il faut appliquer le correctif d'Intel pour que le HAXM puisse gérer la panique du noyau: http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager Aussi, remarque, si vous avez plus d'un abi, vous devez désinstaller un en raison d'un bug dans la dernière version de l'API Android (r19): https://code.google.com/p/android/issues/detail?id=66740 (supprimer armeabi-v7a dans ce cas, puisque vous voulez le x86 abi). Outre les 45 minutes qu'il m'a fallu pour les résoudre, ce fut un exercice très enrichissant en termes de performance accrue de l'émulateur.

1
répondu horcle_buzz 2014-03-10 01:36:00

Oh l'asile...celui dirigé par le fou...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 la r17" mode accéléré " dans mon billet de blog dans une semaine ou deux. La liste des mises en garde qui y sont associées n'inspire ni confiance ni fierté.

0
répondu Tenacious 2012-04-06 00:17:36

j'ai utilisé le CPU/ABI Intel(86). J'ai créé un autre émulateur en utilisant le bras(armeabi-v7a) et j'ai trouvé une amélioration considérable avec la vitesse. J'utilise la plate-forme 4.1.2 API Niveau 16

0
répondu strange_developer 2012-10-27 08:47:35

une alternative à l'émulateur est la machine virtuelle AndroVM, qui tourne beaucoup plus vite que l'émulateur et prend en charge L'accélération OpenGL:

http://androvm.org /

anecdotique, je sens qu'il fonctionne plus vite que les appareils Android réels.

0
répondu Joel Malone 2013-05-18 03:12:30

j'espère que cela vous aidera.

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

ça a résolu mon problème...

0
répondu RajeshVijayakumar 2015-11-25 05:11:02

mettez à jour votre studio Android actuel à Studio Android 2.0 et aussi mettre à jour les images système.

Android Studio 2.0 l'émulateur tourne ~3x plus vite que L'émulateur précédent D'Android, et avec les améliorations D'ADB vous pouvez maintenant pousser les applications et les données 10x plus vite à l'émulateur que pour un appareil physique. Comme un appareil physique, L'émulateur Android Officiel inclut également les services Google Play intégrés, de sorte que vous pouvez tester plus de fonctionnalités API. Enfin, le nouvel émulateur offre de nouvelles fonctionnalités pour gérer les appels, la batterie, le réseau, le GPS, et plus encore.

0
répondu Umar 2016-04-09 08:50:55

vous pouvez également essayer L'émulateur Visual Studio Android Emulator , qui peut également être installé comme un émulateur autonome (vous n'avez pas besoin de Visual Studio). Veuillez noter qu'il ne peut être installé que sur les systèmes Windows Pro ou supérieurs.

0
répondu David Dostal 2016-08-30 10:47:56

utilisez Genymotion à la place de l'émulateur. Genymotion a une meilleure performance https://www.genymotion.com

0
répondu Oleg Tarashkevich 2016-09-06 06:42:39

choisissez un émulateur de basse résolution (par exemple: Nexus S) Si vous n'avez pas une bonne carte graphique (comme moi)

0
répondu Dan Alboteanu 2017-12-04 13:39:19