Zum Inhalt springen

Android (Betriebssystem)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. Dezember 2008 um 13:21 Uhr durch Ims (Diskussion | Beiträge) (Mitglieder der „Open Handset Alliance“). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Logo

Android ist eine Plattform für mobile Geräte wie Smartphones und Mobiltelefone, die von der Open Handset Alliance entwickelt wird. Sie basiert auf dem Linux-Betriebssystem und verwendet die Programmiersprache Java. Ein großer Teil der Software ist frei und Open Source.

Ein Gerät mit Android

Allgemeines

Am 5. November 2007 teilte der Konzern Google mit, dass er und 33 andere Mitglieder der Open Handset Alliance ein Handy-Betriebssystem namens Android entwickeln. Einige Teile von Android sind freie Software und werden unter der Apache-Lizenz 2.0 veröffentlicht.

Das erste Gerät auf dem Markt mit Android als Betriebssystem ist das T-Mobile G1, das vormals unter dem Entwicklungsnamen HTC Dream bekannt war. In den Vereinigten Staaten ist es seit dem 22. Oktober 2008 erhältlich.

Architektur

Die Architektur von Android baut auf dem Linux-Kernel 2.6 auf. Er ist für Speicherverwaltung, Prozessverwaltung und die Netzwerkkommunikation zuständig. Außerdem bildet er die Hardwareabstraktionsschicht für den Rest der Software und stellt die Gerätetreiber für das System.

Weitere wichtige Bausteine sind die auf der von Sun Microsystems entwickelten Java-Technik basierende virtuelle Maschine Dalvik und die dazugehörigen Android-Java-Klassenbibliotheken.

Zum Programmieren von eigenen Android-Anwendungen bietet das am 12. November 2007 veröffentliche Entwicklungssystems (m3-rc20a) 1448 Javaklassen und 394 Schnittstellen. Davon sind 511 Klassen und 128 Schnittstellen Android-spezifisch. In den Paketen java und javax befinden sich 612 bzw. 145 Klassen und 150 bzw. 51 Schnittstellen. Zahlenmäßig nennenswert ist auch der Beitrag des Apache-Commons-Projekts: 128 Klassen und 20 Schnittstellen. Der verbleibende Rest nicht von Google stammender Klassenbibliotheken verteilt sich auf die Pakete org.bluez, org.json, org.w3c.dom und org.xml.sax.

Klassenbibliothek Beschreibung Anzahl der Klassen Anzahl der Schnittstellen Urheber Open-Source Lizenz
android plattformspezifisch 500 126 Google Inc. geplant
com.google.android plattformspezifisch 11 2 Google Inc. geplant
java Standardklassen, Teil des JDK 612 150 Sun Microsystems ja
javax Standardklassen, Teil des JDK 145 51 Sun Microsystems ja
junit Test-Framework 12 3 JUnit-Project ja
org.apache.commons allgemein verwendbare Funktionen 128 20 Apache Commons-Projekt ja
org.bluez Bluetooth-Unterstützung 15 6 BlueZ-Projekt (ursprünglich entwickelt von Qualcomm) ja
org.json Klassen zur Verarbeitung von Daten im JSON-Format 5 0 Douglas Crockford ja
org.w3c.dom Klassen zur Manipulation des DOM 1 17 W3C ja
org.xml.sax Klassen zum Einlesen von XML-Daten 19 19 ursprünglich von David Megginson, siehe SAX ja

Die Laufzeitumgebung von Android basiert auf der Dalvik Virtual Machine, einer von Google Mitarbeiter Dan Bornstein entwickelten virtuellen Maschine. Die Dalvik VM ähnelt funktional der normalen Java VM, beide führen sogenannten Byte-Code aus. Einer der wesentlichen Unterschiede ist die zugrundeliegende virtuelle Prozessorarchitektur. Die Java VM basiert auf einer Stapelmaschine; Dalvik VM hingegen ist eine Registermaschine. Durch die sich unterscheidende Prozessorarchitektur sind die Kompilate normaler Java-Compiler nicht für die Dalvik VM geeignet, dennoch konnte Google auf die bestehenden Java-Entwicklungswerkzeuge zurückgreifen.

Die meisten modernen Compiler generieren als Zwischencode Stapelmaschinencode. Dieser Zwischencode erlaubt es, von der Prozessorarchitektur der Zielplatform zu abstrahieren, der programmiersprachliche Teil wird von der konkreten Prozessorarchitektur getrennt. Da das Prozessormodel der Stapelmaschine besonders einfach ist, wird es üblicherweise für die Übersetzerzwischensprache verwendet. Die meisten realen Prozessoren sind heute aber Registermaschinen, so zum Beispiel die 80x86- und die ARM-Prozessoren. Registerarchitekturen sind oft effizienter, da bei ihr die CPU über eigene besonders schnell zugreifbare Speicherzellen, die Register, verfügt. Dalvik nimmt die Umwandlung des Stapelmaschinecodes in die Registermaschinencodes schon zur Übersetzungszeit vorweg. Hierzu wird das Werkzeug dx verwendet, „dx“ steht für Dalvik Cross-Assembler.

Anwendungen für die Androidplattform werden ausnahmslos in Java geschrieben, jedoch greifen diese in geschwindigkeitskritischen Bereichen auf zahlreiche in C/C++ geschriebene, native Bibliotheken zu. Darunter befinden sich neben Codecs für die Medienwiedergabe auch ein Webbrowser auf der Basis von WebKit, eine Datenbank (SQLite) und eine auf OpenGL basierende 3D-Grafikbibliothek.

Um eigene Programme für Android zu entwickeln, benötigt man ein aktuelles Java-SDK und zusätzlich das Android-SDK. Zuerst wird der in Java geschriebene Quelltext mit einem normalen Java-Compiler übersetzt und dann von einem Cross-Assembler für die Dalvik VM angepasst. Aus diesem Grund können Programme prinzipiell mit jeder Java-Entwicklungsumgebung erstellt werden.

Das Framework setzt auf eine starke Modularität. So sind alle Komponenten des Systems generell gleichberechtigt (ausgenommen die Virtuelle Maschine und das unterliegende Kernsystem) und können jederzeit ausgetauscht werden. Es ist also z.B. möglich, eine eigene Anwendung zum Erstellen von Kurznachrichten oder zum Wählen von Rufnummern zu erstellen und die bisherige Anwendung damit zu ersetzen.

Vorhandene Software

Obwohl das Projekt noch sehr jung ist, gibt es bereits über 160 Anwendungen (1. Nov. 08).[1] Im SDK werden zusätzlich ein Webbrowser, eine Kartenanwendung (Google Maps), ein Programm zum Verwalten von Kontakten sowie ein Satz von API-Demoanwendungen mitgeliefert.

Mitglieder der „Open Handset Alliance“

Netzbetreiber Chip-Hersteller Telefonhersteller Software-Hersteller

Einzelnachweise

  1. heise.de-Anwendungen

Siehe auch

Vorlage:Navigationsleiste Linux PDA Distribution