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.
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:
- 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.




![Die ungewöhnlichsten Android-Maskottchen [Bildergalerie]](http://t3n.de/uploads/t3n-news-post-362831_android-Figuren-mitani_medium.jpg)

![Chrome für Android Beta ist da – aber nur für Ice Cream Sandwich [Bildergalerie]](http://t3n.de/uploads/t3n-news-post-365149_chrome-android-featured_medium.jpg)