PDA

Android (Plattform)

aus Wikipedia, der freien Enzyklopädie

Wechseln zu: Navigation, Suche
Logo
Logo

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

Ein Gerät mit Android
Ein Gerät mit Android

Inhaltsverzeichnis

[Bearbeiten] 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 Open Source und werden unter der Apache-Lizenz 2.0 veröffentlicht.

Große Teile der Quelltexte sind noch unveröffentlicht. Google hat aber versprochen, diese auch unter einer Open-Source-Lizenz der Allgemeinheit zur Verfügung zu stellen. Erste Geräte mit dem Betriebssystem sollen in der zweiten Jahreshälfte 2008 erhältlich sein. Das entsprechende SDK für Android-Applikationen ist bereits verfügbar. Wesentlicher Bestandteil von Android wird ein Web-Browser sein.

[Bearbeiten] 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.

Der zweite wichtige Baustein ist die auf der von Sun Microsystems entwickelten Java-Technologie basierende virtuelle Maschine Dalvik und der dazugehörigen Android Java Klassenbibliotheken.

Die Android API des am 12. November 2007 veröffentlichen SDK (m3-rc20a) besteht aus 1448 Javaklassen und 394 Schnittstellen. Dabei entfallen auf Android spezifische Referenztypen 511 Klassen und 128 Schnittstellen. 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 Runtime von Android basiert auf der Dalvik Virtual Machine, eine von Google Mitarbeiter Dan Bornstein entwickelte virtuelle Maschine. Die Dalvik VM ähnelt funktional der normalen Java VM, beide führen Byte Code aus. Einer der wesentlichen Unterschiede ist die zu Grunde liegende virtuelle Prozessorarchitektur. Die Java VM basiert auf einer Stapelmaschine. Dalvik 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 performance-kritischen 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.

[Bearbeiten] Vorhandene Software

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

[Bearbeiten] Mitglieder der „Open Handset Alliance“

Netzbetreiber Chip-Hersteller Handy-Hersteller Software-Hersteller

[Bearbeiten] Siehe auch

[Bearbeiten] Weblinks

Copyright © 2005-2010 Hardware-Aktuell. Alle Rechte vorbehalten.