intro_fotolia_RA Studio_46292813_robu_s_71209596

App auf Android Virtual Device im Android Emulator ohne Intel HAXM ausführen


In diesem Beitrag zeigen wir euch, wie ihr eure eigene Android App auf dem Android Emulator ohne Intel HAXM ausführen könnt. Als Entwicklungsumgebung verwenden wir Android Studio.

Dieser Beitrag ist eine Ergänzung zu dem ersten Teil unseres großen Android Tutorials: Android Studio 1 installieren. In Teil 1 des Tutorials installieren wir Android Studio und dabei auch Intel HAXM, mit dem wir später die Ausführung des Android Virtual Device im Android Emulator beschleunigen.

Da nicht alle Leser den HAXM auf ihrem Rechner verwenden können, zeigen wir in diesem Beitrag wie ihr eure eigene App auch ohne HAXM im Android Emulator ausführen und testen könnt.

Dazu sind die folgenden vier Schritte notwendig:

  1. Installieren eines ARM System Images mit Hilfe des SDK-Managers von Android Studio
  2. Anlegen eines Android Virtual Device mit dem ARM-basierten System Image
  3. Starten des ARM-basierten Android Virtual Device im Android Emulator
  4. Ausführen unserer Android App im Emulator ohne Intel HAXM

Bevor es losgeht, noch eine kleine Einführung über den HAXM und seine Alternative.

Was ist der Intel HAXM?

Der Android Emulator ist ideal, um eine selbst programmierte Android App zu testen.

Da beim Ausführen der App im Emulator sehr viele Berechnungen durchgeführt werden müssen, ist es besonders nützlich, wenn diese Berechnungen hardware-beschleunigt (hardware accelerated) ausgeführt werden können.

Durch die Hardware-Beschleunigung läuft der Emulator flüssiger und startet schneller.

Sehr populär ist der Intel® Hardware Accelerated Execution Manager (Intel HAXM). Der HAXM ist eine Hardware-unterstützte Virtuelle Umgebung, die den Entwicklungsprozess von Android Anwendungen beschleunigt. Doch der HAXM kann nicht auf jedem Computer installiert werden.

Systemvoraussetzungen für Intel HAXM

  • Als CPU muss ein Intel Prozessor verwendet werden.
  • Der verwendete Intel Prozessor muss bestimmte Hardware-Funktionen (Intel Virtualization Technology VT, VT-x, vmx) besitzen.
  • HAXM kann nur mit Android x86 Emulator Images verwendet werden.

Erfüllt der eigene PC diese Anforderungen, ist der HAXM eine hervorragende Möglichkeit den Android Emulator zu beschleunigen und darauf x86 System Images auszuführen.

Weiterführende Informationen über den Android Emulator findet ihr hier auf der Developer-Webseite.

Doch was wenn der eigene Computer die Voraussetzungen für den Intel HAXM nicht erfüllt?

Muss dann auf den Android Emulator verzichtet werden? Die erfreuliche Antwort ist Nein. Der Android Emulator kann auch ohne Intel HAXM verwendet werden.

Dabei müssen zwei Punkte beachtet werden:

  1. Nur ARM-basierte System Images verwenden – Es können keine x86 System Images für das Android Virtual Device (AVD) genutzt werden, sondern nur ARM-basierte System Images.
  2. Keine Hardware-Beschleunigung möglich – Da nur ARM-basierte System Images für die AVD verwendet werden können, kann der Emulator nicht hardware-beschleunigt werden. Dadurch startet der Emulator langsamer und reagiert viel träger auf Benutzereingaben.

Nun zeigen wir euch, was getan werden muss, damit die eigene App im Android Emulator ohne HAXM ausgeführt werden kann.

1. Installieren des ARM System Images mit Hilfe des SDK-Managers von Android Studio

Wir laden nun das ARM-basierte System Image, welches wir später benutzen, um ein Android Virtual Device in Android Studio anzulegen.

Dazu starten wir den SDK-Manager mit einem Klick auf Configure > SDK Manager aus dem Willkommensbildschirm von Android Studio heraus.

Schritt 1: Im Willkommensbildschirm von Android Studio auf Configure klicken:

android studio sdk configure

Schritt 1: SDK-Manager über Configure aufrufen

Schritt 2: Im Untermenü Configure auf den Menüeintrag SDK Manager klicken:

android studio sdk manager starten

Schritt 2: SDK-Manager in Android Studio starten

Wenn es zu keinen Problemen kam, wird nun der SDK-Manager geladen und nach kurzer Zeit geöffnet.

Falls der SDK-Manager nicht startet, könnt ihr hier nachlesen, wie man den SDK-Manager manuell startet und diesen über die Kommandozeile ausführt.

Die folgende Abbildung zeigt den SDK-Manager nach dem Starten, wenn ihr alle Anweisungen aus Teil 1 des Android Tutorials befolgt habt:

sdk packages installation am ende

Installierte Packages im Android SDK-Manager

Wie in der oberen Abbildung zu erkennen ist, haben wir nur das Google APIs Intel x86 Atom System Image auf unserem Rechner installiert.

Nun klicken wir auf die CheckBox Updates/New links neben der roten Markierung. Damit lassen wir uns alle aktualisierten bzw. neuen Packages im SDK-Manager anzeigen.

android emulator arm system image laden

Das ARM System Image mit dem SDK-Manager installieren

Jetzt wählen wir das Google APIs ARM EABI v7a System Image aus, indem wir ein Häkchen in die entsprechende CheckBox setzen. Mit einem Klick auf Install 1 package... starten wir die Installation des ARM System Images.

Anschließend öffnet sich der Dialog Choose Packages to Install, in dem wir über die Lizenzvereinbarungen informiert werden. Möchten wir die Installation fortsetzen, müssen wir die Vereinbarungen akzeptieren und können mit einem Klick auf den Install-Button die Installation starten.

android emulator arm system image installieren

Bevor das Hinzufügen des Packages beginnt, muss der Lizenz zugestimmt werden

Jetzt startet der Download- und Installationsvorgang des ausgewählten Packages. Dies dauert eine Weile, daher wird etwas Geduld benötigt.

android emulator arm system image download

Das ausgewählte Paket wird vom Android SDK-Manager heruntergeladen und installiert

Nachdem der Download- und Installationsvorgang des ausgewählten Packages abgeschlossen wurde, können wir uns die installierten Packages anzeigen lassen. Dazu aktivieren wir die Option Installed, indem wir sie mit einem Haken versehen.

Die folgenden Packages sollten nun auf dem Entwicklungssystem installiert sein:

android emulator arm system image geladen

Installierte Packages im Android SDK-Manager am Ende der Installation – Das ARM System Image ist installiert

In der oberen Abbildung können wir erkennen, dass die Installation des ARM System Images erfolgreich war.

Im nächsten Schritt werden wir ein Android Virtual Device auf Basis dieses Images erstellen. Vorher müssen wir unbedingt Android Studio komplett schließen und wieder neu starten.

2. Anlegen eines Android Virtual Device mit dem ARM-basierten System Image

Nachdem wir Android Studio geschlossen haben, starten wir die Entwicklungsumgebung neu und öffnen unser Android Projekt.

Wenn ihr noch kein Projekt angelegt habt, führt an dieser Stelle die ersten drei Abschnitte des zweiten Teils unseres großen Android Tutorials durch und macht danach hier wieder weiter.

In Android Studio starten wir nun den AVD-Manager entweder mit einem Klick auf das AVD-Manager Symbol in der oberen Symbolleiste oder über das Menü, wie in der folgenden Abbildung dargestellt:

android studio project avd manager

Android Virtual Device Manager über das Menü öffnen

Nach einer kurzen Ladezeit öffnet sich der AVD Manager und der Your Virtual Devices-Dialog des Managers erscheint. Wir haben an dieser Stelle die Möglichkeit ein weiteres Android Virtual Device einzurichten.

Mit einem Klick auf Create Virtual Device... können wir ein weiteres AVD erstellen lassen:

android virtual device mit arm erstellen

Ein neues Android Virtual Device erstellen

Als Erstes müssen wir ein Hardware-Profil für das AVD festlegen. Da das zu erstellende Virtuelle Gerät nicht hardware-beschleunigt wird, ist es sinnvoll ein Gerät mit geringen Systemanforderungen auszuwählen. Wir wählen daher als Category den Eintrag Phone und als Device den oberen Eintrag Nexus S aus.

Anschließend klicken wir auf den Next-Button.

android virtual device mit arm einrichten

Hardware-Profil für unser AVD auswählen

Im nächsten Dialog wählen wir als System Image armeabi-v7a mit API 22 aus und nicht x86. Dazu entfernen wir zuerst das Häkchen bei Markierung 1, wodurch uns nur die beiden bisher installierten System Images angezeigt werden. Das ausgewählte System Image wird auf dem Emulator ausgeführt werden.

Mit einem Klick auf Next wechseln wir zum nächsten Dialog.

android virtual device mit arm system image

Als System Image für unser Android Virtual Device wählen wir das ARM-basierte Image aus

Jetzt haben wir unser AVD fast eingerichtet. In diesem letzten Dialog legen wir noch den Namen unseres AVDs fest:

  • AVD Name: Nexus S API 22 ARM

Die übrigen Einstellungen übernehmen wir unverändert. Anschließend klicken wir auf den Finish-Button und lassen unser AVD mit dem Namen Nexus S API 22 ARM erstellen.

android virtual device mit arm erzeugen

Android Virtual Device Konfiguration abschließen

Das war auch schon alles. Wir haben unser ARM-basiertes Android Virtual Device eingerichtet und können es nun im Android Emulator ausführen. Der Intel HAXM wird dafür nicht benötigt, jedoch ist es ohne Hardware-Beschleunigung auch etwas langsam. Aber das werden wir im nächsten Abschnitt noch genauer kennenlernen.

3. Starten des ARM-basierten Android Virtual Device im Android Emulator

Nachdem wir das ARM-basierte Android Virtual Device (AVD) erstellt haben, können wir es im Android Emulator ausführen.

Schritt 1: AVD Manager öffnen und auf Launch this AVD in the emulator-Button klicken. Dazu öffnen wir den AVD Manager entweder über das Hauptmenü oder das AVD Manager-Symbol in der oberen Menüleiste.

Der AVD Manager sollte jetzt das eben erstellte ARM-basierte AVD als Eintrag in der Your Virtual Devices-Liste anzeigen. Zum Starten des AVDs müssen wir nur noch auf das grüne Play-Symbol rechts in der Actions-Spalte klicken.

android virtual device manager arm system image

Schritt 1: AVD Manager öffnen und das erstellte ARM-basierte AVD starten

Das erstellte AVD wird nun im Android Emulator gestartet. Der Startvorgang kann manchmal sehr lange dauern. Gerade bei Virtuellen Geräten ohne Hardware-Beschleunigung ist besonders viel Geduld gefragt. Nach 10 Minuten sollte der Vorgang aber abgeschlossen sein.

Die Startzeit ist von vielen Komponenten abhängig, daher ist eine genaue Zeitangabe nicht möglich. Außerdem nimmt das erste Starten zusätzliche Zeit in Anspruch. Dies alles solltet ihr berücksichtigen, um nicht vorzeitig den Startprozess abzubrechen.

Nachdem das ARM-basierte AVD im Emulator gestartet wurde, sehen wir in dem neu erschienenen Emulator-Fenster den Startbildschirm unseres AVDs. Wir werden als Nächstes in Android Studio auf die Android-Ansicht wechseln, in der wir die Kommunikation mit unserem Virtual Device überwachen können.

Schritt 2: In Android Studio auf die Android-Ansicht wechseln. Dazu klicken wir in Android Studio auf den Menüeintrag 6: Android in der Statusleiste unten links (Markierung 1). In dieser Ansicht können wir unser ARM-basiertes Android Virtual Device überwachen.

android virtual device im emulator

Schritt 2: Auf Android-View in Android Studio wechseln und das ARM-basierte AVD überwachen

Da wir im Moment nur ein AVD im Emulator gestartet haben, wird auch nur dieses in der Liste angezeigt (Markierung 2). Wir können den Namen des AVDs, den API-Level und die auf dem Device ausgeführten Prozesse erkennen.

Rechts im oberen Bild ist das Emulator-Fenster, in dem unser ARM-basiertes AVD ausgeführt wird, in den Vordergrund gebracht worden. Im nächsten Schritt möchten wir unser Virtual Device entsperren.

Schritt 3: Entsperren des Android Virtual Device. Da der Emulator sehr träge auf unsere Befehle, wie Drag-And-Drop Mausbewegungen, reagiert, ist das Entsperren des AVDs nicht ganz intuitiv. Es wird exakt so wie auf einem realen Handy ausgeführt, ist aber mit der Maus etwas umständlich.

Zum Entsperren klicken wir auf das Schloss und schieben es mit gehaltener Maustaste an den oberen Bildschirmrand des Emulators. Achtung: Das Verschieben wird zeitlich verzögert ausgeführt und sollte daher sehr langsam erfolgen.

arm basiertes avd entriegeln

Schritt 3: Entsperren des ARM-basierten AVDs im Emulator

War das Entsperren erfolgreich, wird der Home-Bildschirm unseres Android Virtual Devices im Emulator angezeigt. Wir können nun das ARM-basierte AVD im Emulator ausprobieren und einige Apps aufrufen oder verschiedene Einstellungen zu Testzwecken vornehmen.

4. Ausführen der Android App im Emulator ohne Intel HAXM

Jetzt ist es an der Zeit unsere App im Android Emulator ohne Intel HAXM auszuführen.

Wichtig ist, dass der Emulator bereits gestartet ist und in einem eigenen Fenster ausgeführt wird (siehe vorheriger Abschnitt). Mit einem Klick auf das Run 'app'-Symbol in der oberen Menüleiste starten wir die App, siehe folgende Abbildung:

android studio project avd run

Android App über das Run App-Symbol starten

Die App wird nicht direkt gestartet. Es ist noch ein weiterer Zwischenschritt notwendig. Nachdem wir auf das Run 'app'-Symbol geklickt haben, wird unser Projekt im Hintergrund neu erstellt. Sobald der Build-Prozess erfolgreich abgeschlossen wurde, öffnet sich das kleine Fenster “Choose Device“, in dem wir das Android Virtual Device festlegen, auf dem unsere App ausgeführt werden soll.

In dem Fenster Choose Device können wir zwischen den bereits gestarteten und im Emulator laufenden AVDs das Gewünschte auswählen. Es ist auch möglich ein neues AVD in dem Emulator zu starten.

Da wir bereits in dem Android Emulator das Nexus S API 22 ARM Android 5.1 (API 22)-AVD in einem anderen Fenster ausführen, wählen wir unter dem Punkt Choose a running device dieses AVD aus. Anschließend klicken wir auf den OK-Button.

arm basiertes avd im emulator starten

Auswählen des ARM-basierten AVDs auf dem die App ausgeführt werden soll

Nun wird die Android App auf unserem erstellten AVD installiert. Den Vorgang können wir im Run-View in Android Studio überwachen. Nachdem die App auf unserem ARM-basierten AVD installiert worden ist, wird sie mittels Konsolenbefehl automatisch gestartet.

Wenn alles funktioniert hat, ist unsere App jetzt im Emulator-Fenster gestartet worden. Die App wird jetzt auf dem Android Virtual Device ohne Intel HAXM, also ohne Hardware-Beschleunigung, ausgeführt. Daher reagiert sie etwas träge auf Benutzereingaben.

In der folgenden Abbildung sehen wir, dass unsere Android App im Emulator ohne Intel HAXM auf dem erstellten ARM-basierten AVD ausgeführt wird. Zudem können wir im Android-View den Prozess unserer App erkennen (siehe rote Markierung 1).

Um genau zu sein, sehen wir eine fortgeschrittene Version unserer Android App, da dieser Hilfsbeitrag erst später erstellt wurde.

arm basiertes avd im emulator ohne haxm

Unsere Android App wird auf dem ARM-basierten AVD im Android Emulator ohne Intel HAXM ausgeführt

Zusammenfassung

In diesem Hilfsbeitrag haben wir gezeigt, wie man in dem Android Emulator auch ohne Intel HAXM ein Android Virtual Device ausführen kann. Somit können alle Leser, bei denen Intel HAXM nicht installiert werden kann, auch den Emulator für das Testen der eigenen Android Apps verwenden.

Da das AVD ohne HAXM nicht hardware-beschleunigt ausgeführt werden kann, laufen die Apps im Emulator sehr träge. Daran muss man sich gewöhnen. Alle anderen Funktionen des Emulators werden jedoch völlig problemlos ausgeführt.

Wenn ihr mit unserem Android Tutorial weitermachen wollt, könnt ihr den folgenden Link benutzen, der euch zurück auf die Hauptseite des Tutorials führt:

zurück zur Android Tutorial Hauptseite

Comments 14

  1. Pingback: Android Tutorial: Android Studio 1 installieren und einrichten

  2. Pingback: Android SQLite Tutorial - Teil 1: SQLite Projekt anlegen

  3. michael gloggnitzer

    coole seite, kompliment, der aufbau in kombination mit den screenshots – sehr gut; ich habe früher skripte geschrieben und weiss, dass das schon viel arbeit ist – danke in jedem fall – wir arbeiten an unserer app, ufffff.

    1. Post
      Author
  4. Moritz Haas

    Hallo nochmal,
    Auch von mir ein ganz grosses Lob!
    Jetzt zu meiner Frage: Ich bin wie oben beschrieben vorgegangen und es ist folgendes Problem aufgetreten: Der Emulator erscheint beim Starten außerhalb des Screens und es gibt auch keinen Rahmen, an dem ich das Fenster verschieben könnte. Außerdem bekomme ich auf dem Screen des Emulators nur “Android” gezeigt…
    Ist das normal? Kann man da Abhilfe schaffen?

    VG Moritz

    1. Post
      Author
      Chris

      Hallo Moritz,

      ich hatte das Problem mit dem Fenster auch schon einmal. Ich habe dann folgende Anleitung genutzt und das Fenster mit den Pfeiltasten zurück auf den Bildschirm verschoben:

      http://www.tippscout.de/windows-tastatur-fenster-verschieben_tipp_2236.html

      Der Emulator ohne HAXM benötigt sehr viel Zeit, um sich zu starten. Gerade der erste Start kann schon mal 20 Minuten dauern. Wenn er fertig gestartet ist, dann sollte der Sperr-Bildschirm angezeigt werden, der sich mit Verschieben des Schlossen entsperren lässt.

      Das Wort “ANDROID” wird während des Startvorgangs des Emulators angezeigt. Wenn der Emulator auch nach einer halben Stunde nicht mit dem Startprozess fertig ist, dann kann es sein, dass du das erstellte AVD konfigurieren musst. Es kann sein, dass der eingestellte Wert für den RAM unter Advanced Settings reduziert werden muss. Wenn das auch nicht hilft, kannst du versuchen verschiedene AVDs mit unterschiedlichen Device Definitions anzulegen und probieren, ob eine bestimmte davon bei dir läuft.

      Viele Grüße, Chris

  5. Moritz Haas

    Noch eine Frage:
    Bei mir wird bei Schritt 3.1 statt des grünen Start-Symbols nur ein Link angezeigt: “Repair Device”. Wenn ich darauf klicke, öffnet sich das Fenster zur Bearbeitung der Einstellungen für das AVD (Auswahl des system image).
    Da gibt es rechts diesen Hinweis: “Consider using a x86 system image for better emulation eerformance”.
    Ich nutze einen 32 Bit Intel i7er, dieser hat jedoch nicht alle erforderlichen Eigenschaften, um HAXM nutzen zu können.

  6. Romuald Gaida

    Sehr gute Seite, die Ihr da erstellt habt. Sehr ausführlich und gut verständlich.

    Vielen Dank.

    Vielleicht wäre noch eine kleine Ergänzung um “mögliche Fehler” sinnvoll. Ich ärgere mich seit längerem mit dem Problem “Cannot set up guest memory ‘android_arm': Invalid argument” und finde keine Lösung im Internet. Alle beschriebenen Lösungen mit der Verringerung der RAM helfen bei mir nicht.

    Grüße

    1. Post
      Author
      Chris

      Hallo Romuald,

      danke für das Lob!

      Eine Liste mit möglichen Fehlern und deren Lösung ist sehr hilfreich. Leser können gerne in den Kommentaren die bei ihnen aufgetretenen Fehler beschreiben. Vielleicht haben andere Leser bereits ähnliche Fehler gehabt und können dann eine mögliche Lösung vorschlagen.

      Viele Grüße, Chris

  7. Mathias

    Hallo zusammen,
    diese Anleitung scheint mir genau das zu sein wonach ich gesucht habe. Sehr ausführlich – echt klasse gemacht, da kann man euch nur loben.
    Intel HAXM kann ich auf meinem Rechner nicht nutzen, also habe ich jetzt versucht,
    Allerdings sieht mein SDK Manager schon mal ganz anders aus, und dort kann ich auch kein Google APIs ARM EABI v7a System Image auswählen.
    Kann jemand weiterhelfen?

    Grüße
    Mathias

  8. Sondrine

    Leider absolute mit Probleme mit dem Emulator. Lasse ihn zur Zeit mit einem Nexus5 Version 23 laufen. Warte das Resultat noch ab, aber von Anfang an Fehlermeldungen, auch beim Einrichten.
    Da es über einen AMD Rechner läuft konnte intelhaxm nicht installiert werden.
    Bei einrichten über “arm” trudelte die Meldung ein: “Your CPU does not support required features (VT-x or SVM)”
    Consider using an x86 system image on a x86 host for better emulation perfomance.

    Fürchte also, dass es gar nicht funktionieren wird auf einem 64bit System.

    Welche Alternative könnte sich da anbieten, vor allem da immer auf fehlendes VT-x oder SVM hingewisen wird?

    1. Post
      Author
      Chris

      Hallo Sondrine,

      wenn Du ein Android Gerät hast, kannst du die Android App darauf ausführen. Ein Emulator wird nur benötigt, wenn kein reales physisches Android Gerät vorhanden ist. Wie Du Deine App auf ein Android Gerät installierst, wird in Teil 3 des Android Tutorials beschrieben.

      Ich hoffe das hilft Dir weiter!

      Viele Grüße, Chris

  9. Michael Korte

    Wenn ich auf den Play Button drücke erscheint nur eine Meldung in der Leiste unten bei 4: Run, welche da lautet:

    Error running app:
    Default activity not found

    jetzt hab ich mich schon bis hier hin durchgeschlagen, aber dabei komme ich echt nicht weiter…

    1. Post
      Author
      Chris

      Hallo Michael,

      beim Starten der App wird die Start-Activity (auch Launcher Activity genannt) nicht gefunden. Die Start-Activity wird in der AndroidManifest.xml Datei festgelegt. Vergleiche am besten noch einmal genau deinen Code der AndroidManifest.xml Datei mit dem im Tutorial angegebenen Quellcode.

      Viele Grüße, Chris

Hinterlasse einen Kommentar zu Moritz Haas Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *