Analysis of the Android Architecture

  • Forschungsthema:Power Management
  • Typ:Studienarbeit
  • Datum:06.10.2010
  • Betreuung:

    Prof. Dr. Frank Bellosa, Dr. Jan Stoess, Konrad Miller

  • Bearbeitung:Stefan Brähler
  • Links:PDF
  • Abstract:

    Die vorliegende Studienarbeit beschäftigt sich mit dem Android Betriebsystem für mobile Systeme. Die Arbeit stellt das System grundsätzlich vor und zeigt an einigen Stellen Besonderheiten und spezielle Anpassungen von Android auf.

    Als Betriebsystem für mobile Systeme wie Smartphones und Tablets liegen bei Android Schwerpunkte auf Energieeffizienz und Energieverwaltung. Diese Schwerpunkte treten an vielen Stellen in den Vordergrund bei Designentscheidungen und prägen daher das System sehr stark.

    Android basiert auf Linux und verschiedenen typischen Bibliotheken und Diensten im Linux Umfeld auf, z.B. libSSL, FreeType und SQLite. Diese Infrastruktur bildet die Basis für eine Laufzeitumgebung in der Java Programme ausgeführt werden. Die Laufzeitumgebung Dalvik führt modifizierte Java class Dateien aus, wobei jedes Programm in einer eigenen Dalvik Instanz in einem eigenen Prozess läuft. Dalvik ist spezialisiert und optimiert auf die besonderen Gegebenheiten und Limitierungen von mobilen Systemen, wie begrenzter Speicherplatz und Energiebedarf.

    Anwendungen in Android sind aus verschiedenen Komponenten aufgebaut, wobei die einzelnen Komponenten klar getrennte Aufgabenbereiche haben. Diese Modularisierung erlaubt es, daß sich Anwendungen bestimmte Komponenten teilen können und daß einzelne Komponenten im System ausgetauscht werden können. Alle Anwendungen sind voneinander getrennt und können im Normalfall nicht auf Daten anderer Anwendungen zugreifen.

    In den Kernel sind einige Änderungen eingeflossen die den Android Kernel hauptsächlich um neue Funktionen in Bereichen der Energieverwaltung und Speicherverwaltung erweitern. Die weitreichenste Änderung betrifft die Energieverwaltung in Form der neu eingeführten wake locks, welche es erlauben, dem System bestimmte Schlaf- und Ruhezustände vorzuenthalten. Weiterhin sind neue Treiber und Anpassungen für die Android Infrastruktur in den Kernel gelangt.

    Für die Anwendungsentwicklung stehen eine Vielzahl von Programmierschnittstellen bereit, welche viele Java Standard Schnittstellen abdecken und teilweise erweitern. Android bietet weitreichende Netzwerkunterstützung und ein erweiterbares Framework für verschiedenste Medienformate. Zur Datenspeicherung und Datenverwaltung stehen sowohl normale Dateien als auch SQLite Datenbankdateien samt Mitteln zur Sicherung von Daten und Einstellungen zur Verfügung.

    Um die Entwicklungsarbeit zu erleichtern, gibt es eine Vielzahl von Werkzeugen, die in einem Software Development Kit (SDK) mitgeliefert werden. Zu diesen Werkzeugen gehören u.a. ein Emulator, ein Eclipse Plugin und eine Debug Shell samt Debug Monitor. Zum Testen und Debuggen gibt es sowohl Werkzeuge, als auch ein Instrumentation Framework und angepasste JUnit Tests.

    BibTex:

    @studythesis{braehler10androidos,
      author = {Stefan Br\"ahler},
      title = {Analysis of the Android Architecture},
      type = {Study Thesis},
      address = {System Architecture Group, University of Karlsruhe, Germany},
      month = oct # "~6",
      year = 2010,
      url = {http://os.ibds.kit.edu/}
    }