Der Android-Emulator ist etwas träge. Bei einigen Geräten, wie dem Motorola Droid und dem Nexus One, läuft die App auf dem tatsächlichen Gerät schneller als auf dem Emulator. Dies ist ein Problem beim Testen von Spielen und visuellen Effekten.
Wie lässt du den Emulator so schnell wie möglich laufen? Ich habe mit seinen Parametern gespielt, aber noch keine Konfiguration gefunden, die eine spürbare Verbesserung zeigt.
Antworten:
Offizielle Webseite
~ 50% schneller
Windows:
Wechseln Sie zum Android SDK-Stammordner und navigieren Sie zu extras \ intel \ Hardware_Accelerated_Execution_Manager. Führen Sie die zu installierende Datei IntelHaxm.exe aus. (In Android Studio können Sie navigieren zu: Einstellungen -> Android SDK -> SDK-Tools -> Intel x86 Emulator Accelerator (HAXM-Installationsprogramm))
Erstellen Sie eine AVD mit "Intel Atom x86" -CPU / ABI
Vergessen Sie auch nicht, dieses zu installieren
PS während der AVD-Erstellung Emulationsspeicher hinzufügen: Hardware / Neu / Geräte-RAM-Größe / Einrichtungswert 512 oder mehr
Linux:
PS Für Fedora , für Ubuntu
OS-X:
PS: Überprüfen Sie dieses Tool, sehr praktisch sogar Test
quelle
/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg
nachdem Sie das Paket vom SDK-Manager heruntergeladen haben.^(?!.*(nativeGetEnabledTags)).*$
zum Herausfiltern diesen Text als Textfilter. Ich habe dies als Fehlerproblem gemeldet . Ich denke auch, dass Sie Ihr Emulatorgerät ordnungsgemäß herunterfahren müssen (halten Sie den Netzschalter gedrückt und wählen Sie dann Ausschalten ), um Fehler beim nächsten Start zu vermeiden (ich könnte den ARM-Emulator einfach schließen, aber mit dem Intel-Emulator). Nur das Schließen scheint Probleme zu verursachen.UPDATE: Jetzt, da ein Intel x86-Image verfügbar ist, ist die beste Antwort oben.
Wie CommonsWare richtig hervorgehoben hat, ist der Emulator langsam, da er eine ARM-CPU emuliert, für die eine Übersetzung in Intel-Opcodes erforderlich ist. Diese Virtualisierung zerkaut die CPU.
Um den Emulator schneller zu machen, müssen Sie ihm mehr CPU geben. Beginnen Sie mit einer schnellen CPU oder aktualisieren Sie, wenn Sie können.
Geben Sie dem Emulator dann mehr von der CPU, die Sie haben:
Mit diesen beiden Änderungen sehe ich eine Verbesserung um etwa 50% .
So legen Sie die Prozessoraffinität unter Windows 7 fest:
Hinweis: Wenn Sie die Affinität auf diese Weise ändern, wird sie nur für die Lebensdauer des Prozesses geändert. Beim nächsten Start müssen Sie es erneut tun.
quelle
Ich möchte vorschlagen, Genymotion eine Wendung zu geben . Es läuft in der VirtualBox von Oracle und erreicht auf einem moderaten System zu Recht 60 fps.
Hier ist eine Bildschirmabdeckung aus einem meiner Workshops, die auf einem 2012er Low-End-Modell MacBook Air ausgeführt wird:
Wenn Sie den Text nicht lesen können, handelt es sich um einen Nexus 7-Emulator mit 56,6 fps. Der zusätzliche (große!) Bonus besteht darin, dass Google Play und Google Play Services mit den virtuellen Maschinen geliefert werden.
(Die Quelle der Demo-Animation finden Sie hier .)
quelle
Aktivieren Sie die GPU-Hardwarebeschleunigung (zusätzlich zu Intels HAXM), wenn Sie API 15 v3 oder höher und SDK Tools v17 + verwenden. Die Grafikbeschleunigung für den Emulator nutzt die Grafikhardware Ihres Entwicklungscomputers, insbesondere die Grafikverarbeitungseinheit (GPU), um das Zeichnen auf dem Bildschirm zu beschleunigen. Dies erhöht die Geschwindigkeit spürbar.
So aktivieren Sie die standardmäßig auf Ihrem Emulator aktivierte Grafikbeschleunigung : Klicken Sie beim Erstellen der AVD im Abschnitt Hardware auf Neu, wählen Sie GPU-Emulation aus und setzen Sie den Wert auf Ja.
So aktivieren Sie die Beschleunigung nur zur Laufzeit : Verwenden Sie das Flag -gpu, während Sie den Emulator wie folgt starten:
Quelle: Google verwendet das Emulator-Tutorial .
quelle
Bearbeiten Obwohl die Verwendung der Intel-Images einige Leistungssteigerungen bringt, ist die durch die Verwendung von Genymotion erzielte Leistung viel höher. Siehe Paul Lammertsmas Antwort .
Vorherige Antwort
Mit ADT Version 17 unterstützt der Emulator das Ausführen von x86-Systemabbildern im Virtualisierungsmodus unter Windows und Mac OS X. Dies hat spürbare Auswirkungen auf die Leistung.
Anmerkungen zu ADT Rev. 17: http://android-developers.blogspot.jp/2012/03/updated-sdk-tools-and-adt-revision-17.html
Konfigurieren der Beschleunigung virtueller Maschinen: http://developer.android.com/guide/developing/devices/emulator.html#accel-vm
quelle
Ich habe kürzlich von einem Core 2 @ 2.5 mit 3 GB RAM auf einen i7 @ 1.73 mit 8 GB RAM umgestellt (auf beiden Systemen wurde Ubuntu 10.10 ausgeführt), und der Emulator läuft jetzt mindestens doppelt so schnell. Es hilft sicherlich, mehr Hardware darauf zu werfen.
quelle
Ich wollte nur sagen, dass der Emulator nach der Installation des Intel HAXM-Beschleunigers und der Verwendung des Intel Atom-Images 50-mal schneller zu laufen scheint. Der Unterschied ist erstaunlich, probieren Sie es aus!
http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html
quelle
Ich habe festgestellt, dass der Emulator standardmäßig nur Core 0 verwendet, wobei die meisten Windows-Anwendungen standardmäßig "einen beliebigen" Core verwenden. Wenn Sie es auf einen anderen Kern (wie den letzten Kern) legen, wird der Emulator möglicherweise verrückt. Wenn Sie können, können Sie versuchen, Ihre Anwendungen mit hoher CPU-Auslastung auf die anderen CPU-Kerne zu übertragen, um die Geschwindigkeit zu erhöhen.
In Bezug auf die Hardware erhalten Sie die schnellste CPU, die Sie für Single-Core-Anwendungen erhalten können. Bei mehr als 2 Kernen besteht möglicherweise kein großer Unterschied in Bezug auf die Emulatorleistung.
Eclipse + der Android-Emulator verbrauchen zusammen eine Menge RAM. Ich würde 3 GB RAM empfehlen, zumindest weil ich ein System mit 2 GB RAM verwendet habe, und es wurde langsamer, weil das System keinen RAM mehr hat und die Auslagerungsdatei verwendet.
Ich bin der Meinung, dass die besten CPUs dafür wahrscheinlich einen hohen Takt haben werden (verwenden Sie den Takt übrigens nur als Maß für CPUs derselben Serie), Nicht-SIMD-Operationen gut handhaben und einen Turbo-Boost-Mechanismus haben werden. Es gibt nicht viele Java-basierte Benchmarks, aber insgesamt sollten Sie nach Anwendungsbenchmarks wie Komprimierung und Office suchen. Schauen Sie sich keine Spiele oder Medien an, da diese stark von SIMD betroffen sind. Wenn Sie ein Java finden, noch besser.
quelle
In diesem Jahr hat Google I / O (2011) einen schnelleren Emulator demonstriert. Das Problem liegt nicht so sehr im Bytecode zwischen ARM und x86, sondern im von QEMU durchgeführten Software-Rendering. Sie umgehen das Rendering von QEMU und senden das Rendering direkt an einen X-Server, glaube ich. Sie zeigten ein Autospiel mit wirklich guter Leistung und fps.
Ich frage mich, wann das für Entwickler verfügbar sein wird ...
quelle
Google hat kürzlich einen neuen Emulator für Android angekündigt. Es ist viel schneller und besser als das alte. Weitere Informationen dazu finden Sie hier .
quelle
Ich denke, das liegt daran, dass die virtuelle Maschine von clr die CPU direkt ohne Code-Opcode-Übersetzung verwendet. Dies kann eine Optimierung für die CLR-Anwendung sein oder Windows Mobile / Windows Phone 7, das auf dem INTEL-Prozessor gestartet wurde. Android-Plattform basiert auf Linux und theoretisch können Sie Android auf einer virtuellen Maschine in einer i686-Umgebung starten. In diesem Fall könnten virtuelle Maschinen wie VMware einige Opcodes direkt ausführen. Diese Option ist jedoch nur zulässig, wenn Sie auf Java schreiben. Weil Java ihren Bytecode interpretiert oder vor der Ausführung vorkompiliert. Siehe: http://www.taranfx.com/how-to-run-google-android-in-virtualbox-vmware-on-netbooks
quelle
Danke @zest! Lief wie am Schnürchen. Einige wichtige Punkte: Sie müssen Intels Hotfix für das HAXM anwenden, um das Problem mit der Kernel-Panik zu lösen: http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager Beachten Sie auch Wenn Sie mehr als ein Abi haben, müssen Sie eines aufgrund eines Fehlers in der neuesten Version der Android-API (r19) deinstallieren: https://code.google.com/p/android/issues/detail?id= 66740 (entfernen Sie in diesem Fall armeabi-v7a, da Sie das x86 abi möchten). Abgesehen von den 45 Minuten, die ich brauchte, um diese Probleme zu lösen, war es eine sehr lohnende Übung in Bezug auf die gesteigerte Leistung des Emulators.
quelle
Sie können auch den Visual Studio Android Emulator ausprobieren , der auch als eigenständiger Emulator installiert werden kann (Sie benötigen Visual Studio nicht). Bitte beachten Sie, dass es nur auf Windows Pro oder höheren Systemen installiert werden kann.
quelle
Verwenden Sie Genymotion anstelle des Emulators. Genymotion hat eine bessere Leistung https://www.genymotion.com
quelle
Wählen Sie einen Emulator mit niedriger Auflösung (z. B. Nexus S), wenn Sie keine gute Grafikkarte haben (wie ich).
quelle
Ich habe die Intel (86) CPU / ABI verwendet. Ich habe mit dem ARM (armeabi-v7a) einen weiteren Emulator erstellt und mit der Geschwindigkeit eine deutliche Verbesserung festgestellt. Ich verwende Plattform 4.1.2 API Level 16
quelle
Ich hoffe, dies wird dir helfen.
Goto to your BIOS settings. Enable your Virtualization technology in your settings..
Es hat mein Problem gelöst ...
quelle
Aktualisieren Sie Ihr aktuelles Android Studio auf Android Studio 2.0 und aktualisieren Sie auch die Systemabbilder.
Der Android Studio 2.0-Emulator läuft ~ 3x schneller als der vorherige Emulator von Android. Mit ADB-Verbesserungen können Sie Apps und Daten jetzt 10x schneller auf den Emulator übertragen als auf ein physisches Gerät. Wie ein physisches Gerät enthält auch der offizielle Android-Emulator die integrierten Google Play Services, sodass Sie mehr API-Funktionen testen können. Schließlich verfügt der neue Emulator über zahlreiche neue Funktionen zum Verwalten von Anrufen, Akkus, Netzwerken, GPS und mehr.
quelle