Post on 06-Apr-2015
Google Android
Stefan Bühler für Infopoint 211.04.23
Überblick
Geschichte Architektur SDK Anwendungen Komponenten einer Anwendung Beispiel Referenzen
Geschichte
5. November 2007: Google kündigt Android an
Open Handset Alliance: Vereinigung von z. Z. 47 Netzbetreibern, Chip-, Telefon- und Software-Herstellern
22. Oktober 2008: T-Mobile G1 auf US-Markt verfügbar
7. Juli 2009: Ankündigung von Google OS
Stefan Bühler für Infopoint 311.04.23
Architektur
Stefan Bühler für Infopoint 411.04.23
Applications
Kern-Applikationen E-Mail Client SMS Kalender Maps Browser Kontakte …
alle in Java geschrieben
Stefan Bühler für Infopoint 511.04.23
Application Framework
vollständiger Zugriff auf API, die auch den Core Applications zur Verfügung steht
Wiederverwendung von Komponenten: Applikationen stellen Funktionalität zur Nutzung durch andere Applikationen zur Verfügung
Views Content Providers Resource Manager Notification Manager Activity Manager
Stefan Bühler für Infopoint 611.04.23
Libraries
libc (BSD) Media Libraries (MPEG4, H.264, …) LibWebCore 2D/3D FreeType SQLite
Stefan Bühler für Infopoint 711.04.23
Android Runtime
Subset von Apache Harmony; Grossteil der Core Java Libraries unterstützt
Dalvik VM: register-basierte, auf minimalen Speicherbedarf optimierte VM; kein JIT Compiler
Stefan Bühler für Infopoint 811.04.23
Linux Kernel
Linux 2.6.x Kernel
Stefan Bühler für Infopoint 911.04.23
SDK
http://developer.android.com aktuell 1.6 R1 Development Tools
Eclipse PluginEmulator, Debugger, …
Android Plattformen Beispielcode Dokumentation
Stefan Bühler für Infopoint 1011.04.23
Anwendungen I
in Java geschrieben, Transformation des Java-Bytecode in Android-Bytecode im .dex Format
gebündelt in einem Android Package .apk i. d. R. läuft jede Anwendung in einem
eigenen Prozess, mit einer eigenen Instanz der Dalvik VM, unter einem eigenen Linux-User
Stefan Bühler für Infopoint 1111.04.23
Anwendungen II
Manifest DateiJava Package Name (Id der Anwendung)Komponenten-DeklarationBerechtigungenverwendete Libraries
Stefan Bühler für Infopoint 1211.04.23
Komponenten einer Anwendung
Activity Service Broadcast Receiver Content Provider
Stefan Bühler für Infopoint 1311.04.23
Activity
User Interface für einen einzelnen Task z. B. IM Applikation:
Liste von Kontakten Textmitteilung verfassen Nachrichten-Archiv Einstellungen
grafischer Inhalt eines Fensters durch Hierarchie von Views festgelegt
Stefan Bühler für Infopoint 1411.04.23
Service
entspricht einem Service (Daemon) eines Desktop- oder Server-Systems
läuft im Hintergrund ab Instanzierung bis zum Ausschalten
Kein User Interface z. B. MP3 Player
Stefan Bühler für Infopoint 1511.04.23
Lifecycles
Stefan Bühler für Infopoint 1611.04.23
Broadcast Receiver
hört und reagiert auf systemweite Ereignisse, ausgelöst durch Android selber oder durch ein Programm
z. B. „battery low“ stellen selber keinen grafischen Inhalt dar,
können aber Activities starten oder mittels NotificationManager Alerts senden
Stefan Bühler für Infopoint 1711.04.23
Content Provider
speichert und lädt Daten und stellt sie Applikationen zur Verfügung
vorgegebene Content-Provider für Basis-Datentypen
z. B. Abfrage von Kontaktdaten mittels Query an die URI „content://contacts/people“
Stefan Bühler für Infopoint 1811.04.23
Intent
asynchrone Nachricht zur Aktivierung einer Komponente
explizite Intents: werden an Instanz der benannten Zielkomponente gesendet
implizite Intents: Android ermittelt die am besten geeignete Komponente
Stefan Bühler für Infopoint 1911.04.23
UI
Definition einer Hierarchie von View und ViewGroup und dem Layout dieser Hierarchie in einer XML Layout Datei
Android generiert Klasse mit Resource-Identifiern
Stefan Bühler für Infopoint 2011.04.23
Stefan Bühler für Infopoint 2111.04.23
Referenzen
http://developer.android.com http://www.openhandsetalliance.com Android Application Development; Rogers, Lombardo,
Mednieks, Meike; O‘Reilly 2009