Der Android auf dem Handy

Kay Glahn

Schon seit längerer Zeit gingen Gerüchte um, dass Google sich in der Mobiltelefonwelt engagieren wolle und eventuell sogar ein eigenes Handy plane. Am 5. November hat Google nun das Geheimnis gelüftet. Doch wer nach dem iPhone nun mit dem gPhone gerechnet hat, der wurde zunächst erst einmal enttäuscht, denn mit Android hat Google ein offenes Betriebssystem und eine Softwareplattform für Mobiltelefone angekündigt, nicht jedoch ein eigenes Gerät.

Laut Google ist die Software-Plattform, die im zweiten Halbjahr 2008 fertig sein und unter der Apache v2 Lizenz veröffentlicht werden soll, allerdings wesentlich bedeutender als ein einzelnes Handy, denn Google hat sich in der Open Handset Alliance mit 33 Partnern aus der Industrie zusammengetan – mit dem Ziel bessere und günstigere Handys auf den Markt zu bringen. Hierunter befinden sich neben Netzwerkbetreibern auch Handy- und Chip-Hersteller sowie Softwareentwickler und Dienstanbieter. Mit der taiwanesischen Firma HTC hat auch bereits der erste Gerätehersteller ein Handy auf Basis der Android-Plattform für das zweite Halbjahr 2008 angekündigt. Danach sollen weitere Modelle sowohl unter der HTC-Marke als auch mit Operator Label folgen.

Im Gegensatz zum iPhone bei dem die Entwicklungstools erst gut ein halbes Jahr nach dem Marktstart des Gerätes verfügbar sein werden, geht Google den umgekehrten Weg. Eine „Early Look“-Version des SDKs ist bereits im Netz verfügbar und Entwickler können somit bereits ein Jahr vor geplantem Marktstart mit der Entwicklung von Applikationen und Diensten beginnen. Zudem hat Google zwei Wettbewerbe ausgeschrieben, die neue und innovative Applikationen für die Android-Plattform mit insgesamt 10 Millionen Dollar prämieren. Google möchte mit Android Handy- und Softwareentwickler nach eigenen Angaben von proprietären Fesseln befreien und bietet ein System an, das vom Design her vielleicht einige Ä;hnlichkeiten mit dem iPhone hat, aber komplett offen ist.

Doch was hat es mit Android eigentlich auf sich? Es handelt sich um einen kompletten Open-Source-Software-Stack für Mobiltelefone der nächsten Generation, der kostenlos und im Quellcode jedermann zu Verfügung gestellt werden soll. Im Gegensatz zu anderen Lizenzpflichtigen Betriebssystemen wie Windows Mobile, Blackberry, Symbian oder Palm basiert Android auf Linux. Google folgt damit dem Trend, den zahlreiche andere Initiativen wie OpenMoko, LiMo, Qtopia oder Lips bereits eingeleitet haben. Alle versuchen aus einer Kombination aus Linux und Open Source eine offene Softwareplattform für Mobiltelefone zu schaffen. Analysten wie ABI Research sehen in Linux das am schnellsten wachsenden Smartphone-Betriebssysteme in den nächsten 5 Jahren und gehen von einem Marktanteil von 31 Prozent im Jahr 2012 aus. Doch anstatt sich einer bestehenden Initiative anzuschließen, hat Google mit der Open Handset Alliance eine neue Initiative ins Leben gerufen. Den Linux Kernel kombiniert Google mit einer proprietären Java-Laufzeitumgebung, die zu keinem bisherigen Java Standard kompatibel ist. Bereits im Juli 2005 hatte Google die Firma Android Inc. gekauft, die von Andy Rubin und anderen Gründern der Firma Danger aufgebaut wurde. Seit dem hat man das bereits damals entwickelte Konzept weiterverfolgt.

Die Plattform

Der Android Stack basiert zunächst auf einem Linux 2.6 Kernel, der den Hardware Abstraction Layer bereitstellt und sich somit um die Integration von Treibern, das Memory Management sowie Networking kümmert. Der Vorteil ist, dass der Linux Kernel bereits für eine große Menge von Hardware-Konfigurationen verfügbar ist. Darauf setzten dann von Google entwickelte oder aus anderen Open-Source-Projekten übernommene native Bibliotheken auf, die Funktionalitäten wie OpenGL, Fonts, Media Codecs, SQLite oder WebKit implementieren. Mit WebKit setzt Google dieselbe Web Engine für das Browsing ein, die auch aktuelle Symbian S60 Geräte und der Safari Browser auf dem iPhone verwenden. Die nächste Schicht im Stack ist dann die Dalvik VM. Hierbei handelt es sich um eine Register-basierte virtuelle Maschine, die zwar Ähnlichkeiten mit Java hat, aber streng genommen keine Java virtuelle Maschine ist, da sie keinen Java-Bytecode, sondern einen proprietären Code ausführt. Dieser entsteht, indem man bereits kompilierte Java-Class-Dateien mithilfe des dx-Tools, das Bestandteil des Android SDKs ist, in ein Android spezifisches Class File Format – so genannte .dex-Dateien – umwandelt. Die von Dan Bornstein entwickelte VM ist speziell auf Geräte mit geringem Speicher optimiert und erlaubt das Ausführen mehrerer VM-Instanzen zur selben Zeit. Um Process Isolation, Speicherverwaltung und Threading kümmert sich dabei die darunter liegende Adroid-Linux-Plattform. Die Dalvik VM ist übrigens nach einem kleinen Fischerdorf im Norden Islands benannt, aus dem Bornsteins Vorfahren stammen sollen.

Android stellt lediglich ein eingeschränktes Subset der Core Java Packages bereit und ist somit weder zu Java SE noch zu Java ME kompatibel. Am ehesten kann man den Package-Umfang noch mit der Connected Device Configuration (CDC) vergleichen. Im Wesentlichen werden die Packages java.nio, java.lang und java.util bereitgestellt, die durch verschiedene Open Source Packages wie den Apache HttpClient oder JUnit ergänzt werden. Hinzu kommen dann Android-spezifische Packages, die von Google selbst entwickelt wurden und unter dem Package-Namen android.* den größten Teil der APIs implementieren. Hierzu gehören zum Beispiel APIs für Telephony, Power Management, SMS und UI. Java ME spezifische Klassen oder optionale Packages (JSRs), wie man sie bisher aus der mobilen Java-Welt kennt, fehlen allerdings komplett. Auch auf bestehende Grafik-APIs wie AWT oder Swing hat Google komplett verzichtet und stattdessen eine eigene Grafikbibliothek unter dem Package android.graphics implementiert. Eine 3D-Unterstützung hat Google ebenfalls in die Library integriert, die per Open GL ES auch von einem eventuell vorhandenen Hardware-Grafikbeschleuniger Gebrauch machen kann. Das UI kann neben den Android Java UI Klassen auch mithilfe von XML-Deskriptoren gestaltet werden, die das Layout des grafischen UI definieren.

Auch Software-Komponenten und das Package Management werden von Google neu erfunden, anstatt auf einen bestehenden Standard zurückzugreifen. Einen ähnlichen Ansatz ist Google bereits mit dem Google Web Toolkit (GWT) gegangen, das ebenfalls nicht das volle JDK, sondern lediglich ein Subset unterstützt. Die Android Library ist mit 250 KB recht kompakt ausgefallen und lässt sich somit problemlos auch auf Geräten mit weniger Ressourcen einsetzen. Die Mindestanforderungen für eine Android-Handy sind 32 MB RAM, 32 MB Flash Speicher sowie eine 200 MHz CPU. Obwohl auch die Offenlegung der Darvik VM angekündigt ist, ist bisher weder der Source Code noch eine offizielle Dokumentation des Class-File-Formates verfügbar.

Bei Android werden alle Anwendungen in Java entwickelt, egal ob es sich um eine Systemapplikation oder eine Software von einem Drittanbieter handelt. Laut Google lassen sich dadurch dann mobile Mashups auf dem Endgerät entwickeln, da Android gleichzeitig einen Mechanismus bereitstellt, der die Kommunikation und den Datenaustausch zwischen verschiedenen Applikationen ermöglicht.

Geschrieben von
Kay Glahn
Kommentare

Schreibe einen Kommentar

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