Android

Aus Android Wiki
Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
Kurzinfo
Lizenz Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
Entwickler Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
Programmiersprache Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
Repository https://android.googlesource.com/
Android-Logo ab 2014 bis 2019
Android-Logo ab 2007 bis 2014

Android (engl.: Androide, humanoider Roboter) ist ein von der Open Handset Alliance entwickeltes, auf dem Linux-Kernel und dem NetBSD-Userland 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 Programmiersprache Java 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.

Im August 2019 stellte Google die Vergabe von Codenamen in Form von Süßspeisen für Android ein, fortan werden Android-Versionen, mit Version 10 beginnend, nur noch die Versionsnummer tragen. Außerdem veröffentlichte Google ein neues Markendesign, welches unter anderem ein neu gestaltetes Logo und eine neue Farbpalette beinhaltete. Das Logo trägt seit dem neben dem Namen android, in der bekannten Kleinschreibung, auch das Maskottchen Bugdroid in sich. Dadurch soll das bekannteste nicht-Mensch-Mitglied der Community einen speziellen Platz bekommen und als Symbol für Spaß und Kuriosität als Herz von Android betonen.[6][7][8][9][10]

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 oder dem D8 Compiler durchgeführt, falls nötig.

Android-Versionen[Bearbeiten | Quelltext bearbeiten]

Datei:Galaxy Note.jpg
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 bezeichnete bis zur 10. Hauptversion 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[11]
7.0.x / 7.1.1 Nougat[12]
8.0.x / 8.1 Oreo[13]
9.0 Pie
10.0
11.0

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 Android-Versionen 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.[14] 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 gab 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. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatVorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatJoel Rosenblatt Jack Clark jackclarkSF: Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. 2016-01-21, abgerufen am 2016-09-27.Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  2. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-Formatheise online: Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. In: Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. Abgerufen am 2016-09-27 (de-de).Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  3. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatVorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatInterner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. 2016-02-19, abgerufen am 2016-09-27 (de-de).Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  4. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatFrank Erdle: Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. Abgerufen am 2016-09-27.Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  5. Wikipedia:de:Android (Betriebssystem)#Architektur
  6. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatVorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatInterner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. 2019-08-22, abgerufen am 2019-08-22 (english).Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  7. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatInterner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. Abgerufen am 2019-08-22 (de-de).Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  8. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatInterner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. Abgerufen am 2019-08-22.Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  9. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatVorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatInterner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. 2019-08-22, abgerufen am 2019-08-22 (en-us).Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  10. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatInterner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. Abgerufen am 2019-08-22 (deutsch).Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  11. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatVorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatJamal Eason: Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. Android Developers Blog, 2015-08-17, abgerufen am 2016-08-23 (english).Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  12. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatVorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatInterner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. Androidaccount bei Twitter, 2016-06-30, abgerufen am 2016-08-23 (english).Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  13. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatInterner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. In: Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. Abgerufen am 2017-09-02 (en-us).Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  14. http://developer.android.com/about/dashboards/index.html