Login
Newsletter
Werbung

Do, 11. Juli 2013, 15:00

Ein Blick auf Android

Mittlerweile gibt es eine größere Anzahl von Betriebssystemen und Plattformen für mobile Endgeräte wie Smartphones und Tablets. Viele davon setzen auf einen Linux-Kernel. Android ist dabei die weltweit verbreitetste Plattform. Dieser Artikel geht grundsätzlich auf das Betriebssystem ein und somit weniger auf dessen Bedienung. Android gehört mit über 900 Millionen aktivierten Geräten zu dem am weitest verbreiteten Betriebssystem auf mobilen Endgeräten. Offiziell wird Android von der Open Handset Alliance entwickelt und vorangetrieben.

Geschichtliches

Die Firma Android wurde ursprünglich von Andy Rubin im Jahr 2003 gegründet. Im Jahr 2005 erfolgte die Übernahme durch Google. 2007 fand die Gründung der Open Handset Alliance statt, welche offiziell der Entwickler von Android ist. Die Open Handset Alliance ist ein Zusammenschluss einer Vielzahl von Firmen wie Netzbetreibern, Software-Firmen, Marketing-Unternehmen, Firmen aus der Halbleiterindustrie sowie diversen Geräte-Herstellern. Dieses Konsortium wird von Google geleitet, welches die Entwicklung von Android maßgeblich steuert und vorantreibt.

Die Android-Version 1.0 wurde im September 2008 veröffentlicht. Die aktuellste Version ist 4.2.2 »Jelly Bean«, welche im November 2012 veröffentlicht wurde.

Android Open Source Project

Der offizielle Name des Open-Source-Projekts von Android lautet Android Open Source Project. Hierbei handelt es sich um »nacktes« Android, welches von der Open Handset Alliance bzw. von Google entwickelt wird. Geräte-Hersteller sowie Interessierte finden dort die Quellen von Android sowie Anleitungen, wie der Code kompiliert und portiert werden kann.

Systemarchitektur

Android nutzt nicht einen gewöhnlichen Linux-Kernel, sondern eine relativ stark modifizierte Version. Google hat dabei den Kernel soweit angepasst, dass dieser besser auf eingebetteten Geräten lauffähig ist, da der Standard-Linux-Kernel zu einer zu hohen Last führen würde.

Ursprünglich setzte man beim Kernel auf die Linux-2.6-Reihe. Mittlerweile werden neuere angepasste Linux-Kernel verwendet, die bei vielen Geräten unterschiedlich sind. Zu den Anpassungen am Kernel gehören z.B. eine optimierte Energieverwaltung oder die Ersetzung und Veränderung von verwendeten Treibern und Bibliotheken.

Der unter Android verwendete Linux-Kernel enthält dabei auch nur die Treiber, die für das entsprechende Gerät notwendig sind. Darunter fallen Treiber für Kamera, WLAN, Audio, Flashspeicher und für weitere vorhandene Hardware-Schnittstellen sowie einem speziellen Binder IPC.

Auf dem Linux-Kernel aufsetzend finden sich diverse Bibliotheken, darunter unter anderem SSL, SQLite, WebKit und einige weitere. Der Android-Kernel setzt im Gegensatz zum Linux-Kernel dabei nicht auf die C-Bibliothek Glibc, sondern auf Googles Eigenentwicklung Bionic libc. Bionic libc wird speziell für Android von Google entwickelt. Es ist deutlich kleiner als Glibc, enthält allerdings deswegen auch deutlich weniger Funktionen. Bionic ist hingegen speziell an mobile Endgeräte sowie ARM-Prozessoren angepasst.

Android-Systemarchitektur

Smieh@Wikipedia

Android-Systemarchitektur

Android-Laufzeitumgebung

In der Android-Laufzeitumgebung befinden sich zum einen die Java Core-Bibliotheken sowie die Dalvik Virtual Machine. Die Dalvik VM ist eine virtuelle Maschine, in der die Android-Apps ausgeführt werden. Android-Apps werden in der Regel in Java geschrieben. Andere Sprachen sind auch möglich, allerdings ist Java Androids Programmiersprache der Wahl, womit auch das Android-Framework umgesetzt ist.

Der programmierte Java-Code wird zuerst in Java-Bytecode, also .class-Dateien, kompiliert. Diese sind in diesem Schritt noch kompatibel mit der Java Virtual Machine (JVM). Im Anschluss folgt dann die Konvertierung von den .class-Dateien zu einer einzelnen .dex-Datei. Diese ist nicht nur komprimiert, sondern auch nur noch kompatibel zur Dalvik VM.

Die Dalvik VM (PDF) wurde speziell an langsame Prozessoren angepasst. Besonders zum Entstehungszeitraum von Android waren die eingesetzten ARM-Prozessoren noch durchaus leistungsschwach, was heute vor allem im Hinblick auf die aktuellen High-End-Geräte nicht mehr ganz zutrifft. Das gleiche gilt für den Arbeitsspeicher, sodass Dalvik VM ursprünglich speziell an Geräten mit wenig Arbeitsspeicher ausgerichtet war. Der dritte und letzte Punkt ist, dass es auf Betriebssystemen laufen soll, die über keinen Swap-Speicher verfügen.

Ein weiterer Unterschied zur Java VM ist, dass Dalvik VM eine Registermaschine ist, während die Java VM einen Kellerautomaten darstellt.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung