IcedRobot: "Android kann überall laufen, wo auch Java läuft"

Das Android für die JVM

IcedRobot ist eine neue Initiative, in der das Ziel verfolgt wird, das Android API auf den Linux Desktop zu portieren und Android unabhängig von der Dalvik Virtual Machine auf der JVM zum Laufen zu bringen. IcedRobot-Entwickler Mario Torre stellt das Projekt und die vielfältigen neuen Möglichkeiten, die sich für Android-Entwickler aller Couleur auftun, im Gespräch mit JAXenter vor.

JAXenter: Die Webseite des Projektes IcedRobot hat vor kurzem das Licht der Welt erblickt. Kannst du uns etwas über das Projekt erzählen?

Mario Torre: Zunächst einmal vielen Dank für die Gelegenheit zum Interview! Das Ziel von IcedRobot ist es, eine vollständige Umgebung zur Verfügung zu stellen, die mit Android kompatibel ist und auch auf dem Standard-Desktop läuft. Android ist ein mächtiges System, das aus verschiedenen Schichten besteht, wobei die meisten dieser Schichten vielen Usern bereits zugänglich sind. Wir denken indes, es könnte interessant sein, das Programmier-Framework und die Bibliotheken von Android zu nutzen, ohne das komplette Android-Betriebssystem installieren zu müssen – in anderen Worten, Android auf GNU/Linux zu verwenden. Ich spreche dabei nicht ohne Grund von GNU/Linux, denn Android basiert im Kern nur teilweise auf der GNU Toolchain.

Es gibt noch ein weiteres Ziel. Wenn wir Dalvik vom OS trennen, werden wir Android-Anwendungen mit wenig Mühe und größtenteils unverändert auf etwas anderem als Linux zum Laufen bringen können. Wir zielen insbesondere auf OSX und QNX ab, die vermutlich am einfachsten zugänglich sind. Aber einige unserer Entwickler sind auch an Windows und Windows Mobile interessiert. Und wirklich – warum sollten wir uns einschränken? Wir können Android auf jeder beliebigen noch so verrückten Plattform zum Laufen bringen, zu der wir Zugang haben.

Also, kurze Zusammenfassung: IcedRobot besteht hauptsächlich aus dem Interpreter Daneel und dem Framework selbst, welches informell Teil des GNU-Droid-Projekts ist. Wir haben auch einige weiterführende Pläne (das, was wir auf der FOSDEM als GNU Bishop bezeichnet haben), doch zum jetzigen Zeitpunkt haben wir diese noch nicht im Detail ausgearbeitet.

JAXenter: Welche sind die technologischen Herausforderungen, wenn man Dalvik von der Android-Infrastruktur trennen will.

Mario Torre: Es gibt einige Probleme, auf die wir stoßen. Zuallererst gibt es viele Komponenten, die eine spezifische Prozessor-Architektur erfordern und deren Komponenten nur in Assembler- oder binärer Form existieren. Wir müssen, wo möglich, diese Teile ersetzen oder umschreiben.

Sobald wir diese Aufgabe erledigt haben, könnten wir theoretisch bereits Android-Anwendungen unverändert auf Dalvik laufen lassen. IcedRobot wäre damit vollständig und würde nur noch Wartung benötigen – und wir wären berühmt und zufrieden.

Aber bei der Diskussion unserer anfänglichen Planung kamen wir zu einer anderen Schlussfolgerung: Warum machen wir nicht aus Dalvik ein Modul und benutzen stattdessen das JDK? Wir dachten, das würde jeden glücklich machen: Oracle einerseits, weil wir ihnen die Java-Kompatibilität zurückgeben würden, die Google aufgebrochen hatte, und Google andererseits, weil wir eine noch breitere User-Basis erreichen würden!

Mir ist klar, wie naiv dieser Ansatz ist. Aber wir sind nun mal Hacker, und wir haben das unser ganzes Leben lang gemacht: Wenn wir etwas gefunden haben, das uns irgendwie nutzt, uns aber nicht vollständig zufrieden stellt, dann passen wir es an. Genau das haben wir mit dem Caciocavallo-Projekt gemacht: Unser erstes Ergebnis war, den GNU Classpath Code weitestgehend unverändert auf dem OpenJDK laufen zu lassen. Das zweite war, Swing-Anwendungen in einem alten Videorekorder – wir haben OS9 benutzt – laufen zu lassen, und jetzt portiert Clemens Eisserer Swing auf HTML5, sodass man Java nicht mehr länger auf dem Client laufen lassen muss!

Warum ich das sage, ist, dass das alles am Ende miteinander zusammenhängt. Wäre es nicht cool, Android in einem Webbrowser zu betreiben, ohne zuerst eine VM auf dem Computer zu haben?

Aber das wirft natürlich neue Fragen auf. Wir brauchen einen Dalvik-Interpreter, wir müssen sicherstellen, dass die Bibliothek unter dem JDK arbeitet, und wir müssen das Problem der nicht wenigen Nameskollisionen lösen. Zum jetzigen Zeitpunkt haben wir für viele dieser Fragen noch keine Antwort, aber dank der großartigen Arbeit von Rémi Foraxu, Michael Starzinger und Roman Kennke konnten wir bereits eine „Hello World“-Anwendung präsentieren.

Die Anwendung wurde noch nicht integriert, weil wir versuchen, die Parser Interna so zu abstrahieren, dass wir bei Bedarf auch andere Implementierungen einklinken können. Es passieren also gerade spannende Dinge, und wir sind wirklich ganz begeistert.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.