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.

Android Dev – Eclipse GC overhead limit exceeded

 Android, Entwicklung  Kommentare deaktiviert für Android Dev – Eclipse GC overhead limit exceeded
Jul 242012
 

Was ich mich in den letzten paar Tagen genervt habe. Bei meinem Projekt kommen immer mehr externe Libraries hinzu. Es gibt solche die als *.jar Datei eingebunden werden und solche die man als Projekt einbindet. Um so mehr davon vorhanden sind um so häufiger kommt folgende Meldung.

Eclipse GC overhead limit exceeded

Und die nervt gewaltig. Wenn man Pech hat verhaut es einem das ganze Eclipse. Es startet einfach nicht mehr obwohl man die .lock Datei und die snap Datei gelöscht hat. Mir blieb dann meistens nichts anderes übrig als alles im .metadata Verzeichnis zu löschen. Allerdings kann man dann in Eclipse wieder alles neu einstellen.

Um diesen Fehler zu beseitigen kann man folgendes versuchen. Bei mir hat es zumindest funktioniert.

Im Installationsverzeichnis von Eclipse öffnet man die eclipse.ini.

Alles was fett ist habe ich angepasst.

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
–launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.mobile.product
–launcher.defaultAction
openFile
–launcher.XXMaxPermSize
1024M
-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize
1024m
–launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
Xms512m
Xmx1024m

Anwendbar auf eigenes Risiko.

Quelle: Unable to execute dex: GC overhead limit exceeded

Android Source Code einfach in Projekten einbinden

 Android, Entwicklung  Kommentare deaktiviert für Android Source Code einfach in Projekten einbinden
Apr 162012
 

Bei meinen Experimenten mit der Android Entwicklung stiess ich immer wieder auf das selbe Problem. Android ist Open Source aber der Debugger konnte nie in den Source rein springen. Ist auch logisch, denn den müsste ich zuerst runterladen.

Um es richtig zu machen müsste ich den Source Code für alle Versionen runterladen. Irgend wie nicht praktikabel.

Auf den Webseite von Lars Vogel gibt es einige Tutorials zu Android. Eines davon beschäftigt sich mit dem organisieren des Android Source Codes. Eine Lösung ist klassisch via Git. Die Andere via, und das finde ich absolut cool, einem Eclipse Plug-In.

Dieses Plug-In fügt einem Android Projekt automatisch den passenden Source Code hinzu. Auf der Seite sind ein paar andere Plug-Ins zu finden, von Interesse für mich ist zur Zeit nur das Android Sources.

Man füge die Angegebene URL in Eclipse unter “Hilfe -> Neue Software installieren” ein und lade das Plug-In runter. Achtung. Hier ist Geduld angesagt. Das Plug-In ist aktuell 240MB mächtig. Das dauerte so seine Zeit. Und in dieser Zeit tut sich nicht viel. Also Geduld, Eclipse ist nicht abgestürzt oder so. Es dauert halt nur lange.

Neue Software installieren in Eclipse

Wenn man, nach einem Neustart von Eclipse, im Source Code auf eine Klasse des Android Frameworks klickt, und mit F3 in die Definition springt …

Activity Klasse

… sollte in etwa so was hier auftauchen.

Activity Souce Code

Somit ist es also möglich in den Source Code von Android hinein zu debuggen. Cool.

Und einfacher geht es wohl nicht mehr.

PS: Direkt nach dem Neustart von Eclipse konnte ich noch nicht in den Source Code von bestehenden Projekten springen. Aus lauter Frust habe ich mir dann kurz ein neues Android Projekt erstellt. Im neuen Projekt konnte ich dann in den Source Code springen. Danach ging es auch bei bestehenden Projekten.

Apr 072012
 

Wenn man Tag täglich mit der selben Entwicklungsumgebung arbeitet gewöhnt man sich so einiges an. Unter anderem auch das Tastaturlayout der Entwicklungsumgebung. Nutzt man dann einmal eine Andere,  zum Beispiel um Android App’s zu machen, läuft man immer wieder auf. Es ist so ärgerlich wenn man beim debuggen immer wider die falschen F-Tasten drückt.

Oder nur schon das rauslöschen einer Zeile Code. Man gewöhnt sich das Ctrl-Shift-l einfach an. Macht man das dann in Eclipse ist das Ergebnis nicht wie erwartet.

Aber alle Shortcuts selber zu erstellen tut sich wohl niemand einfach so an. Wenn man dann nur die Java Umgebung installiert hat kann man das Visual Studio Keymap schon gar nicht auswählen.

Beim Suchen nach einer Lösung bin ich auf dieses Posting gestossen.

Eclipse Ganymede: Install Visual Studio keymapping

Siehe da, danach hat man ansatzweise ein Visual Studio Keymap.

Visual Studio Keymap unter Eclipse

Der Trick an der Sache ist das man die C/C++ Eclipse Umgebung auch noch installiert. Dass kann man einfach über das Menü “Hilfe -> neue Software installieren” machen.

Man wählt das Repo (Indigo – http://download.eclipse.org/releases/indigo) aus und installiert die “C/C++ Development Tools”. Nach dem abschliessenden Neustart von Eclipse kann man dann das Keymap laden.

Die zu installierenden C/C++ Development Tools

Das debuggen mit F10 ist schon mal angenehm und funktioniert auch. Der Rest wird sich noch zeigen.

PS: Ctrl+Shift+l um eine Zeile zu löschen ist hier nicht drin.

PSS: Auf der Suche nach einem Keymap für ReSharper unter Eclipse bin ich auf das hier gestossen. Testen tue ich es aber nicht. Zu alt. Aber scheinbar ein Bedürfnis.