Android Dev – Schneller Android Emulator Genymotion

 Android, Entwicklung  Kommentare deaktiviert für Android Dev – Schneller Android Emulator Genymotion
Jul 292013
 

Im Dezember 2012 habe ich mal was über einen schnellen Android Emulator geschrieben. Dieses Projekt gibt es in der Form nun nicht mehr. War auch ziemlich überrascht. Dafür gibt es aber was besseres. So sieht es jedenfalls für mich aktuell aus. Das Teil nennt sich Genymotion. Aktuell ist die Lösung noch in der BETA und aktuell sind die Android Images noch gratis. In Zukunft soll es auch gratis bleiben, allerdings wird es auch eine kommerzielle Geschichte geben. Die werden dann noch ein paar Features mehr haben, aber zum testen reicht vollkommen aus. Zudem ist das Teil noch immer rasend schnell.

Was auch cool ist, das Teil ist nun einfach nach dem Start im ADB sichtbar und es kann sofort damit gearbeitet werden. Es muss nicht noch rumgefummelt werden bis man sich mit dem Debugger verbinden kann. Zudem kann die Orientierung nun VIEL einfacher gewechselt werden. Mir gefällt das Ding super.

Es gibt sogar noch ein IntelliJ IDEA Plugin und auch eines für Eclipse.

Installation ist relativ einfach. Man lade die gewünschte Version runter. Unter Linux handelt sich um eine .bin Datei. Danach muss/darf man die Datei noch ausführbar machen.

chmod +x genymotion-1.1.0_x64.bin
./genymotion-1.1.0_x64.bin 

Jetzt installiert sich Genymotion. Allerdings lässt sich danach unter Umständen kein Image starten. Wenn das der Fall ist muss man noch die Kernelmodule erstellen. Ist in den FAQ gut beschrieben.

Ach ja. Installiert wird das Tool in das selbe Verzeichnis wo die genymotion-1.1.0_x64.bin liegt. Das muss man unter umständen noch anpassen.

Und jetzt kann das Teil gestartet werden. Ganz einfach mit ./genymotion, sofern man im Installationsverzeichnis ist.

Danach sieht man diesen Dialog hier. Allerdings ohne Android VMs. Diese muss man zuerst hinzufügen. Einfach mal auf Add klicken.

Genymotion Startseite

Dann wählt man ein vorkonfiguriertes Gerät aus …

Neues Gerät auswählen

… klickt auf Add und verfolgt nun was passiert. Ist keine Hexerei.

Download und Installation der VM

Das Android Image wird dann aus der Cloud runtergeladen, parametrisiert und installiert.

Jetzt kann es gestartet werden. Hier im Beispiel ein Image eines Nexus 7.

Gestartetes Nexus 7

Und wie gesagt, man kann gleich loslegen.

Device auswähl beim debuggen

Meine App Com2Cal konnte ich ohne Probleme starten und debuggen.

Gestartete Com2Cal App auf dem Emulator 

Und nun, viel Spass beim emulieren.

Dez 152012
 

Jeder der für Android entwickelt wird schnell feststellen, dass die Emulatoren von Google so gut wie nutzlos sind. Sobald die eigene App Funktionen wie Kalender nutzen will wird man mit diesen Emulatoren scheitern. Die haben nämlich keinen Kalender, kein Google Play u.s.w. an Board. Um diese dann zu implementieren muss man einiges an unschönen Sachen anrichten. Zudem sind die original Emulatoren auch grottenlangsam. Es dauert ewig bis sie gestartet sind und die Arbeit darauf macht auch keinen Spass.

Seit der Version 4 – oder 4.1? – von Android gibt es auch eine Version für X86 Prozessoren für Intel. Das hat sich ein Projekt zu nutze gemacht um eine VM anzubieten die auf dieser Version basiert. Damit ist es möglich Android auch in anderen Virtualisierungslösungen zu starten. Konkret nutzt das Projekt AndroVM die VirtualBox von Oracle. Das heisst, dass Teil ist rasend schnell. Beim Starten und auch danach beim Arbeiten.

Und so richtet man sich die Geschichte ein.

  1. Download der VirtualBox mit anschliessender Installation.
  2. Download der der gewünschten Version als OVA Datei.
  3. Import der OVA Datei in VirtualBox.
    OVA Datei improtieren
  4. Datei auswählen.
    OVA Datei auswählen
  5. Danach einfach alles mit weiter durchklicken. Die OVA Datei wird importiert. Danach müsste es in etwa wie folgt aussehen.
    VM direkt nach dem Import
  6. Jetzt würde ich der VM noch einen sinnvollen Namen geben. Dies wird wie folgt gemacht.
    VM Name anpassen
  7. Wenn man gedenkt auf dem Emulator eine App zu debuggen muss man die Netzwerkschnittstelle noch anpassen. Ich habe es nicht ganz so gelöst wie auf der Webseite beschrieben, da mir das zu aufwendig war. Einfach im Adapter 1 “Angeschlossen an:” auf Netzwerkbrücke stellen. Damit bezieht die VM eine IP vom Router im eigenen Netzwerk. Bei mir ist das eine IP im 192.168.1.xx Netz. Funktioniert logischerweise nur wenn man einen DHCP Dienst im Netzwerk hat. Ist aber bei den meisten Routern der Fall.
    VM Netzwerk anpassen
  8. Jetzt ist man so weit und kann die VM das erste mal starten. Bei mir dauert es etwa 20 Sekunden und Android ist da. Beim ersten Start wird man noch vom Einrichtungsassistent begrüsst. Dort kann man nun seine Daten angeben und hat dann zugriff auf Google Play.
  9. Unter den Anwendungen findet man die App androVM Configurator. Die App kann gestartet werden und zeigt einem welche IP der VM vergeben wurde. Bei mir 192.168.1.45. Mit den Einstellungen in der App kann nun gespielt werden. Aber bei einigen Veränderungen startete mir danach die VM nicht mehr. Also Vorsicht.

Jetzt ist man soweit um App’s aus Google Play zu installieren. Aber ich will ja meine eigene App im Emulator testen. Da dieser Emulator alles unterstützt was ich brauche, muss ich ihn nur noch dazu bringen das ich aus Eclipse raus meine App installieren kann. Geht wie folgt.

  1. Wie man sieht erkennt Eclipse die neue VM noch nicht.
    Device in Eclipse vor dem adb connect
  2. Wenn man jetzt aber im cmd ein “adb connect <ip>” eingibt ändert sich das.
    adb connect <ip>
    Device in Eclipse nach dem adb connect
  3. Nun kann man in eigene App auf der VM starten.
    Debugger in Eclipse starten auf der VM
  4. Als Beweis:
    Der Beweis - gestartete App

Jetzt ist man in der Lage ganz normal mit der VM zu entwickeln. Und das viel schneller und flüssiger als mit den Emulatoren von Google.

Ach ja. Wenn die Maus in der VM gefangen ist drückt man einfach die rechte CTRL Taste. Nervte mich persönlich. Deshalb habe ich die auf die linke CTRL Taste verlegt. Kann in den Einstellungen gemacht werden.