Was ist Android

 Der folgende Text ist eine Übersetzung von: http://code.google.com/android/what-is-android.html

Android ist ein Betriebssystem für mobile Endgeräte und besteht aus Betriebssystem, Middleware und Schlüsselanwendungen. Die Beta Version des Android SDK beinhaltet alle nötigen APIs um mit Hilfe von Java Anwendungen für Android entwickeln zu können. 

Features:

  • Anwendungsframework welches das Wiederverwenden und Ersetzen von Komponenten ermöglicht
  • Dalvik Virtual Machine optimiert für mobile Geräte
  • Integrierter Browser basierend auf der WebKit engine
  • Optimierte Grafik basierend auf einer angepassten 2D Grafik Library; 3D Grafik basierend auf der OpenGL ES 1.0 Spezifikation (Hardwarebeschleunigung optional)
  • SQLite für das Speichern von strukturierten Daten
  • Unterstützung für die gängigsten Audio, Video und Bildformaten (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telefon (Hardwareabhängig)
  • Bluetooth, EDGE, 3G and WiFi (Hardwareabhängig)
  • Kamera, GPS, Kompass and Beschleunigungssensor (Hardwareabhängig)
  • Umfangreiche Entwicklungsumgebung inklusive Emulator, Tools zum Debuggen, Speicher und Performance profiling und ein plugin für die Eclipse IDE

Architektur von Android:

Das folgende Diagramm zeigt die wichtigsten Komponenten des Android Betriebssystems. Jede Abteilung wird weiter unten genauer beschrieben.

Anwendungen:

Android wird mit den wichtigsten Anwendungen ausgeliefert. Darunter befinden sich ein E-Mail Client, SMS Programm, Kalender, Kartenmaterial, Webbrowser, Kontakte. Alle Anwendungen sind in Java geschrieben.

Anwendungs Framework:

Entwickler haben vollständigen Zugriff auf die selben APIs des Frameworks, welche auch von den Kernanwendungen benutzt werden. Die Anwendungsarchitektur ist darauf ausgelegt Komponenten erneut zu benutzen; jede Anwendung kann Ihre Fähigkeiten bereitstellen und jede anderen Anwendung kann diese nutzen (unter Berücksichtigung der Sicherheitsrichtlinien des Frameworks). Der selbe Mechanismus erlaubt es auch Komponenten durch den User zu ersetzen.

Eine Ebene unter Anwendungen befinden sich einige Dienste und Systeme, darunter:

  • Umfangreiche und erweiterbare vorgefertigte Ansichten um Applikationen zu entwickeln, u.A. Listen, Grids, Textboxen, Schaltflächen und ein embedded Webbrowser, Inhaltsanbieter welche es ermöglichen auf Daten von anderen Anwendungen zuzugreifen (z.B. Kontakte), oder eigene Daten bereitstellen
  • Ressourcen Manager, welcher Zugriff auf nicht-programmatische Ressourcen zur Verfügung stellt wie lokalisierte Strings, Grafiken und Layout-Dateien
  • Benachrichtigungs Manager, welcher allen Anwendungen ermöglicht eigene Warnungen in der Statusleiste anzuzeigen
  • Aktivitäten Manager, welcher die Anwendungen verwaltet und häufig genutze Navigationsmöglichkeiten bereitstellt

Für weitere Details und ein Tutorial für eine Anwendung, siehe "Writing an Android Application."

Libraries:

Android beinhaltet C/C++ Bibliotheken welche von verschiedenen Komponenten von Android benutzt werden. Diese Möglichkeiten werden dem Entwickler durch das Android Anwendungsframework zur Verfügung gestellt. Einige der Kernbibliotheken sind hier aufgeführt:

  • System C Bibliothek – eine BSD-abgewandelte Implementation der standard C System Bibliothek (libc), optimiert für embedded Linux-basierte Geräte
  • Media Bibliothek – basierend auf PacketVideo’s OpenCORE; diese Bibliotheken untersützen das Abspielen und Aufnehmen vieler bekannter Audio und Videoformate, als auch statische Bilder, u.A.MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
  • Surface Manager – Verwaltet den Zugriff auf das Anzeige-Subsystem und fügt nahtlos 2D und 3D Grafik Ebenen von verschiedenen Anwendungen zu einem Bild zusammen
  • LibWebCore – eine moderne Webbrowser Engine, welche sowohl durch den Android Browser als auch durhc den embedded Browser genutzt wird
  • SGL – die 2D Grafik Engine
  • 3D Bibliotheken – eine Implementation basierend auf den OpenGL ES 1.0 APIs; die Bibliotheken nutzen entweder 3D Hardwarebeschleunigung (wenn verfügbar) oder den hochoptimierten 3D Software rasterisierer
  • FreeType – Bitmap und Vektor Schrift rendering
  • SQLite – eine mächtige und kleine relationale Datenbank Engine, welche allen Anwendungen zur Verfügung steht

Android Laufzeitumgebung:
 

Android beinhaltet Kernbibliotheken, welche die meisten Funktionen zur Verfügung stellen, die auch in den Kernbibliotheken von Java verfügbar sind.

Jede Android Anwendung läuft in einem eigenen Prozess, mit einer eigenen Instanz der Dalvik Virtual Machine. Dalvik wurde entwickelt, damit ein Gerät mehrere VMs effizient ausführen kann. Die Dalvik VM führt Dateien im Dalvik Executable (.dex) Format aus, welche auf wenig Speicherverbrauch optimiert wurden. Die VM ist registerbasierend und führt Klassen aus, welche mit Java kompiliert wurden und durch das enthaltene "dx" Tool in das .dex Format transformiert wurden.

Die Dalvik VM stützt sich auf den Linux Kernel für grundlegende Funktionen wie. Threading und Low-Level Speicherverwaltung. 

Linux Kernel:
 

Android basiert auf Linux Version 2.6 für Kernfunktionen wie Sicherheit, Speicherverwaltung, Prozessverwaltung, Netzwerk und  Treibermodell. Der Kernel fungiert auch als Abstraktionsebene zwischen der Hardware und dem Rest des Softwarestacks.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.