Google Androids Dalvik Java
Liest man oberflächlich die Spezifikationen zur Android-Plattform durch, sieht man sofort, dass die Anwendungen dafür in Java geschrieben werden.
Beim zweiten Blick muss man sich jedoch fragen, wird denn dort auch Java Bytecode ausgeführt? Die Frage kann man wohl mit einem Jain, wenn nicht sogar mit einem Nein beantworten. Jedenfalls wird Bytecode in einer virtuellen Maschine namens Dalvik ausgeführt. Und Javaprogramme, die etwa mit dem Eclipse-Plugin für Android entwickelt werden, werden mittels der dx Tools noch einmal in Dalvik-Bytecode übersetzt.
Dalvik ist eine virtuelle Maschine, wie Suns JVM oder die von .net, nur dass sie eben Google gehört. Möglich wird das dadurch, dass Google Android sich stark am Apache Projekt Harmony (einer Java SE unter Apache Lizenz) bedient und so gar nicht erst mit den Ansprüchen von Sun in Berührung kommt. Das ganze Vorgehen erinnert ein wenig an das Google Web Toolkit (GWT) auch dort schreibt man Javacode, der in diesem Fall dann allerdings in DHTML/Java-Script übersetzt wird.
Google verwendet bei Android Java vorwiegend als Programmiersprache weniger als Runtime. Für mobile Endgeräte unhandliche Dinge wurden beiseite gelassen (etwa Swing). Dafür schreibt man seine Oberflächen nun in einer deklarativen XML Syntax (XUL lässt grüßen). Die Klassenbibliotheken die Google mitliefert etwa für openGL, Bluetooth oder USB gehen auch deutlich über das Angebot von Java Mobile Edition (ME) hinaus und sind für Entwickler sicherlich interessant.
Die Sorge bei Sun um die Einheitlichkeit von Java ist jetzt groß. Auf der anderen Seite zielt Android nur auf den Markt der Mobile Devices und das, was Sun dort zu bieten hat, die Java ME ist alles andere als einheitlich. So bringt Google zwar keine Standard-Implementierung von Java an den Start, vereinheitlicht dafür aber wahrscheinlich mittelfristig die Java-Entwicklung auf mobilen Endgeräten, etwas, das Sun nie geschafft hat.
In einigen Blogs und Gruppen spricht man schon von Gava statt von Java :o)