Genymotion: eine Alternative zu Google-Emulatoren

Need for Speed: Android-Emulator Genymotion

Lars Röwekamp, Arne Limburg
Genymotion: eine Alternative zu Google-Emulatoren

© Shutterstock / Mmaxer

Es gibt wohl kaum einen Android-Entwickler, der sich nicht schon in der einen oder anderen Weise über die Emulatoren aus dem Hause Google geärgert hat. Extrem langsam, arm an Funktionalität und dazu noch buggy – viel Gutes gibt es wirklich nicht über die virtuellen Devices zu berichten. Und selbst wenn man sich an die in [1] beschriebenen Schritte zum „Pimpen“ der Emulatoren hält, kommt nicht wirklich Freude auf. Wieso also nicht einmal eine Alternative ausprobieren?

Die Tatsache, dass Android-Emulatoren die reale Hardware des zu emulierenden Systems widerspiegeln, bringt zwar den Vorteil realitätsnaher, virtueller Umgebungen mit sich, geht aber gleichzeitig zu Lasten der Performanz. Sowohl die „Start-up“-Phase als auch das eigentliche Laufzeitverhalten kann für den Entwickler nahezu unerträgliche Dimensionen annehmen. Verantwortlich hierfür sind die unterschiedlichen Instruction Sets von ARM (Emulator) und x86 (Host), die eine performancefressende Interpretation der Befehle zur Folge haben.

Natürlich gibt es den einen oder anderen Trick zur Beschleunigung des virtuellen Devices, wie zum Beispiel das Arbeiten mit Snapshots oder die Nutzung des Host-GPU-Supports. In der Regel bringen diese Maßnahmen aber nur einen überschaubaren Performanceschub mit sich und sind häufig nicht miteinander kombinierbar.

Deutlich schneller – wenn auch noch immer nicht wirklich schnell – wird es erst unter Verwendung spezieller x86-Images und Virtual Machine Acceleration. Für diesen Schritt ist zusätzlich die Installation des Intel Hardware Accelerated Exceution Managers (kurz: HAXM) notwendig. So weit, so gut – oder eben auch nicht.

Schnell, schneller, am schnellsten

Nach all der Nörgelei stellt sich also die Frage nach einer gangbaren Alternative. Schnell(er) sollte sie sein und wenn möglich auch über ein paar mehr Features verfügen als die Google-eigenen Emulatoren. Wenn darüber hinaus noch eine verbesserte Laufzeitstabilität hinzukäme, wären all unsere Emulatorträume erfüllt.

Einen möglichen Kandidaten für den Titel „echte Alternative“ finden wir in Genymotion. Der Android-Emulator aus dem Hause Genymobile nutzt Oracles Virtual Box als Ablaufumgebung und ist schnell – verdammt schnell. Als Entwickler kann man aus ca. dreißig verschiedenen, vorgefertigten Devices auswählen und diese mit beliebigen OS-Versionen (2.3.7 bis 4.4.4) kombinieren. Zusätzlich lassen sich die vorgegebenen Devices noch bezüglich Bildschirmauflösung, Pixeldichte, Prozessoranzahl und Speicher anpassen, sodass letztendlich beliebige Konfigurationen erstellt werden können. Dank vorhandener Plug-ins für das Android Studio von IntelliJ und das Eclipse ADT Bundle kann der Entwickler den Emulator problemlos in Kombination mit seiner Lieblings-IDE verwenden, inklusive Logcat-Browser und Debugging (Abb. 1).

Abb. 1: Genymotion und Android Studio

Abb. 1: Genymotion und Android Studio

Darfs ein wenig mehr sein?

Richtig interessant wird es aber erst, wenn man sich die einzelnen Zusatzfeatures des Genymotion genauer anschaut. Spätestens hier zeigt sich der wahre Unterschied zum Android-Standard-Emulator. Verschiedenste Widgets, wie z. B. Batterie, GPS, Kamera oder Netzwerk, erlauben die manuelle Manipulation des Devicestatus und ermöglichen so das Testen der eigenen App in realitätsnahen Situationen. Ein Vorteil, der sonst nur auf echten Devices erreicht werden kann.

So kann beispielsweise das Verhalten der App bei unterschiedlichen Netzwerkverbindungen und -stärken oder bei ab- bzw. zunehmender Batterieladung getestet werden. Auch die eigene GPS-Position kann manuell eingestellt werden, inklusive gewünschter Genauigkeit des GPS-Signals. Für die Interaktion mit einem Serverdienst ist darüber hinaus die Möglichkeit zum Angeben einer simulierten Android-ID bzw. IMEI interessant. Ebenfalls sehr nützlich ist das Screencast Widget. Mit seiner Hilfe können einzelne Screenshots oder gleich ein ganzer Screencast erstellt werden.

Google-Apps-Support

Was aber ist, wenn man eine der Google-Apps, wie G-Mail, Google Maps oder den Google Play Store nutzen möchte? Auf dem Originalemulator sind diese – wie auf fast allen realen Devices – bereits vorinstalliert. Anders dagegen bei Genymotion. Hier sind die Apps seit der Version 2.0 nicht mehr auf den Devices zu finden.

Um es kurz zu machen: Es ist möglich, bedarf aber einiger manueller Schritte. Zunächst einmal muss ein Programm namens „ARM Translation“ installiert werden. Im Anschluss kann dann das für die auf dem Emulator installierte Android-Version passende Google-Play-Zip-Files via Drag and Drop auf das Device gezogen werden. Der darin enthaltene Play Store erlaubt den Zugriff auf den gesamten Google Store und somit auch auf die Google-eigenen Apps. Eine detaillierte „Step-by-Step“-Anleitung findet sich hier.

Fazit

Der Genymotion-Emulator aus dem Hause Genymobile stellt eine echte Alternative zu dem im Android ADT enthaltenen Emulator von Google dar. Deutlich schneller und mit etlichen Zusatzfeatures versehen, ist er genau das, was sich ein Entwickler für die tägliche Arbeit wünscht.

Und auch im Testprozess lässt Genymotion den Entwickler/Tester nicht im Stich. Mithilfe eines Java-API können die verschiedenen Sensoren des Emulators manipuliert und so die korrekte Reaktion der eigenen App auf diese Änderungen getestet werden. Zusätzlich lassen sich via Scripting mehrere Emulatoren mit unterschiedlichen Konfigurationen bequem in den eigenen Testprozess einbinden.

Wünschenswert wäre, zukünftig wieder die Google-Play-Apps auf dem Emulator vorinstalliert zu finden. Hier ist man laut Genymobile in Gesprächen mit Google und „guter Hoffnung“. In diesem Sinne: Stay tuned.

Aufmacherbild: 3d Illustration of speed via Shutterstock / Urheberrecht: Mmaxer

Verwandte Themen:

Geschrieben von
Lars Röwekamp
Lars Röwekamp
Lars Röwekamp ist Gründer des IT-Beratungs- und Entwicklungsunternehmens open knowledge GmbH, beschäftigt sich im Rahmen seiner Tätigkeit als „CIO New Technologies“ mit der eingehenden Analyse und Bewertung neuer Software- und Technologietrends. Ein besonderer Schwerpunkt seiner Arbeit liegt derzeit in den Bereichen Enterprise und Mobile Computing, wobei neben Design- und Architekturfragen insbesondere die Real-Life-Aspekte im Fokus seiner Betrachtung stehen. Lars Röwekamp, Autor mehrerer Fachartikel und -bücher, beschäftigt sich seit der Geburtsstunde von Java mit dieser Programmiersprache, wobei er einen Großteil seiner praktischen Erfahrungen im Rahmen großer internationaler Projekte sammeln konnte.
Arne Limburg
Arne Limburg
Arne Limburg ist Softwarearchitekt bei der open knowledge GmbH in Oldenburg. Er verfügt über langjährige Erfahrung als Entwickler, Architekt und Consultant im Java-Umfeld und ist auch seit der ersten Stunde im Android-Umfeld aktiv.
Kommentare

Hinterlasse einen Kommentar

avatar
4000
  Subscribe  
Benachrichtige mich zu: