Java Reference
In-Depth Information
16 1 So ware-Architektur von Android
Die Basis der Android-So ware-Architektur (s. Bild 16.1) bildet ein Linux-Betriebssystem-
kern, der für die Realisierung von Prozessen und Threads, die Speicherverwaltung, die Reali-
sierung des Dateisystems sowie den Zugriff auf die Hardware durch unterschiedliche Treiber
zuständig ist. Auf dem Linux-Kern sitzen einige in C bzw. C++ programmierte Bibliotheken.
Dazu gehört beispielweise eine Grafi kbibliothek, eine Medienbibliothek zum Codieren und
Decodieren der wichtigsten Audio- und Videoformate sowie eine Datenbank. Das Android
Application Framework ist in Java geschrieben. Es bildet die Basis für alle Android-Anwen-
dungen. Zu den Android-Anwendungen gehören solche, die beim Erwerb eines Android-
Geräts bereits vorhanden sind wie zum Beispiel die Home-Anwendung (Start-Bildschirm), ein
Browser oder bei Smartphones die Anwendung zum Telefonieren. Android-Anwendungen
sind aber auch aus dem Internet heruntergeladene oder selbst entwickelte Apps.
Anwendungen
Dalvik
VM
Dalvik
VM
Dalvik
VM
Dalvik
VM
Applicaon Framework
Bibliotheken
Linux-Betriebssystemkern
Bild 16.1 So ware-Architektur von Android
Alle Anwendungen führen Java-Code aus, der wie üblich von einer Virtual Machine (VM)
interpretiert wird. In Android wird aus E ® zienzgründen allerdings eine ganz spezielle VM
verwendet, die sogenannte Dalvik VM. Der Code, der von einem üblichen Java-Compiler
generiert und in Dateien mit der Endung .class geschrieben wird, ist geeignet für einen
virtuellen Prozessor, der durch eine „normale“ Java VM simuliert wird. Dieser virtuelle
Prozessor arbeitet als Kellermaschine (das heißt, alle Operanden der Maschinenbefehle
werden einem Kellerspeicher entnommen). Für Android wird jedoch eine Registermaschine
als virtueller Prozessor eingesetzt (das heißt, die Operanden der Maschinenbefehle stehen
in Registern, die in den Maschinenbefehlen explizit angegeben werden). Der von einem
üblichen Java-Compiler erzeugte Code kann von dem virtuellen Prozessor, der durch die
Dalvik VM realisiert wird, nicht ausgeführt werden. Deshalb müssen die Class-Dateien in
DEX-Dateien (Dalvik Executable) transformiert werden, damit sie von einer Dalvik VM
interpretiert werden können (dabei wird aus mehreren Class-Dateien eine einzige DEX-
Datei). In der Regel läu jede Android-Anwendung in einem eigenen Linux-Prozess, in dem
der DEX-Code dieser Anwendung von einer Dalvik VM ausgeführt wird. Es gibt aber durch-
aus auch die Möglichkeit, dass eine Anwendung auf mehrere Prozesse verteilt ist.
 
Search WWH ::




Custom Search