Android

Aus Android Wiki
Wechseln zu: Navigation, Suche
Android Desktop

Android (engl.: Androide, humanoider Roboter) ist ein von der Open Handset Alliance entwickeltes, auf den Linux-Kernel basierendes Betriebssystem für Smartphones, Handys und Tablet PCs. Der Hauptentwickler ist, neben den freiwilligen Community-Entwicklern, das kalifornische Unternehmen Google, welches die Open Handset Alliance gegründet hat. Android ist freie Software, die quelloffen entwickelt wird. Trotz der Tatsache, dass Android auf dem Linux-Kernel basiert, wird das System oft nicht als eine Linux-Distribution bezeichnet, da einige Funktionen und Begebenheiten, im Vergleich zu anderen unixoiden Systemen, stark abgeändert oder gar entfernt wurden.

Anfang 2016 wurde im Verlauf des Rechtsstreits zwischen Google und Oracle bekannt, dass Google (nach Informationen von Oracle) mit Android seit 2008 ca. 31 Milliarden US-Dollar Umsatz generiert hat.[1][2]

Im 4. Quartal 2015 hatte Android bei der Verteilung von mobilen Betriebssystemen einen Marktanteil von mehr als 80 Prozent (80,7 %).[3]

Geschichte[Bearbeiten | Quelltext bearbeiten]

Android wurde ursprünglich von dem Unternehmen Android, Inc. entwickelt, welches 2003 von Andy Rubin, Rich Miner, Nick Sears und Chris White in Palo Alto im US-Bundesstaat Kalifornien gegründet wurde. Bis 2005 entwickelten sie Android unter Eigenregie selbst, bevor das Unternehmen von Google für 50 Mio. USD gekauft wurde.[4] 2007 präsentierte Google Android der Öffentlichkeit. Mit 33 weiteren Unternehmen, der heutigen Open Handset Alliance, wird Android als Open Source Betriebssystem für Mobiltelefone und Tablets weiterentwickelt. Im Oktober 2008 wurde Android offiziell mit Version 1.0 freigegeben und konnte von jedem Hersteller frei verwendet werden. Das erste in Deutschland verkaufte Smartphone mit Android war das HTC Dream (bekannt als T-Mobile G1).

Grundlage[Bearbeiten | Quelltext bearbeiten]

Der Androidkernel basiert auf dem Linuxkernel. Ab Version 4 kann auch ein Kernel der 3er Serie genutzt werden.[5] Wie bei einem PC ist der Kernel für die grundlegenden Funktionen zuständig und stellt verschiedenste Ressourcen bereit und verwaltet diese. So zum Beispiel die Speicherverwaltung (RAM) oder die Verwaltung der Rechenleistung.

Ein weiterer wichtiger Bestandteil des Android-Grundsystems ist die Dalvik-VM. Diese basiert auf Teilen der Java-Programmiersprache und wurde von einem Googlemitarbeiter entwickelt. In der Dalvik Virtuellen Maschine wird der sogenannte Byte-Code ausgeführt. Neben der Dalvik-VM sind auch die Android-Java-Klassenbibliotheken im Android-Quellcode implementiert. Ab Version 4.4 ("KitKat") unterstützt Android die eigens für das Betriebssystem entwickelte Laufzeitumgebung "ART". Diese übernimmt die selben Aufgaben wie vorher die Dalvik VM.

Androidprogramme, sogenannte Apps, greifen unter anderem auch auf weitere Bibliotheken zurück, welche in C oder C++ erstellt wurden und unter anderem Codecs für die Medienwiedergabe, einen auf WebKit basierenden Browser, eine SQLite Datenbank und eine auf OpenGL basierende 3D-Grafiklösung bereitstellen.

Die Androidversionen wurden bisher alle für die ARM-Architektur compiliert. Die einzelnen Architekturversionen, zum Beispiel ARMv6 (für ältere Geräte) oder ARMv7, sind untereinander nicht kompatibel.

Die Struktur in Android ist grundsätzlich gleichberechtigt. Das bedeutet, das man das System nach belieben anpassen und verändern kann. So kann man zum Beispiel die Kamera-App jederzeit durch eine andere App austauschen und mit dieser Fotos erstellen. Dies gilt für alle Betriebssystemschichten über der Dalvik-VM, die sich zusammen mit den darunter liegenden Systemschichten nicht auswechseln lässt. Diese Möglichkeit des modularen Aufbaus wird von einigen Herstellern durch Restriktionen einzelner Partitionen verhindert, da sich die Programmdatei (die APK-Datei) durch das entziehen der Schreibrechte auf die /system Partition zum Beispiel, nicht auswechseln lässt.

Architektur[Bearbeiten | Quelltext bearbeiten]

Schematisches Architekturbild des Android-Systems
Hauptartikel: Dalvik VM und Android Runtime
Android baut bis Version 4.0 Ice Cream Sandwich "Ice Cream Sandwich"auf einen Linux-Kernel in der Version 2.6 auf, ab Android 4 wird ein Linux-Kernel der 3er-Version verwendet. der Kernel bietet Schnittstellen und eine Hardwareabstraktion bereit. Zudem übernimmt der Kernel die Prozess- und Speicherzugriffsverwaltung.

Aufbauend auf den Kernel stellt Android verschiedenste Bibliotheken bereit. Zudem implementiert Android eine virtuelle Maschine, um die Ausführung von Programmcode (bspw. für Apps) von der eigentlichen Hardware zu abstrahieren. Dadurch kann der Programmcode unabhängig von der verwendeten Hardware ausgeführt werden. Android verwendet hierfür eine auf der Java-Technologie basierende virtuelle Maschine mit dem Namen Dalvik (VM) (bzw. ab Android 4.4 KitKat "KitKat"auch wahlweise die Android Runtime (ART)). Anders als die Java Virtuelle Maschine, welche als Stack Maschine umgesetzt ist, verwendet die Dalvik VM Register-basierte Architektur, welche weniger, allerdings typischerweise auch komplexere, VM-Instruktionen benötigt. Trotzdem werden Dalvik-Programme (wie bspw. Apps) in Java programmiert und anschließend zu einem Java Bytecode konvertiert. Die Konvertierung von Stapelmaschinen-Code in Registermaschinen Code wird anschließend mit Hilfe des Tools dx durchgeführt, falls nötig.

Android-Versionen[Bearbeiten | Quelltext bearbeiten]

Geräte mit verschiedenen Versionen von Android. Von links nach rechts: Jelly Bean (4.1), KitKat (4.4), Lollipop (5.0)
Hauptartikel: Liste von Android-Versionen

Google bezeichnet die verschiedenen Versionen neben der Versionsnummer auch mit Namen von Süßigkeiten in alphabetischer Reihenfolge (in Anlehnung an die Alphabetische Namensgebung von Ubuntu).

Version Süßspeise
1.0 Alpha
1.1 Beta
1.5 Cupcake
1.6 Donut
2.0.x / 2.1 Éclair
2.2.x Froyo“ (Frozen Yogurt)
2.3.x Gingerbread
3.x.x Honeycomb
4.0.x Ice Cream Sandwich
4.1.x / 4.2.x / 4.3.x Jelly Bean
4.4.x KitKat
5.0.x / 5.1.x Lollipop
6.0.x Marshmallow[6]
7.0.x / 7.1.1 Nougat[7]

API-Level[Bearbeiten | Quelltext bearbeiten]

Hauptartikel: API-Level
Der API-Level gibt dabei den Entwicklungsstand der eingebauten Funktionen an. Je geringer der Stand ist, desto weniger Funktionen sind implementiert und stehen somit zur Verfügung. Der API-Level ist besonders für die Entwicklung von Anwendungen und Apps interessant, da man bei der Verwendung einer Funktion aus dem API Level 14 zum Beispiel diese App nicht auf einem Gerät installieren kann, welche auf Android 2.3.6 Gingerbread "Gingerbread" basiert.

Android Update Prozess[Bearbeiten | Quelltext bearbeiten]

Hauptartikel: Android Update Prozess

Bis ein Android Update nach der Veröffentlichung einer neuen Version das Gerät eines Herstellers erreicht, kann einige Zeit vergehen. Dies kann daran liegen, dass der Hersteller der Chips, die im Smartphone verbaut werden, die Treiber nicht schnell genug anpasst, oder der Hersteller des Smartphones nicht genügend Ressourcen für die zügige Fertigstellung eines Updates zur Verfügung stellt. Mehr Informationen dazu gibt es im Hauptartikel.

Verteilung der Versionen[Bearbeiten | Quelltext bearbeiten]

Verteilung der Android-Versionen

Aufgrund der Tatsache, das die Hersteller von Android-Geräten die Versionen als Update auf ihre Geräte ausliefern und der trägen Anpassung an die hauseigenen Oberflächen und Geräte-Eigenheiten, werden neue Androidversionen nur sehr langsam auf die Geräte verteilt. Aus diesem Grund ist die Versionsverteilung von Android recht zerstückelt und neue Versionen brauchen einige Zeit, bis sie auf dem Großteil der im Umlauf befindlichen Geräte verteilt wurden.[8] Eine Statistik über einen Zeitraum von 7 Tagen über die aktuelle Verteilung, sowie der Zusammensetzung der verschiedenen Displaygrößen ist auf dieser Seite veröffentlicht.

Google Play Store[Bearbeiten | Quelltext bearbeiten]

Hauptartikel: Google Play Store

Der Google Play Store ist eine Vermarktungsplattform für verschiedene digitale Inhalte. Die Plattform entstand aus dem Vorgänger Android Market der ausschließlich für den Vertrieb von Apps für Android entwickelt wurde. Anders als Android ist der Play Store, welcher von Google angeboten und betrieben wird, nicht quelloffen oder als freie Software verfügbar, eine standardmäßige Installation auf Android-Geräten bedarf der Zustimmung von Google.

Rechtsstreit mit Oracle[Bearbeiten | Quelltext bearbeiten]

Im August 2013 wurde Android Gegenstand einer Klage von Oracle gegen Google. Oracle beschuldigt Google, mit Android Patente von Java verletzt zu haben. Google konnte das Verfahren in erster Instanz für sich entscheiden, allerdings hat das Berufungsgericht Oracle recht, dass Android Java-Patente verletzt hat. Das weitere Vorgehen wird in einem neuen Verfahren entschieden.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Joel Rosenblatt Jack Clark jackclarkSF: Google's Android Generates $31 Billion Revenue, Oracle Says. 21. Januar 2016, abgerufen am 27. September 2016.
  2. heise online: Oracle: Google machte mit Android 22 Milliarden US-Dollar Gewinn. In: heise online. Abgerufen am 27. September 2016 (de-de).
  3. Smartphones: Android steigert Marktanteil auf über 80 Prozent | ZDNet.de. 19. Februar 2016, abgerufen am 27. September 2016 (de-de).
  4. Frank Erdle: Android: Die Geschichte des Erfolgs - connect. Abgerufen am 27. September 2016.
  5. Wikipedia:de:Android (Betriebssystem)#Architektur
  6. Jamal Eason: Develop a sweet spot for Marshmallow: Official Android 6.0 SDK & Final M Preview. Android Developers Blog, 17. August 2015, abgerufen am 23. August 2016 (english).
  7. Introducing #AndroidNougat. Androidaccount bei Twitter, 30. Juni 2016, abgerufen am 23. August 2016 (english).
  8. http://developer.android.com/about/dashboards/index.html