Login
Newsletter
Werbung

Do, 15. November 2007, 13:02

Software::Entwicklung

Dalvik führt Java-Code auf der Android-Plattform aus

Die jüngst von Google und der Open Handset Alliance vorgestellte Softwareplattform »Android« bringt eine alternative Java-Implementierung namens »Dalvik« mit.

Kurz nachdem die Open Handset Alliance die erste Vorschau auf Android veröffentlicht hat, haben einige Entwickler einen ersten Blick auf den Code geworfen. Besonders ins Auge fiel ihnen dabei die virtuelle Java-Maschine (VM) »Dalvik«, die es ermöglicht, Java-Programme auszuführen, ohne eine VM oder andere Komponenten von Sun zu benutzen. Anwendungen für Android werden dem FAQ zufolge ausschließlich in Java entwickelt.

Als Sun Java SE öffnete, wählte es die GPLv2 als Lizenz, fügte aber zu einem Teil des Quellcodes die »Classpath-Exception« hinzu, die auch von GNU Classpath verwendet wird: Linkt man unabhängige Module mit dem GPL-Code von Java, dann darf das resultierende Produkt unter einer beliebigen Lizenz vertrieben werden. Eine Option für die Open Handset Alliance wäre es gewesen, Java ME zu verwenden. Doch Java ME enthält diese Ausnahme nicht. Damit hätten kommerzielle Software-Anbieter Lizenzgebühren an Sun entrichten müssen, was offenbar der Intention der Open Handset Alliance widersprochen hätte, eine von Lizenzgebühren freie Plattform zu schaffen.

Mit der eigenen Java-VM »Dalvik« umgeht die Allianz dieses Dilemma. Dalvik ist, wie der Großteil von Android, unter der Apache-Lizenz 2.0 lizenziert. Zwar besitzt Dalvik keine Zertifizierung seiner Java-Kompatibilität, doch dürfte die Allianz dafür sorgen, dass die Kompatibilität inoffiziell gewahrt bleibt. Dalvik verwendet auch lediglich die Java-Syntax, ohne die Java-VM exakt nachzubilden. Der Dalvik-Bytecode unterscheidet sich von dem, den Java generiert, so dass Java-Code nur dann unter Dalvik läuft, wenn er auch für Dalvik compiliert wurde. Die VM soll registerbasiert arbeiten, im Gegensatz zur stackbasierten VM von Sun. Möglicherweise kann dies ausgenutzt werden, um den Code zu beschleunigen.

Weiter verwendet Dalvik die Klassenbibliothek von Apache Harmony und ist somit kompatibel zu Java SE, auch wenn Google dies nicht offiziell bestätigen wird. Nach Ansicht von Stefano Mazzocchi ist dies sogar ein Vorteil, da Java ME mit seinen verschiedenen Profilen, verschiedenen Implementierungen und Signierung von Anwendungen längst keine Plattformunabhängigkeit mehr biete.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung