Android

presentation about the android plattform (german) »
Jochen Hilgers

Dalvik Virtual Machine
Open Source
Basiert auf der Apache Harmony JVM
Hauptsächlich von Dan Bornstein (Google) entwickelt
Verwendet Register
Java Quellcode (*.java)
javac
Java Bytecode (*.class)
dx
Dalvik Bytecode (*.dex)
Android App (*.apk)
Cross-Compiling
Betriebssystem
Linux Kernel
Gerätetreiber, Energie-, Speicher- & Prozessverwaltung, IPC-Treiber
Bibliotheken
SQLite, Grafik, SSL, WebKit, Oberflächen-Manager, libc, Media-Framework...
Runtime
Android Laufzeitumgebung, Dalvik Virtual Machine (DVM)
Anwendungsrahmen
Activity, Content Provider, Location Manager, Notification Manager, Views, Connectivity Manager, Window Manager, Telephony Manager
Anwendungen
Eigene, Android, Drittanbieter
Vorteile

Nachteile
Sicherheit
Verfügbarkeit
Multitasking
Ressourcenbedarf
Standardbibliotheken
C/C++
LibWebCore (Webkit)
SQLite
MediaFramework (OpenCORE)
SGL(2D), OpenGL(3D)
und einige mehr...
Application-
sandbox

Prozess
OS-User
DVM
Haupt-
speicher
Datei-
system
Shared-User-ID => mehrere Anwendungen in einer Sandbox
Verlassen der Sandbox durch Berechtigungen möglich
Android SDK
Bietet Tools und Klassen um komponentenbasierte Java-Anwendungen für die Android Plattform zu entwickeln
Activity
Bildschirmseite
Layout
View
Layout
View
View
Zugriff auf Daten
Ereignisbehandlung
Styles / Themes
Service
Content Provider
Broadcast Receiver
(Langlaufende) Hintergrundoperationen ohne Oberfläche
Einheitliche Schnittstelle zum Austausch von Daten zwischen verschiedenen Anwendungen
Empfängt Systemnachrichten
Komponenten
http://developer.android.com
Links
Android 2: Grundlagen und Programmierung
Arno Becker & Marcus Pant
ENDE
Intents
Explizite Intents
Implizite Intens
Empfänger ist bekannt
z.B. für Kommunikation zwischen Activities einer Anwendung
Unbestimmter Empfänger
Empfangen über Filter
Benutzen von Android-Komponenten

Telefon, Maps, E-Mail, Kontakte, Browser
Broadcast Receiver
statisch
dynamisch
Existiert nur zur Laufzeit der Anwendung
Erzeugung innerhalb des Quellcodes
Wird bei der Installation im System registriert
Startet bei passendem Intent, unabhängig von der Anwendung
Definition im Android-Manifest
Broadcast Intents (Systemnachrichten)
Akku, Verbindungen, Gerätezustand, SMS, Anrufe, ...
Hintergrundoperationen
ANR (Application not Responding)
Main Thread sauber halten, sonst ANR
Verwendung von Services

Remote Service: Eigener Prozess, IPC
Local Service: Im Prozess der Anwendung, Binder
Service != Thread
IPC
Inter Process Communication
Java Anwendung vs. C/C++ Standardbibliotheken
IDL (Interface Definition Language) hier AIDL
Automatisches (De)serialisieren
Eigene Datenobjekte möglich
Synchron / Asynchron
SQLite
Großteil des SQL-Sprachumfangs
Keine Installation, keine Konfiguration
Eine Datenbank = eine Datei
Zeitgleiche Nutzung durch mehrere Anwendungen
SQLiteDatabase-Klasse
Cursor als Ergebnis

Dateisystem
FileInputStream / FileOutputStream
Methoden zum einfachen Zugriff auf den anwendungseigenen Dateibereich
Zugriff auf SD-Karte
Android NDK
Native Development Kit
Erlaubt performancekritische Teile einer Anwendung in nativem Code zu schreiben, z.B. C/C++
Libraries (libc, libm, openGL, ... )
Tools (compiler, linkers)
ARM Instruction sets
Und vieles mehr...
GPS
Sensoren
Datenübertragung / Sockets
JUnit / Oberflächentests
Ressourcenverwaltung
...
Tools / ADT
Emulator
Eigene Konfigurationen möglich (Hardware, SDK, ...)
DDMS
Dalvik Debug Monitor Service
Zugriff auf das Dateisystem
Logging
Emulator Control
Tracing / Profiling
...
Veröffentlichen
Zertifikat (CA optional)

*.apk erstellen
FERTIG
ADT oder Kommandozeile
Kostenfrei
Keine Registrierung bei Google
Android Market
einmalig $25, Google Account
Lebenszyklus
 
2010 Jochen Hilgers
Ausnahmen
Was ist Android?

Eine Softwareplattform für mobile Geräte
Open Source und frei
Entwickelt von der Open Handset Alliance
Google kauft die 
Firma Android
2005
2007
Google stellt die OHA vor
und kündigt Android an 
2008
Release von Android
G1 / HTC Dream 
2009
Android 2.0
2010
Nexus One
geplant Q4 Android 3.0

Loading comments...

Please log in to add your comment.

Report abuse