Bleep, Bleep Android: Ein erster Blick aufs Google-SDK

13.11.2007
Am Freitag vorgestellt, am Montag gelauncht - nie war die Zeit zur Markteinführung eines Betriebssystems kürzer als bei Android, dem System das die Chimäre GPhone nutzen soll. Jetzt stehen SDK, API und unzählige Seiten Dokumentation für jedermann frei verfügbar im Netz - ein neuer Stern am Smartphone-Himmel geht auf. Wir ergründen, ob er schon bald in einem schwarzen Loch enden könnte.

Wie angekündigt startete die Open Handset Alliance gestern die erste "Early View"-Version ihres Software Development Kits für Android. Nicht mehr als 59 Megabyte ist der gezippte Download groß, den man sich als Programmierer oder Interessierter auf seinen Java-fähigen PC herunterladen kann. Das Paket beinhaltet alle wichtigen Tools, um Software für die am vergangenen Freitag angekündigte Handy-Softwareplattform programmieren zu können. Android-Programme werden ausschließlich in Java verfasst - eine umfangreiche und nach dem ersten Überblicken ziemlich vollständig erscheinende und sauber durchdokumentierte API lässt jedes Coder-Herz höher schlagen.

Im Herzen eines mit Android betriebenen Handsets wird ein angepasster Linux-Kernel (2.6) schlagen, der derzeit nur wenigen in der Open Handset Alliance organisierten Mitgliedern zur Verfügung steht. Auf ihm baut eine native Bibliothekensammlung auf, die den Hintergrund für elementare systemnahe bzw. ressourcenhungrige Funktionen des Systems liefert. Zu ihr zählt OpenGL|ES für die Darstellung von 3D-Grafik und Transparenzeffekten, ein SQLite-Datenbanksystem zur strukturierten Ablage von Informationen sowie die Browserbibliothek WebKit, die auch in Safari und Nokias MiniMap-Browser ihren Dienst verrichtet. Die wichtigste Bibliothek ist hinegegen die Android Runtime, bestehend aus einer optimierten Dalvik Java Runtime und der Core-Schnittstellenbibliothek für die Kommunikation von Android-Anwendungen zum nativen Systemkern.

Google und seine Partner vervollständigen dieses Basis-System mit einer austauschbaren Präsentations- und Anwendungsschicht, zu der z.B. Telefonfunktionen, ein Window-Manager, Benachrichtigungs- und Hintergrunddienste sowie ein Location Based-Services-Modul zählen. Ganz oben auf der Liste wird die Luft dünner: Basisapplikationen, die man auf gängigen Telefonen findet, bietet Android in seiner jetzigen Form kaum - ein rudimentärer Home-Screen mit bodenseitig durchscrollbarem einzeiligen Menü, ein Telefonfrontend (mit Anrufkonferenzen, Stummschaltung und Freisprechmodus), Kontaktliste und Browser sind die elementaren Bestandteile eines jeden kommenden Android-Phones.

Den ganzen Rest, z.B. spannende Applikationen wie ein Google Maps, eine Bildergalerie oder eine Terminverwaltung, darf jeder Hersteller, der auf Android setzt, selbst beisteuern. Die Open Handset Alliance liefert aber in ihrem SDK eine ganze Reihe von Demos mit, die veranschaulichen, wie ein fertiges "GooglePhone" aussehen kann - wer die knapp 60 Megabytes auf seinem Rechner installiert, kann sich auf einem gut funktionierenden Emulator schnell selbst ein Bild von Androids potenzieller Leistungsfähigkeit machen.

Aus Sicht der Entwicklergemeinde ist Android eine ungemein spannende Bereicherung der Betriebssystemlandschaft. Denn die API, mit der sich das System programmieren lässt, basiert auf einer durchdachten und für Mobiltelefone bzw. Echtzeitsysteme angepassten, komponentenorientierten Philosophie. "Views" entsprechen beispielsweise den Steuerelementen einer COM- bzw. .NET-Architektur; hier liefert Android unter anderem ein intuitives Datums-Auswahlfeld, Textfelder mit Auto-Vervollständigung, Listen- und Tabellenlayouts mit. Anwendungen können untereinander über sogenannte "Intents" (Absichten) kommunizieren: in der Basisvariante zählen dazu beispielsweise "VIEW" zum indirekten Aufruf des Browsers oder "CALL" zur direkten Anwahl einer Telefonnummer - Entwickler können die entsprechenden Zielanwendungen aber auch überschreiben und um neue Intents (z.B. "CHAT") erweitern.

Die elementaren Fragen, die uns viele stellten: ist das neu? ist das anders? ist das besser? Dreimal die gleiche Antwort: eigentlich nicht. Aber im Gesamtpaket wirkt Android überzeugend. Aufgestellt wird diese komponentenorientierte Handy-Betriebssoftware gegen Branchengrößen wie Microsoft (Windows Mobile), Symbian (S60/UIQ), Access (ALP), aber selbstverständlich auch gegen Apple (MacOS X). Für alle diese Systeme (noch mit Ausnahme von Apple) existieren SDKs und APIs, mal bessere, mal schlechtere, manche teuer und abgeschlossen, manche kostenlos und offen. Eine ganze Industrie ernährt sich von der Entwicklung mobiler Software und greift dabei auf Tools wie Visual Studio, Eclipse oder Nokias (auch Eclipse-basierte) SDK Carbide zurück. Eine andere Industrie beschäftigt sich hingegen mit der Entwicklung von Applikationen von Spielen auf der bewährten Java-Plattform MIDP, die man aber keinesfalls mit Android in einen Topf werfen sollte: Android ist kein geschlossener Sandbox-Ansatz, sondern vielmehr eine vollständiges Basissystem für mobile Anwendungen und es verfügt über eine Schnittstellenbeschreibung, die es allen Anwendungen erlaubt, miteinander zu kommunizieren. Zurück zu den eingangs gestellten Fragen: Bietet Android etwas neues, niemals zuvor da gewesenes? Nein, aber es ist eine handfeste Plattform, auf der man heute schon Anwendungen schreiben kann, die beim ersten Erscheinen von Hardware funktionieren werden. Ist Android etwas "Anderes"? Nein, man entwickelt nach wie vor unter einer akzeptierten IDE, bzw. kann das SDK auch ohne IDE betreiben - bekannt vom Wireless Toolkit oder Nokias Carbide. Linux-Ansätze für Mobiltelefone lassen sich nicht mehr an einer Hand abzählen und Java-SDKs im Androidschen Sinne schrieb Sun schon vor Jahren für den Communicator (Personal Java). Ist das besser? Schwer zu sagen, solange man kein fertiges Endgerät auf dem Tisch liegen hat. Anders beantwortet: es ist auf jeden Fall nicht schlechter als Windows Mobile oder Symbian.

Android stellt Entwickler trotz aller seiner Vorteile vor ein nicht zu unterschätzendes Problem: es ist ein neues System, für das weder bekannt ist, wann es erstmals auf käuflich erwerbbarer Hardware läuft, noch, ob sich eine kritische Masse von Fans zusammenfindet, die bereit ist, sich in API und SDK einzuarbeiten. Eines steht nach Durchsicht aller Konkurrenten fest: die Android-API sieht verständlicher aus als beispielsweise die native C++-API von Symbian, ist viel flexibler als S60/Python oder J2ME, hat Windows Mobile ein ansprechenderes und vor allem selbst umdefinierbares Sortiment an Steuerelementen voraus und steht jedem frei zur Verfügung. Hinzu kommt eine vorgesehene Schnittstelle zu Google-Webapplikationen: das Einbinden von GMail, GCal-, GMaps oder gar GDocs-Diensten dürfte für halbwegs talentierte Entwickler ein Kinderspiel sein. Wer auf den Geschmack gekommen ist, eigene Anwendungen, 3D-Spiele, Steuerelemente oder Betriebssystemfunktionen für Android zu programmieren, kann bei Google und Co. 10 Millionen US-Dollar Preisgeld abgreifen. Die 20 besten Projekte werden mit $100.000 und $275.000 belohnt.

powered by AreaMobile