Technik erklärt

Alles über Google Android

06.10.2010
Von 
Hans-Christian Dirscherl ist Redakteur der PC-Welt.

Die Android-Architektur

Das Schichtenmodell von Android (Foto: Google)
Das Schichtenmodell von Android (Foto: Google)

Android basiert auf einem Vier-Schichtenmodell: 1. Dem Linux Kernel mit den Hardwaretreibern, 2. der Android Runtime mit der Dalvik Virtual Machine und den Java Core Libraries sowie den Standard-Bibliotheken, 3. dem Application Framework und 4. den eigentlichen Anwendungen.

Wie von Linux gewohnt übernimmt der Kernel die Speicher- und, Prozessverwaltung. Der Kernel verwaltet die Treiber, beispielsweise für den Bildschirm, die Kamera oder die Lautsprecher und das Wlan-Modul sowie für die Tastatur und kümmert sich um die Netzwerkanbindung und um das Power-Management.

Über dem Kernel befinden sich als nächste Schicht die Bibliotheken (dabei handelt es sich sowohl um klassische Java-Bibliotheken als auch um neue Android-typische Bibliotheken sowie einige andere Bibliotheken) und die Android-Lautzeitumgebung (Runtime). Diese in C/C++ erstellten Bibliotheken stellen Entwicklern fertige Methoden und Eigenschaften zur Entwicklung bereit. Zum Beispiel für den Browser (Webkit), Datenbanken (SQLite), Multimedia, Verschlüsselung, Grafik und Touchscreen. Die Android-Runtime wiederum stellt die Core-Bibliotheken mit der gesamten Java-API (Programmierschnittstelle) und - ganz wichtig - die virtuelle Maschine von Android, die sich grundlegend von der gewohnten Java Virtual Machine (JVM) unterscheidet, zur Verfügung.

Stichwort: WebKit ist eine Open Source Browser Engine, die aus dem KHTML-Code des Linux-Projekts KDE entstanden ist. WebKit wird für den Browser Safari von Apple iOS, den Browser von Android und für Blackberry OS 6 sowie von Nokia verwendet.

Über den Bibliotheken und der Android-Runtime liegt das Application Framework (Anwendungsrahmen). Es beinhalten unter anderem den Activity Manager (der die Anwendungen verwaltet und deren Lebenszyklus steuert), den Window Manager, Content Providers (für den Austausch und den Zugriff auf Daten von anderen Anwendungen, zum Beispiel Kontakte) und das View System (Eingabefelder, Textboxen, Buttons etc.), aber auch den Package Manager sowie die Verwaltung von Ressourcen wie Grafiken (Resource Manager). Sowie die gesamten Dienste für Telefonie (Telephony Manager) und Ortung (Location Manager). Hier ist auch der Notification Manager zu erwähnen, der es Apps ermöglicht, Informationen in der Statusleiste anzuzeigen. Dass Application Framework ist in Java programmiert.

Die oberste Schicht ist dann das, was der Android-Anwender sieht. Also die einzelnen Apps, die Kontakte, das Telefon, Mailprogramm, Kalender, Webbrowser und so weiter. Alle diese Anwendungen sind bisher weitgehend in Java programmiert, Java ist die Entwicklersprache für Android-Apps schlechthin. Allerdings besteht auch die Möglichkeit, mit C und C++ Apps zu entwickeln. Google stellt hierfür das Android NDK bereit.