Android (Plattform)

Android (Plattform)
Android
Entwickler Open Handset Alliance
Version 1.5 Release 1
(28. April 2009)
Kernel Monolithisch (Linux)
Lizenz Apache 2.0 und GPLv2[1]
Website http://www.android.com/

Android ist eine Plattform für mobile Geräte wie Smartphones, Mobiltelefone und Netbooks,[2] die von der Open Handset Alliance entwickelt wird. Basis hierfür bildet der Linux-Kernel 2.6. Ein großer Teil der Software ist frei und quelloffen.

Das HTC-Dream (T-Mobile G1) ist das erste Telefon auf dem deutschen Markt, das mit Android betrieben wird
Screenshot des Homescreens

Inhaltsverzeichnis

Allgemeines

Am 5. November 2007 gab Google bekannt, gemeinsam mit 33 anderen Mitgliedern der Open Handset Alliance ein Handy-Betriebssystem namens Android zu entwickeln. Einige Teile von Android sind freie Software und werden unter der Apache-Lizenz 2.0 veröffentlicht.

Als erstes Gerät mit Android als Betriebssystem kam am 22. Oktober 2008 das T-Mobile G1 in den USA auf den Markt.

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öffentlichte Entwicklungssystem (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. ja[3]
com.google.android plattformspezifisch 11 2 Google Inc. ja
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 Zielplattform zu abstrahieren, der programmiersprachliche Teil wird von der konkreten Prozessorarchitektur getrennt. Da das Prozessormodell 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 Stapelmaschinencodes 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 oder 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. November 2008).[4] Im SDK werden zusätzlich ein Webbrowser, eine Kartenanwendung (Google Maps), ein Programm zum Verwalten von Kontakten sowie ein Satz von API-Demoanwendungen mitgeliefert.

Kritik

Das Android-Telefon "G1" lässt sich ohne Einrichtung einer GMail-Adresse nicht benutzen. Kritiker sehen dadurch erhebliche Probleme im Bereich des Datenschutzes.

Mitglieder der „Open Handset Alliance“

Netzbetreiber Chip-Hersteller Telefonhersteller Software-Hersteller

und weitere neue Mitglieder.[5]

Einzelnachweise

  1. Lizenz. Android Open Source Projekt. Open Handset Alliance. Abgerufen am 19. April 2009.
  2. Android vs. Windows: Google greift Microsoft an “, stern.de, 23. Februar 2009. 
  3. Lizenzbedingungen der Android-Plattform
  4. heise.de-Anwendungen
  5. Google's Open Handset Alliance gains 14 new members (cnet.com)

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Android (Begriffsklärung) — Android steht für: Android, einen Roboter, der einem Menschen täuschend ähnlich sieht und sich menschenähnlich verhält Android (Plattform), eine Software Plattform für Mobiltelefone Der Android, einen Film von Aaron Lipstadt …   Deutsch Wikipedia

  • Android Developer Challenge — Die Android Developer Challenge (ADC) war ein Entwicklerbewerb, der von Google in 2 Teilen (ADC I und ADC II) im Jahr 2008 und 2009 veranstaltet wurde, um das von Google entwickelte mobilen Betriebssystems Android in den Markt einzuführen. Das… …   Deutsch Wikipedia

  • Android (Betriebssystem) — Android Bildschirmfoto …   Deutsch Wikipedia

  • Android Market — Entwickler Google Inc. Aktuelle Version 3.3.11[1] (02. November 2 …   Deutsch Wikipedia

  • Plattform (Computer) — Plattform bezeichnet in der Informatik eine einheitliche Basis, auf der Anwendungssoftware ausgeführt werden kann. Es wird unterschieden zwischen Soft und Hardware Plattformen: Eine Hardware Plattform verwendet eine einheitliche Maschinensprache …   Deutsch Wikipedia

  • Google Android — Android Entwickler Open Handset Alliance Version 1.1 Release 1 (9. Februar 200 …   Deutsch Wikipedia

  • Java (Plattform) — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Java Plattform — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Java-Plattform — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Symbian-Plattform — Basisdaten Entwickler Nokia …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”