Der alternative Android-Emulator Genymotion erlaubt es, eine selbst entwickelte App unter realen Bedingungen zu testen.
Jeder App-Entwickler tut gut daran, seine selbst gebaute Android-App möglichst umfassend zu testen. Da es für Hobby-Entwickler oder Einsteiger in die Materie praktisch unmöglich ist, Android-Systeme in unzähligen Formen und Versionen vorrätig zu halten, liefert Google daher seit geraumer Zeit im Android-SDK einen Emulator [1] für den Desktop-PC mit, der verschiedene Android-Versionen, CPU-Architekturen und Displays abbildet (Abbildung 1).
Doch nicht nur Entwickler profitieren von einem virtuellen Android auf dem Computer. Auch Anwender suchen immer wieder einen Weg ein Android-Handy in ein Fenster zu bannen. So ließen sich etwa gefahrlos Apps testen, das Lieblings-Handy-Spiel auf dem PC spielen oder vor dem Kauf prüfen, welche App sich denn nun besser auf dem Tablet macht, wenn dieses gerade nicht zur Hand ist.
Lahmer Emulator
Der offizielle Emulator leidet jedoch unter einer Reihe von Einschränkungen. Zum einen arbeitet die Emulation nicht wirklich flott – selbst nachdem es inzwischen möglich ist, die GPU des Hosts mit zu nutzen. Zum anderen enthält das emulierte System nie das Google-Framework. Maps, Chrome oder natürlich der Play Store stehen daher nicht ohne Weiteres im emulierten System bereit, das Nachinstallieren von Apps über den Google Market ist unmöglich.
Als Alternative bot sich längere Zeit das Open-Source Projekt AndroVM [2] an. Auf Basis der Arbeit von Android x86 [3], das Android auf herkömmlicher PC-Architektur lauffähig machen möchte, verfrachtete AndroVM mit Hilfe von VMware oder VirtualBox Android in eine virtuelle Maschine. Das virtualisierte Android arbeitete schon damals deutlich schneller als der Emulator aus dem SDK.
Inzwischen hat sich AndroVM zu einem kommerziellen Projekt entwickelt. Unter dem Namen Genymotion [4] steht aber weiterhin eine kostenlose Version der Android-VM bereit. Später sollen einmal zusätzliche Features für Entwickler hinzukommen, die Sie durch den Kauf einer Lizenz freischalten. Noch steht Genymotion jedoch für jeden interessierten Benutzer ohne Einschränkungen zur Verfügung.
Aufgrund des Supports von OpenGL läuft das virtualisierte Android in Genymotion auf dem PC praktisch genauso schnell und flüssig, wie Sie das von aktuellen Smartphones kennen. Die Voraussetzungen dafür sind ein halbwegs aktueller PC und eine OpenGL-fähige Grafikkarte mit entsprechenden Treibern.
Genymotion: Systemvoraussetzungen
- OpenGL 2.0 fähige Grafikkarte
- VT-x oder AMD-V fähige CPU mit mindestens 2 GHz
- 2 GByte RAM
- 2 GByte Speicherplatz
Genymotion installieren
Das virtuelle Android in Form von Genymotion bekommen Sie nach dem kostenlosen Registrieren auf der Homepage des Projekts. Downloads stehen generell für Windows, Mac OS X und Linux bereit. Für Windows-User gibt es zudem eine Variante, die Virtualbox [5] gleich mitbringt. Unter Linux installieren Sie Virtualbox vor dem Start von Genymotion aus den Paketquellen der verwendeten Distribution.
Um Genymotion unter Linux zu betreiben, bieten die Entwickler diverse Downloads an. Für 32- oder 64-Bit-Ubuntu, Fedora oder Red Hat gibt es jeweils ein einheitliches Binary-Archiv. Für 64-Bit-Debian offerieren das Projekt ein anderes Archiv, zudem sollten Sie auf diesem System noch das Paket libpng3 einspielen. DEB- oder RPM-Pakete für die Installation von Genymotion über die Paketverwaltung gibt es bislang noch nicht. Unter Arch Linux installieren Sie die Software aus dem AUR heraus [6].
Zur Installation über die Binary-Pakete setzten Sie mit chmod das Execute-Bit und rufen das sich selbst extrahierende Archiv auf. Dieses entpackt alle Daten ins Verzeichnis genymotion im aktuellen Ordner, in dem Sie dann auch die ausführbare Programmdatei finden.
Die Daten, also heruntergeladene OVA-Images und die aktiven virtuellen Maschinen, legt Genymotion im Ordner ~/.Genymotion ab. Die aktiven Maschinen verknüpft das Tool automatisch mit der Virtualbox-Installation, sodass die Android-VMs direkt in Virtualbox bereit stehen. An dieser Stelle nehmen Sie bei Bedarf tief greifende Änderungen an den virtuellen Maschinen vor. Starten Sie eine Android-Maschine aus VirtualBox, fehlt jedoch das Genymotion-Menü an der Seite.
Genymotion einrichten
Nach dem ersten Start führt Genymotion noch keine virtuellen Maschinen. Über Add gelangen Sie ins Menü Create a new virtual device. Dort melden Sie sich in Ihrem Genymotion-Account an. Im Dialog finden Sie nun eine große Auswahl fertiger Android-VMs, die Sie abermals über Add herunterladen und im System ablegen (Abbildung 2).
Genymotion bietet Maschinen im von VirtualBox unterstützen Format Open Virtualization Archive (OVA) mit Android 4.1 und neuer an. Verschiedene Gerätetypen mit unterschiedlichen Auflösungen stehen zur Wahl. In mit with Google Apps gekennzeichnete VMs ist das Google-Framework mitsamt Play Store bereits vorinstalliert.
Um später über die Android-Debug-Bridge – kurz adb – auf das virtualisierte System zu zugreifen, tragen Sie unter Menu |Settings den Path to Android SDK ein, also den Pfad zur Installation des Android-SDKs [7]. Geben Sie an dieser Stelle nicht den vollständigen Pfad zum Binary adb ein, also ohne abschließendes platform-tools\adb, sondern nur zum SDK selbst.
Android-VM starten
Liegen nun eine oder mehr Android-VMs auf Ihrer Festplatte, startet Sie das virtualisierte Android über einen Klick auf Play. Je nach Rechenpower des Systems – empfehlenswert sind Rechner ab der ersten Intel-Core-Generation – startet die VM in nur wenigen Augenblicken.
Wie bei Android üblich, gilt es, anfangs das System einzurichten und die Sprache auszuwählen. Nutzen Sie eine VM mit vorinstalliertem Google-Framework, dann fragt Sie der Einrichtungsassistent auch nach Ihrem Google-Konto. Legen Sie am besten für Ihre virtuellen Test-Androiden ein eigenes Google-Konto an.
Das virtuelle Android bedienen Sie nun genauso wie auf dem Smartphone – die Maus ersetzt den Zeigefinger. Zur Eingabe von Texten nutzen Sie jedoch die Tastatur Ihres PCs, ein virtuelles Keyboard erscheint bei Genymotion nicht. In den Einstellungen der virtuellen Maschine, die Sie über das kleine Icon mit dem Schraubenschlüssel erreichen, oder über die App Genymotion Configurator ließe sich das virtuelle Keyboard auf Wunsch nachträglich aktivieren.
Rechts neben dem Android-Screen finden Sie virtuelle Tasten für Lautstärke sowie den Ein/Ausschalter oder die Schaltflächen für “Menü”, “Home” und “Zurück”. Über das Symbol mit der Batterie gaukeln Sie dem virtuellen Android bei Bedarf vor, dass ihm der Strom ausgeht. Das GPS-Icon öffnet ein Fenster, über das Sie dem virtuellen Handy beliebige GPS-Koordinaten unterjubeln. Eine durchsuchbare Karte erleichtert dabei die Wahl des simulierten Standorts.
Power und Play Store
Entwicklern und erfahrenen Anwendern erschließt sich der Nutzen einer virtuellen Maschine ohnehin. Android-User profitieren besonders von der Integration des Play Stores in den Genymotion-VMs (Abbildung 3) und von den typischen Schaltflächen in der Oberfläche: In der virtuellen Maschine experimentieren Sie gefahrlos mit unbekannten oder verdächtigen Apps, ohne Ihr ein reales Handy zu gefährden.
Genymotion bietet in seiner Oberfläche zwar keine Option, Snapshots einer aktiven virtuellen Maschine zu erstellen, doch über das Virtualbox-Backend ist dies, wie bei anderen Desktop- oder Server-Systemen, kein Problem. So sichern Sie eine vorkonfigurierte Maschine und kehren mit wenigen Mausklicks zu einem früheren Zustand zurück. In Virtualbox selbst haben Sie zudem die Möglichkeit, die VM mit Ihrer Demo-App zu archivieren und an Interessenten weiterzugeben.
Fazit
Die Performance des virtualisierten Androids hängt natürlich stark vom eingesetzten Host ab. Für das Schreiben des Artikels kam ein angestaubtes Debian-System zum Einsatz, mit einem schnellen Intel Core 2 Duo E84000 (3 GHz) und 4 GByte RAM. Hier lief das virtuelle Android deutlich schneller und flüssiger als der Android-Emulator von Google, obwohl das System ansonsten gut ausgelastet war.
Entwickler finden zudem mit der Genymotion-API eine Möglichkeit, interaktiv auf die Android-VM zuzugreifen und so etwa Features wie NFC per Software zu emulieren.
Infos
[1] Android SDK Emulator: http://developer.android.com/tools/devices/emulator.html
[2] AndroVM: http://androvm.org/blog/
[3] Android x86: http://www.android-x86.org
[4] Genymotion: http://genymotion.com
[5] VirtualBox: https://www.virtualbox.org
[6] Genymotion im AUR: https://aur.archlinux.org/packages/genymotion/?setlang=de
[7] Android SDK: http://developer.android.com/sdk







