Anzeige
Anzeige
Software & Entwicklung
Artikel merken

Android: Einblicke in Googles offene Mobiltelefon-Plattform

Ende September 2008 lüftete T-Mobile das Geheimnis und präsentierte mit dem „T-Mobile G1“ das erste Mobiltelefon, das auf der von Google und der Open Handset Alliance entwickelten Softwareplattform Android basiert. Mittlerweile ist das Gerät in den USA und Großbritannien erhältlich. Mit seiner konsequenten Open-Source-Strategie hat Android gute Chancen, Marktanteile auf dem Mobilfunksektor zu erobern. Grund genug, einen Blick auf die Philosophie und Technologie hinter der Plattform zu werfen.

6 Min. Lesezeit
Anzeige
Anzeige

Das von HTC unter dem Codenamen „Dream“ entwickelte T-Mobile G1 [1] kann seine enge Verwandtschaft zum Suchmaschinenriesen Google nicht verbergen, dennoch ist es nicht das exklusive „Google Phone“, über das lange spekuliert wurde. Tatsächlich ist das eigentlich Spannende an diesem Gerät nicht die Hardware, die mit anderen aktuellen Smartphones vergleichbar ist, sondern die Software, die darauf läuft. Das G1 ist das erste Telefon, das auf Android basiert [2] – einem kompletten Software-Stack für Mobiltelefone, vom Kernel über die Middleware bis hin zu grundlegenden Applikationen. Entwickelt wurde das System von der Open Handset Alliance [3], einem Industriekonsortium aus etwa 30 Firmen, zu dem neben Google, T-Mobile und HTC weitere Schwergewichte wie Motorola, LG und Samsung sowie zahlreiche kleinere Firmen zählen.

Offene Philosophie

Anzeige
Anzeige

Die zentrale und für den Mobilfunksektor revolutionäre Idee hinter Android: eine offene Plattform. Diese Offenheit hat Vorteile für alle Interessengruppen, die mit dem System in Berührung kommen. Gerätehersteller und Netzbetreiber werden vor allem die Tatsache zu schätzen wissen, dass Android als Open Source zur Verfügung steht. Dabei kommt – überall wo dies möglich ist – die sehr liberale Apache-Lizenz zum Einsatz, die sowohl für „free speech“ als auch für „free beer“ steht. Android kann also ohne Zahlung von Lizenzkosten genutzt und beliebig an eigene Bedürfnisse angepasst werden. Letzteres ist speziell für Netzbetreiber von Interesse, die Geräten stets ihren Stempel in Form von Erscheinungsbild und Applikationen aufdrücken wollen. Änderungen können, müssen aber nicht an die Community zurückgegeben werden. Da jedoch alle Beteiligten von einer gemeinsam gepflegten Plattform profitieren, ist davon auszugehen, dass ganz nach dem Vorbild anderer Open-Source-Projekte in Zukunft viele Augen auf den Android-Quellcode schauen und die Plattform mit Bugfixes und neuen Features versehen wird. Kürzere Entwicklungszyklen und geringere Herstellungskosten für Geräte dürften die Folge sein. Für Anwendungsentwickler resultiert die Offenheit von Android primär in sehr weitgehenden Freiheiten. Entwickelt wird in Java. Praktisch die gesamte Hardware eines auf Android basierenden Mobiltelefons steht einer Anwendung dabei zur Verfügung. Das schließt den Umgang mit Anrufen, SMS und dem Internet ebenso ein wie die Nutzung von Kamera, GPS, Kompass oder Beschleunigungssensor. Für alle diese Komponenten existieren bereits in der ersten Version der Plattform klar definierte APIs. Setzt man zudem eine gewisse Marktdurchdringung von Android voraus (die sich natürlich erst noch einstellen muss), dann hat die Plattform das Potenzial, das leidige Fragmentierungsproblem, mit dem Entwickler mobiler Anwendungen kämpfen, zu lösen oder wenigstens zu lindern.

Im Unterschied zu anderen Plattformen ist das Entwickeln von Android-Applikationen nicht an Bedingungen oder Kosten geknüpft. Als Distributionskanal steht der „Android Market“ zur Verfügung, der ebenfalls wenig bürokratisch daherkommt und statt auf zentrale Kontrolle lieber auf öffentliche Bewertungsmechanismen à la Amazon setzt. Der Market ist in einer Beta-Version bereits auf dem G1 enthalten. Anwendungen können damit in der endgültigen Version sowohl kostenlos als auch kommerziell vertrieben werden. Letztlich profitiert auch der Endkunde von Android, wenngleich teilweise eher indirekt. Sinkende Entwicklungskosten und Lizenzkosten für Geräte dürften sich auch auf die Ladenpreise niederschlagen. Und eine stabile Plattform mit einem reichhaltigen Software-Angebot wird sicherlich auch von dieser Gruppe geschätzt.

Anzeige
Anzeige

Aufbau der Plattform

Die Architektur von Android setzt auf ein Schichtenmodell. Das System basiert auf einem Linux-Kernel in der Version 2.6, der neben hardwarespezifischen Treibern um einige Spezialitäten im Bereich Power Management und Interprozess-Kommunikation erweitert wurde. Auf diesem Kernel setzt eine Schicht mit in C oder C++ implementierten nativen Bibliotheken auf. Hier finden sich einige alte Bekannte aus dem Open-Source-Umfeld wieder:

Anzeige
Anzeige
  • Eine von BSD stammende LIBC-Implementierung, die für mobile Geräte optimiert wurde.
  • Die Rendering-Engine WebKit, die auch im iPhone und anderen Geräten zum Einsatz kommt und die Basis des Webbrowsers bildet.
  • Das Multimedia-Framework OpenCORE, das sich um Aufnahme und Wiedergabe von Sound und Video kümmert.
  • Die Bibliothek OpenSSL zur Unterstützung sicherer Socket-Verbindungen und kryptographischer Funktionalität.
  • Die Datenbank-Engine SQLite, die an zahlreichen Stellen von Android zur Datenhaltung eingesetzt wird.

Ebenfalls Teil dieser Schicht, aber etwas exponierter, ist die Android-Laufzeitumgebung. Diese enthält eine Virtuelle Maschine (VM), innerhalb derer System-Services und Anwendungen als Bytecode ausgeführt werden. Diese Maschine mit dem Namen „Dalvik“ hat einige interessante Eigenschaften:

  • Anders als im Java-Umfeld üblich ist sie keine Stack-, sondern eine Register-Maschine. Der übersetzte Code muss speziell transformiert werden, gewinnt aber teilweise an Effizienz.
  • Jede Android-Anwendung läuft in einem eigenen Linux-Prozess und einer eigenen Instanz der VM. Damit kann eine fehlerhafte Anwendung nicht den Rest des Systems kompromittieren.
  • Die VM besitzt (derzeit) keinen „Just In Time“-Compiler. Dies fällt aber nicht so stark ins Gewicht, weil große Teile des Systems sich auf nativen Code stützen.

Zur Laufzeitumgebung gehören ebenfalls die sogenannten Core Libraries. Bei diesen handelt es sich um Java-Bibliotheken, die eng mit der VM verknüpft sind, also speziell Pakete aus den Namensräumen „java.*“ und „javax.*“. Es handelt sich hierbei jedoch nicht um ein abgespecktes Java im Sinne einer Micro-Edition. Die Auswahl an Paketen und Klassen orientiert sich vielmehr an einer Desktop-Implementierung von Java. So sind zum Beispiel die vier zentralen Pakete „lang“, „util“, „io“ und „net“ komplett implementiert. Auch viele andere nützliche Pakete wurden integriert, so etwa das Paket „java.sql“ zur JDBC-Anbindung an die SQLite-Datenbank oder das Paket „java.util.regex“ für reguläre Ausdrücke.

Anzeige
Anzeige
Androids Architektur setzt auf ein klassisches Schichtenmodell. Auf einem Linux-Kernel setzen zahlreiche Open-Source-Komponenten auf.

Androids Architektur setzt auf ein klassisches Schichtenmodell. Auf einem Linux-Kernel setzen zahlreiche Open-Source-Komponenten auf.

Die nächsthöhere Schicht bildet das Android Application Framework, das ebenfalls in Java realisiert ist. Das Application Framework ist die eigentliche Essenz von Android. Es enthält alles, was zum Bau eines – potenziell Touchscreen-fähigen – GUIs benötigt wird. Gleichzeitig kümmert es sich um den Lebenszyklus von Applikationen. Deklarative XML-Layouts und entsprechende Layout-Manager sorgen für eine einfache Entwicklung von GUIs, die sich an Größe und Orientierung des Bildschirms anpassen. Ein Komponentenmodell, das die Nutzung von Teilen einer Anwendung (so genannten „Aktivitäten“) in anderen Anwendungen ermöglicht, fördert einen Mashup-artigen Entwicklungsstil. In der obersten Schicht finden sich schließlich die verschiedenen Anwendungen wieder.

Entwicklung von Anwendungen

Android-Anwendungen können in einer beliebigen Java-Entwicklungsumgebung entwickelt werden, wobei Eclipse-Nutzer momentan etwas im Vorteil sind, da sie in den Genuss einiger hilfreicher Plugins kommen. Darüber hinaus ist nur ein normaler Java-Compiler (mindestens Version 1.5) nötig. Der nächste Schritt ist allerdings Android-spezifisch: Der vom Compiler erzeugte und auf eine Java-Maschine zugeschnittene Bytecode wird mit Hilfe eines speziellen Konverters in Bytecode für die Dalvik-Maschine übersetzt und gleichzeitig optimiert. Das Ergebnis wird – wie im Java-Umfeld üblich – verpackt, mit einem Manifest versehen und zur Ausführung auf einem Gerät installiert. Die benötigten Werkzeuge jenseits der IDE und des Java-Compilers werden vom Android SDK bereitgestellt, das inzwischen in der Version 1.0 verfügbar ist [4]. Teil dieses SDKs ist auch ein Emulator, der das Ausführen von Anwendungen unter Quasi-Hardware-Bedingungen ermöglicht und weitgehende Debugging-Unterstützung bietet. Java-Entwickler werden sich bei der Entwicklung von Android-Anwendungen schnell zu Hause fühlen. Sie können sowohl ihr vorhandenes Wissen als auch ihre bewährten Werkzeuge weiterverwenden. Das ist sicher ein großer Vorteil von Android, der dem System mittelfristig eine große Auswahl an Anwendungen bescheren wird. Einen kleinen Ausblick auf das Interesse von Entwicklern und die Möglichkeiten der Plattform bot der Android Developer Challenge, ein Wettbewerb, der im Frühjahr 2008 ausgerufen wurde und derzeit in die zweite Runde geht. In der ersten Runde gab es stolze 1.700 Einsendungen – und das lange bevor an echte Hardware auch nur zu denken war. Einzig eine frühe Version des SDKs stand den Teilnehmern zur Verfügung. Nichtsdestotrotz haben viele Anwendungen auf sehr innovative Weise die Möglichkeiten des mobilen Internets, von Location-Based Services und des Social Networkings ausgelotet. Für Entwickler mit Interesse an Android ist die Entwickler-Website erste Anlaufstelle. Neben dem SDK und zahlreichen Videos finden sich dort auch Infos zu der ersten Wettbewerbsrunde und der anstehenden zweiten.

Fazit

Android ist die erste vollständige Softwareplattform für Mobiltelefone, die sowohl komplett Open Source ist als auch über eine entsprechende Unterstützung aus der Industrie verfügt. Damit steht sie in direkter Konkurrenz zu Systemen wie Windows Mobile oder Symbian, aber auch zu OpenMoko, das im Unterschied zu Android den Hardware-Aspekt einbezieht. Natürlich sind mehr Geräte als das G1 erforderlich, um Android zu einem Erfolg werden zu lassen, aber sowohl Philosophie als auch Technologie der Plattform sind vielversprechend.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige