performance tuning - Warum ist der Android-Emulator so langsam? Wie können wir den Android-Emulator beschleunigen?




arm studio (25)

Ich habe einen Celeron-Prozessor mit 2,67 GHz und 1,21 GB RAM auf einem x86- Computer mit Windows XP Professional.

Ich verstehe, dass der Android-Emulator auf einer solchen Maschine ziemlich schnell starten sollte, aber für mich nicht. Ich habe alle Anweisungen beim Einrichten der IDE, SDKs, JDKs und dergleichen befolgt und hatte einige Erfolge beim schnellen Starten des Emulators, aber das ist sehr selten. Wie kann ich dieses Problem nach Möglichkeit beheben?

Auch wenn der Startbildschirm gestartet und geladen wird, ist er sehr träge. Ich habe die Eclipse-IDE in Version 3.5 (Galileo) und 3.4 (Ganymede) ausprobiert.


Answers

Die Option -cpu-delay <delay> die in den Emulator- -cpu-delay <delay> beschrieben wird, kann hilfreich sein.


Emulatoren sind langsam. Sie können nichts dagegen tun, aber es gibt Alternativen zum Emulator.

  1. Genymotion

  2. VirtualBox

  3. BlueStacks

  4. YouWave

  5. Windows Android Emulator

  6. Glas Bohnen

  7. Andy

Um den Emulator schneller zu machen, können Sie eine GPU hosten und eine leichtere Android-Version ( Android 2.3 (Gingerbread)) verwenden. Entwickeln auf einem Mac wäre besser. Warum einen Emulator verwenden? Die Verwendung eines echten Telefons ist sinnvoller.



Sie können emulator.bat mit folgendem Befehl erstellen, um den Emulator zu starten. Es wird schneller beginnen.

emulator.exe -cpu-delay 0 -no-boot-anim @<avd name>

Oder unter Unix (Mac oder Linux):

emulator -cpu-delay 0 -no-boot-anim @<avd name>

Nun, da jemand Android x86 als alternativen Testemulator vorgeschlagen hat, werde ich auch meinen Favoriten vorstellen. Dies ist vielleicht keine Alternative für alle, aber für mich ist es perfekt!

Verwenden Sie den Bluestacks Player . Es läuft Android 2.3.4 und ist sehr flüssig und schnell. Manchmal ist es sogar schneller als ein normales Gerät. Der einzige Nachteil ist, dass Sie Apps einfach auf API Level 10 und nur auf einer Bildschirmgröße testen können, aber es ist perfekt, um zu testen, ob es funktioniert oder nicht. Verbinden Sie einfach den Player mit dem adbLaufen

adb connect 127.0.0.1 

Nach dem Kompilieren wird es sofort installiert. Es ist sehr beeindruckend, wenn man bedenkt, dass ich eher durchschnittliche Computerhardware (Dual Core mit 4 GB RAM) habe.


Android SDK rev. 17 unterstützt die Beschleunigung virtueller Maschinen mit AMD- und Intel-Virtualisierungstechnologien.

Diese Funktion kann die Emulatorleistung erheblich verbessern!

Weitere Informationen finden Sie im folgenden Abschnitt der Android-Emulator-Dokumentation: Konfigurieren der Beschleunigung der virtuellen Maschine

Vergessen Sie nicht, den entsprechenden Treiber für Ihr Betriebssystem zu installieren:

Nachdem Sie die Treiber installiert und ein Android X86-Systemabbild heruntergeladen haben (wie in der Dokumentation beschrieben), sollten Sie in der Lage sein, mit dem x86-Abbild ein neues AVD zu erstellen:

Zum Beispiel:

  • Ziel: Intel Atom x86-Systemabbild - API-Level 10
  • CPU / ABI: Intel Atom (x86)

Android-Emulator ist absolut langsam. Es dauert 800 MB Speicher während der Ausführung. Wenn Sie Windows verwenden, können Sie Microsoft Android Emulator verwenden. Es ist hervorragend, bietet Ihnen mehr Funktionen als Android Studio Emulator. Und am wichtigsten ist es schnell (verbraucht nur 13 MB). Es wird mit Visual Studio 2015 Technical Preview geliefert. Ich benutze es und bin damit zufrieden. Ich habe das gesamte VS-Paket heruntergeladen und installiert. Ich muss prüfen, wie wir nur den VS-Emulator installieren können.

Visual Studio Emulator für Android

BEARBEITEN: Versuchen Sie https://www.visualstudio.com/vs/msft-android-emulator/


Weitere Informationen dazu hinzufügen.

Ich habe vor kurzem meine Ubuntu-Installation auf Ubuntu 10.04 LTS (Lucid Lynx) aktualisiert, was wiederum meine Java-Version folgendermaßen aktualisiert hat:

Java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)

Und jetzt scheint der Emulator (obwohl es eine Weile dauert) schneller zu laufen als zuvor.

Es lohnt sich vielleicht, die JVM zu aktualisieren.


Sie können die Emulatorprobleme auf der Google I / O 2011: Android-Entwicklungstools besprechen und ab 0:40:20 starten.

Der Emulator läuft langsam, da die gesamte Android-Umgebung auf emulierter Hardware ausgeführt wird und die Anweisungen auch auf einem emulierten ARM-Prozessor ausgeführt werden.

Der Hauptverschiebungspunkt ist das Rendern, da es nicht auf dedizierter Hardware läuft, sondern tatsächlich durch Software-Rendering ausgeführt wird. Durch die Verringerung der Bildschirmgröße wird die Emulatorleistung drastisch verbessert. Mehr / schnelleres Gedächtnis zu bekommen, wird nicht helfen.

Sie haben damals erwähnt, dass sie eine Schnittstelle entwickeln, die es dem Emulator ermöglicht, bestimmte Anweisungen durch die Host-Hardware zu leiten, sodass Sie die Emulatorleistung mit der rohen Leistung von Desktop-Hardware nutzen können.


Nach einer Weile wurde mein Emulator brutal langsam. Ich entschied mich für Benutzerdaten zum Löschen , und es war viel besser. Ich vermute, dass es Zeit braucht, um jede bereitgestellte APK Datei zu laden .


Android Emulator Release 9 hat eine neue "Momentaufnahme" -Funktion. Sie können den Zustand des Emulators speichern (ein Abbild des Emulators erstellen) und das Booten beim Starten des Emulators vermeiden.



Ich habe festgestellt, dass der Emulator viel schneller startet, wenn kein Dalvik Debug Monitor Server (DDMS) angeschlossen ist. Wenn Sie also den Emulator aus dem Virtual Device Manager "SDK Setup.exe" starten und Eclipse nicht gestartet wird, arbeitet der Emulator schneller.

Wenn Sie den Emulator von Eclipse aus starten: DDMS ist vorhanden, daher ist der Emulator manchmal extrem langsam, manchmal aber schneller.


Ich hatte zeitweise langsame Emulator-Ladezeiten (SDK v8.0), bis zu drei Minuten auf einer Intel Core i7 920 2.67 GHz-CPU, die auf einem Xubuntu 10.04 VirtualBox 3.2.12-Gast mit Eclipse (3.6.1) ausgeführt wird. Ich habe den VirtualBox-Gastspeicher von 1024 MB auf 2048 MB geändert, und von diesem Zeitpunkt an habe ich die Langsamkeit nie wieder erlebt (Ladezeiten gleich bei 33 Sekunden, CPU-Last bei 20%). Sowohl Eclipse als auch der Emulator sind Gedächtnisfresser.


Versuchen Sie es mit Android x86 . Es ist viel schneller als der Google Android-Emulator. Folge diesen Schritten:

  1. Installieren Sie VirtualBox .
  2. Laden Sie die ISO-Datei herunter, die Sie benötigen.
  3. Erstellen Sie eine virtuelle Maschine als Linux 2.6 / Andere Linux, 512 MB RAM, HD 2 GB. Netzwerk: PCnet-Fast III, an NAT . Sie können auch einen überbrückten Adapter verwenden, aber Sie benötigen einen DHCP Server in Ihrer Umgebung.
  4. Installieren Sie Android x86 auf dem Emulator, und führen Sie es aus.
  5. netcfg Alt + F1 , geben Sie netcfg , merken Sie sich die IP-Adresse und drücken Sie Alt + F7 .
  6. Führen Sie cmd auf Ihrem Windows XP-System aus, ändern Sie das Verzeichnis in Ihr Android-Tools-Verzeichnis, und geben Sie adb connect <virtual_machine_IP> .
  7. Starten Sie Eclipse, öffnen Sie das ADT-Plugin, finden Sie das Gerät und genießen Sie es!

Ab der Version 17 der Android SDK-Tools kann der Emulator die Grafikbeschleunigung und die von der CPU bereitgestellten Erweiterungen verwenden, um die Effizienz zu verbessern. Die Voraussetzungen und vollständige Konfigurations- und Benutzerhinweise finden Sie unter:

http://developer.android.com/guide/developing/devices/emulator.html#acceleration

Um die GPU Beschleunigung zu aktivieren, führen Sie den Emulator über die Befehlszeile aus oder fügen Sie den zusätzlichen Emulator-Befehlszeilenoptionen in der AVD-Konfiguration "-gpu on" hinzu.

emulator -avd <avd_name> -gpu on

Um die CPU-Maschinenerweiterungen zu verwenden, müssen Sie den Treiber installieren (Vorsicht, da dies zu Konflikten mit vorhandenen VirtualBox oder VMware Treibern führen kann). Nach der Installation wird es automatisch verwendet, wenn Sie eine x86-basierte AVD verwenden.


Der Emulator scheint sich im Leerlauf zu verlangsamen. Dies wird durch schnelles Bewegen der Tasten an der Seite und Beobachten der Auflichtreaktionen deutlich. Als -icount auto ich beim Start des Emulators -icount auto an QEMU . Sie können eine Batchdatei namens my_avd.bat , um dies für Sie zu erledigen:

emulator @my_avd -no-boot-anim -qemu -icount auto
  • @my_avd - Starten Sie ein virtuelles Gerät mit dem Namen 'my_avd'.
  • -no-boot-anim - Deaktiviere die Animation für einen schnelleren Start
  • -qemu args... - Argumente an qemu übergeben
  • -icount [N|auto] - Aktiviert den virtuellen Anweisungszähler mit 2 ^ N Clock-Ticks pro Anweisung

Dies machte die Animationen flüssiger und beschleunigte die adb install zehnmal.


Die aktuelle Version (Mai 2011) des Emulators ist insbesondere bei Android 3.0 (Honeycomb) langsam, hauptsächlich, weil der Emulator keine Hardware-GL unterstützt. Dies bedeutet, dass der GL-Code in Software (tatsächlich ARM-Software) übersetzt wird, die dann erhalten wird in Software in QEMU emuliert. Das ist verrückt langsam. Sie arbeiten an diesem Problem und haben es teilweise gelöst, jedoch nicht mit irgendeiner Release-Qualität.

Schauen Sie sich das Video Google I / O 2011: Android-Entwicklungstools an, um es in Aktion zu sehen - springen Sie auf etwa 44 Minuten.


Versuchen Sie, Ihr Antivirus zu deaktivieren. Vielleicht macht es den Emulator etwas schneller.


Verwenden Sie den Intel x86 Emulator Accelerator

Installieren Sie zunächst den Intel x86 Emulator Accelerator (HAXM). Dieser kann direkt von Intel oder mit dem Android SDK Manager heruntergeladen werden. Im SDK Manager befindet es sich unter Extras.

In der von mir verwendeten Android Studio-Version (0.8.9) lädt der Android SDK Manager HAXM herunter, führt das Installationsprogramm jedoch nicht aus (ich gehe davon aus, dass dies in späteren Versionen behoben wird). Um die Installation auszuführen, musste ich nach C: \ Programme (x86) \ Android \ android-studio \ sdk \ extras \ intel \ Hardware_Accelerated_Execution_Manager gehen und manuell die intelhaxm.exe starten.

HAXM arbeitet mit Intel-Geräten, daher wurde ein neuer Emulator mit Intel-Prozessor erstellt.

Erstellen Sie eine neue AVD mit Intel Atom x86

Dies hat die Dinge erheblich verbessert, aber der Emulator fühlte sich immer noch etwas träge an. Der letzte Schritt war die Auswahl von Host-GPU verwenden im Android Virtual Device Manager (AVD).

Nach diesen Änderungen wurde der Android Emulator in 5-10 Sekunden gestartet und lief ohne merkliche Verzögerung. Beachten Sie, dass diese Funktionen hardwareabhängig sind (CPU / GPU) und auf einigen Systemen möglicherweise nicht funktionieren.


Um die Startzeit Ihres Emulators zu verkürzen, müssen Sie vor dem Starten des Emulators die Option "Bootanimation deaktivieren" aktivieren. Weitere Informationen finden Sie in der Android-Dokumentation .

Falls Sie dies nicht wissen, müssen Sie den Emulator nicht jedes Mal schließen, wenn Sie Ihre App ausführen / debuggen. Wenn Sie auf Ausführen / Debuggen klicken, wenn es bereits geöffnet ist, wird Ihre APK-Datei in den Emulator hochgeladen und ziemlich sofort gestartet. Emulator dauert nur beim ersten Start ärgerlich lange.

Hier finden Sie einige Tipps, um den Android-Emulator zu beschleunigen : So beschleunigen Sie den Android-Emulator um bis zu 400% .


Intel hat am 15. Mai 2012 empfohlene Installationsanweisungen für den ICS-Emulator veröffentlicht. Das hat für mich funktioniert. Der Emulator ist jetzt schnell und die Benutzeroberfläche ist glatt.

Die erste Hälfte der Anweisungen ist ausführlich genug. Ich gehe davon aus, dass Sie Intel x86 Atom System Image (s) mit dem Android SDK-Manager sowie mit Intel HAXM installieren konnten.

Stellen Sie jetzt sicher, dass alles andere eingerichtet ist, damit Sie einen leistungsstarken Emulator genießen können:

Und fang damit an:

sudo kextload -b com.intel.kext.intelhaxm (mac)

Wenn HAXM ordnungsgemäß funktioniert, wird beim Starten des Emulators diese Meldung angezeigt:

HAX funktioniert und der Emulator läuft im schnellen Virt-Modus

Ansonsten sehen Sie möglicherweise diesen Fehler:

HAX funktioniert nicht und der Emulator läuft im Emulationsmodus-Emulator:
Fehler beim Öffnen des Hax-Moduls

  • Verwenden Sie die GPU-Emulation. Sie können die Momentaufnahme-Option nicht verwenden, wenn Sie die GPU-Emulation zum jetzigen Zeitpunkt verwenden. Stellen Sie sicher, dass die GPU-Emulation auf "Ja" gesetzt ist.

  • Stellen Sie den Gerätespeicher auf 1024 MB oder mehr ein , jedoch nicht mehr als die Intel HAXM-Einstellung. Ich verwende 1024 MB pro Gerät und 2048 für HAXM.

Überprüfen Sie die Einstellungen immer nach dem Speichern! Der Emulator ist sehr wählerisch in Bezug auf das, was er einstellen darf, und er wird Konfigurationen zurücksetzen, ohne es Ihnen mitzuteilen.

Bei diesen Einstellungen erscheint weder die Software-Tastatur noch die Bildschirmtasten, das Menü und die zuletzt verwendeten Tasten. Dies scheint eine Einschränkung des aktuellen ICS Intel x86-Systemabbilds zu sein. Sie müssen die Tastenkombinationen verwenden .

Unter Mac OS müssen Sie die Taste Fn + gedrückt halten , damit die Tasten F1 - F12 funktionieren. Mit den Steuertasten + Pfeiltasten kann die Seite auf / ab / links / rechts aufgerufen werden.


Aktualisieren

Sie können jetzt die Schnellstartoption für den Android-Emulator aktivieren. Dadurch wird der Emulatorstatus gespeichert, und beim nächsten Start wird der Emulator schnell gestartet.

Klicken Sie auf die Schaltfläche Emulator bearbeiten und dann auf Erweiterte Einstellungen anzeigen . Dann aktivieren Sie den Quick Boot wie unten abgebildet.

Android Development Tools (ADT) 9.0.0 (oder höher) verfügt über eine Funktion, mit der Sie den Status des AVD (Emulator) speichern und den Emulator sofort starten können. Sie müssen diese Funktion aktivieren, wenn Sie eine neue AVD erstellen, oder Sie können sie später durch Bearbeiten der AVD erstellen.

Außerdem habe ich die Device RAM Size auf 1024 erhöht, was zu einem sehr schnellen Emulator führt.

Weitere Informationen finden Sie in den nachstehenden Abbildungen.

Erstellen einer neuen AVD mit der Funktion zum Speichern des Schnappschusses.

Starten des Emulators aus dem Schnappschuss.

Und wenn Sie Ihren Emulator beschleunigen möchten, lesen Sie Beschleunigen Sie Ihren Android-Emulator! :


Der in Ihrer (alten) Version von Eclipse enthaltene Emulator ist sehr langsam.

Neuere Emulatoren sind schneller als 2010. Aktualisieren Sie Ihr SDK / IDE.

Ich persönlich benutze ein echtes Telefon, um meine Tests durchzuführen. Es ist schneller und Tests sind realistischer. Wenn Sie Ihre Anwendung jedoch auf vielen verschiedenen Android-Versionen testen möchten und nicht mehrere Telefone kaufen möchten, müssen Sie den Emulator von Zeit zu Zeit verwenden.


Für ein eigenes Projekt habe ich einen Online-Dienst entwickelt, der dem Android-Emulator einen simulierten Standort bereitstellen kann.

Es verwendet GeoNMe statt GeOFix, was es ermöglicht, Geschwindigkeit, Kurs, genaue Zeit usw. zusätzlich zu nur lat / lon einzustellen.

Der Dienst erfordert das Befehlszeilenprogramm nc (netcat) und nichts anderes.

http://www.kisstech.ch/nmea/







android performance android-emulator genymotion qemu