Android - Enrico Homann

Werbung
Android
Hat die Welt sowas gebraucht?
Ein Vortrag von
Enrico Homann <[email protected]>
Fachseminar WS 2009
Hochschule RheinMain
Um folgende Androiden geht’s
nicht:
Bildmaterial:
- aus Kobal Collection „Star Wars“
(http://www.imagesources.org)
- 3D Box
(http://www.3d-box.de)
Denn
alles dreht sich hier um...
PR Video Android 2.0 Platform
Quelle: http://developer.android.com
Schön - worum geht es hier nochmal?
Um ein „Android“ benanntes Betriebssystem für
mobile Endgeräte
● Das „Android Open-Source Project“
● Im Laufe des Vortrags speziell um das System Image
des Android 2.0 SDK
●
1.1 Was ist Android? (auf deutsch)
Betriebssystemsoftware für
Smartphones
Idee
Linux 2.6 Kernel
Android, Inc. (??)
Java Runtime
„Andy Rubin“
Java Framework
Danger, Inc
Java Anwendungen
aufkaufen
„Hip Top“
Phone
Android basiertes
Smartphone
Marktdominanz
Google, Inc.
Expansion
auf mobilen Markt
Entwicklungskosten
abwälzen
Open-Source Idioten
(Kommunisten)
1.2 Kurze Historie
Juli
2005
➢
Google, Inc. kauft eine
bis dato unbekannte
Firma mit dem Namen
„Android Inc.“ auf. Die
Mitarbeiter arbeiten nun für
Google.
5.November
2007
Unter Führung von Google Inc.
wird mit zunächst 47
Unternehmen die
„Open Handset Alliance (OHA)“
ins Leben gerufen
➢
1.2 Kurze Historie (2)
(...)
September
2008
HTC stellt Android
Handy „T-Mobile G1“
vor
➢ Zeitgleich veröffentlicht
Google das Android
1.0 SDK mit der Ankündigung
Im viertel Quartal 2008
das Android BS als
Open-Source unter der
Apache 2.0 Lizenz verbreiten
zu wollen.
➢
HTC T-Mobile G1
(Slider Smartphone)
Quelle(n): www.golem.de, 24.09.08
Bildmaterial: www.dirftmo.de
mehrere
Aktualisierungen
des SDK
werden
zwischenzeitlich
veröffentlicht
(...)
➢
27. Oktober
2009
Veröffentlichung
des Android 2.0
SDK vom
„Android Open-Source
Project“ unter Regie
der Google, Inc.
(www.android.com)
➢
2 Das „Android Open-Source
Project“

Lizenz und Geschäftsmodell

Wie mitmachen?
„nützliche Idioten“
2.1 Das „Android Open-Source Project“:
Lizenz und Geschäftsmodell
„Android Open-Source Project“
Open-Source Initiative (OSI)
akkreditierte
2010:
65 Firmen
Apache 2.0 Lizenz
Google sagt:
„nehmen wir“
Open Handset Alliance
(OHA)
Google, Inc
Apache.org
Produkte
(u.a.)
Patentinhaber
aquirieren
§3 Patentklausel
Projektmitarbeiter
X
darf nicht
klagen
„Open-Source auf
mobilen Markt
verbreiten“
Projektmitarbeiter
Y
2.2 Das „Android Open-Source Project“:
Wie mitmachen?
„Android Open-Source Project“
„Core“
„External“
Rollen:
„Anyone“ → Bugs, Patches
„Verifiers“ → Überprüfen
„Approvers“ → Genehmigen
„Project Leads“ → Rollenvergabe
„Packages“
- „openssh“
- Built-in Apps
- „bionic“
(C runtime) - „apache-http“ - Std. Services
- Std. Providers
- „bootloader“ (...)
- „build“
(...)
Zum vollwertigen Mitglied muss die Lizenzvereinbarung handschriftlich unterschrieben
und an die „Google Inc“ gesandt werden
➔
2.2 Das „Android Open-Source Project“:
Wie mitmachen? (2)
„Gerrit Code Review Tool“:
Projektportal (ausgelegt
auf unterschiedliche
Projekte)
● Git Versionsmanagement
über SSH (git+ssh)
●
Die Basis Pubic Keys für
das Android Hauptprojekt
(für zwei Server)
bekommt man
beim Registrieren.
(Nur Leseberechtigung,
sofern in Rolle „Anyone“)
3 Eigenschaften der Android 2.0
Plattform

System Features
3 Eigenschaften der Android 2.0 Systemplattform
System Features
Basiert auf einen angepassten Linux 2.6 Kernel
(Quellen als Open-Source unter http://android.git.kernel.org/ verfügbar)
●
●
Dalvik VM (samt Java Runtime Bibliothek)
- unübliche Register basierte virtuelle Java Machine (statt Kellerautomaten/Stack)
- speziell für Android von Google Mitarbeitern unter Dan Bornstein entwickelt und
für mobile Geräte auf Nebenläufigkeit von VM Instanzen hin optimiert
- verwendet ein nicht nach Sun/Java Community Process (JCP) Spezifikation
übliches Binärformat („Dex File Format“) für kompilierte Klassen
➢
Führt zur Inkompatibilität zum „Java Verified“ Programm für Java Anwendungen
- im Vergleich zur Sun Java Microedition (MIDP2.0/JSR118) unterstützt
die Java Runtime Bibliothek Annotations, Enumeration, java.util.ArrayList, Cloneable
3 Eigenschaften der Android 2.0 Systemplattform (2)
(*) nur bei entsprechender Hardware
(*) Beschleunigte Grafik 2D und 3D → Open GL ES 1.0
● (*) GSM Telefonie
● (*) Unterstützung für Kamera, GPS, Kompass und Beschleunigungssensor
● (*) Unterstützung für Bluetooth, EDGE (e-Book Reader), 3G (wie UMTS) und
WiFi
● SQLite Datenhaltung
● Unterstützung für Mediendaten, im Format (Auszug):
●
3GPP (*.3gp)
→ Audio + Video
➢ MP4 (*.mp4)
→ Audio + Video
➢ MP3 (*.mp3)
→ Audio
➢ Ogg Vorbis (*.ogg)
→ Audio
➢ Wave (*.wav)
→ Audio
➢ Bilddateien (*.jpg, *.gif, *.png, *.bmp)
➢
+ Anwendungsframework (auf der Dalvik VM)
Für Anwendungsentwickler: Eine SDK mit nützlichen Werkzeugen.
(Kostenlos und Open-Source als Teilprojekt des „Android Open-Source Projects“)
4 Aus Sicht des Anwenders

Hauptmenü und Bedienbarkeit

SDK Built-In Anwendungen
rd

Bezug von 3 Party Anwendungen

Vertrauenswürdigkeit von Anwendungen

Interessante Apps
4.1 Aus Sicht des Endanwenders:
Hauptmenü und Bedienbarkeit
●
Mehr hierzu in der späteren Live-Demo
●
Ein paar Eindrücke der Benutzerschnittstelle (SDK.Emulator):
(Navigations KeyPad des SDK.Emulators)
(Android 2.0 SDK.Emulator Start Screen)
4.2 Aus Sicht des
Endanwenders:
SDK Built-In Anwendungen
Funktion:
➢
Dialer App
Telefonieren
4.2 Aus Sicht des
Endanwenders:
SDK Built-In Anwendungen
Funktion:
Anzeigen von Webinhalten
➢JavaScript Unterstützung
➢Adobe Flash 10 Unterstützung
(in Planung)¹
➢
Phone App
Browser App
¹ http://www.go-android.de/news/adobe-flash-unterstuetzung-fuer-android-browser
4.2 Aus Sicht des
Endanwenders:
SDK Built-In Anwendungen
●
Und 11+3 weitere:
AlarmClock
→ Uhr mit Alarmfunktion
➢Calculator → Taschenrechner
➢Camcorder → Videos aufnehmen
➢Camera
→ Photos aufnehmen
➢Email
→ Email Client
➢Gallery
→ Photoalbum
➢Gestures Builder → Gesten erzeugen
➢IME
→ Japanische Zeichen
➢Messaging → Nachrichten, SMS
➢Music
→ Musik abspielen
➢Settings
→ Einstellungen
➢
Phone App
Browser App
Contacts App
+ Entwickler Apps:
Custom Locale → Testen von Lokalen
➢Dev Tools → Systemeinstellung Testen
➢Spare Parts → Hardware ein/abschalten
➢
4.3 Aus Sicht des Endanwenders:
Bezug von 3rd Party Anwendungen
●
●
Generell ist die Installation von zusätzlichen Anwendungen als *.apk
(gezippte Dalvik VM Binaries) Dateien zum einen überhaupt möglich
Herunterladen freier und kommerzieller Anwendungen von „AppStores“
wie Googles „Android Market“ unter http://www.android.com/market; weitere
http://slideme.org → Android Marketplace (kommerziell)
und Community Portal
http://andappstore.com → Nur Android Anwendungen
Bezug direkt von Herstellerseite der gewünschten Anwendung. Eine Klausel
dass die Anwendung per zentralem Online-Shop (wie „Android Market“) bezogen
werden muss existiert nicht.
→ Sicherheitsrisiko für den Endanwender
●
4.4 Aus Sicht des Endanwenders:
Vertrauenswürdigkeit von Anwendungen
Probleme:
Die Dalvik VM verwendet ein spezielles Binärformat, dass nicht mit
dem „Java Verified“ Programm konform ist;
●
➢
Anwendungsentwickler können ihre Java Anwendungen nicht
auf Qualitätscharakteristiken prüfen lassen und damit auch nicht
über dieses Programm zertifizieren (und signieren) lassen.
Android Anwendungen müssen zwar signiert sein bevor sie installiert
werden dürfen, allerdings ist dieses Verfahren nicht gebunden an eine
vertrauenswürdige Zertifizierungsstelle.
●
Lokal erstellte Zertifikate sind (auch
in finaler Endanwendung) erlaubt.
➢ Trügerische „Sicherheit“
➢
4.3 Aus Sicht des Endanwenders:
Interessante „Apps“
„Google Maps Navigation“
●
Integration von GPS und „Google Maps“
●
Vollwertiges Navigationssystem
„Google Maps“ Features wie von der
Community festgelegten Sehenswürdigkeiten
●
●
Derzeit noch Beta
5 Aus Sicht des
Anwendungsentwicklers

Entwicklerfreundlichkeit

Entwicklungsumgebung

Systemarchitektur

Die Anwendungskomponente

Vergleich mit J2ME

Android 2.0 SDK System Image: Live-Demo
5.1 Aus Sicht des Anwendungsentwicklers:
Entwicklerfreundlichkeit
Kosten- und Informationspolitik:
Kostenlose Werkzeuge von Fremdanbieter verfügbar, insbesondere sei
die Entwicklungsumgebung Eclipse IDE (http://www.eclipse.org) erwähnt
(Es gibt seitens des „Android Open-Source Projects“ ein offzielles Plug-In)
●
Sämtliche Information die Plattform betreffend sind im Internet unter
http://developer.android.com kostenfrei abrufbar, darunter auch das
SDK (Software Development Kit, Entwicklerkit) selbst
●
Googles seit 2008 jährliche „Android Developer Challenge“ bietet einen
hochpreisigen Wettbewerb und Ansporn zur Entwicklung von Anwendungen
●
➢
Benutzer können eingereichten Anwendungen bewerten
(Gewicht 1. Runde 100%, 2. Runde 40%)
➢
Bis zu $100.000 Preisgeld (ADC 2, 2009)
5.2 Aus Sicht des Anwendungsentwicklers:
Entwicklungsumgebung
Entwicklerkit kostenfrei ohne Registrierung herunterladbar
(http://developer.android.com/intl/en/sdk/index.html)
●
Vorhandenes offizielles Plug-In für die Eclipse IDE (SDK Installer/Updater)
(Inoffizielles auch für Netbeans IDE verfügbar)
●
●
Entwicklerkit enthält:
Android System Image mit Built-In (eingebauten) Anwendungen
➢ Emulator (verwendet das System Image)
➢ Application Framework API
➢
Entwicklerkit ist „erweiterbar“ (über Plug-In) um unter
unterschiedlichen Android System Versionen arbeiten zu können
●
5.2 Aus Sicht des Anwendungsentwicklers:
Entwicklungsumgebung (2)
Der Android Emulator
„Android Virtual Devices“ (AVD) Konzept zum Verwalten mehrerer
virtueller Geräte mit unterschiedlicher Konfiguration
●
●
Reibungslose Integration per ADT (Android Developer Tools) Plugin in Eclipse
„On-Device“ Entwicklung
●
Google bietet über das Developer Program für die Entwicklung von Software
ein Endgerät an; das von HTC hergestellte „Android Dev Phone 1“
●
SIM-unlocked und Hardware-unlocked
●
Kostenpunkt für „Android Dev Phone 1“: $399 (ohne Versandkosten aus USA)
5.3 Aus Sicht des Anwendungsentwicklers:
Systemarchitektur
Abstraktionsebene
Anwendungen
Application Framework
Libraries/Systembibliothek
Android Runtime
Angepasster Linux 2.6 Kernel
5.3 Aus Sicht des Anwendungsentwicklers:
Systemarchitektur (2)
Quelle: http://developer.android.com/guide/basics/what-is-android.html
5.4 Aus Sicht des Anwendungsentwicklers:
Die Anwendungskomponente
●
●
Sichtweise einer Anwendung als Komponente (Application Component) mit mehreren
Komponenten in einem „Package“, ähnlich MIDlet Suite bei J2ME
Mögliche Unterteilung in:
Activities → Präsentation, Boundary, Benutzerschnittstelle (UI)
➢ Services → Hintergrundprozess, bsp Musicplayer
➢ Broadcast receivers → Empfängt Systembroadcast (Akku leer, etc)
➢ Content providers → Bietet anderen Anwendungen Daten an
➢
Manifest Datei innerhalb einer Android Package Datei (*.apk) beinhaltet Deskriptoren
als eine Art Systemhook mit Informationen zur Anwendung, ähnlich J2ME Anwendungen
●
„Intent Filter“ beschreiben innerhalb der Manifest Datei die „Absicht“ und „Rollen“
einzelner angegebener Anwendungskomponenten. Zum Beispiel kann eine Komponente
als „Launcher“ definiert werden, der andere Komponenten vom Package aufruft etc.
●
5.7 Aus Sicht des Anwendungsentwicklers:
Vergleich mit J2ME
Vorteile
Robuste homogene Architektur als „All-Inclusive“ Paket mit unterliegendem
stets gleichem Betriebssystem samt Java Runtime (gleiche Version vorausgesetzt)
➔
Annotations, java.util.ArrayList und andere von Java 1.6 her bekannte
Techniken sind über die Dalvik VM möglich (Erhebliches Manko bei J2ME)
➔
➔
JUnit Framework bereits im ADT (Android Developer Tools) Eclipse-Plugin enthalten
Nachteile
➔
Keine Unterstützung für Netbeans Visual MIDlets
➔
Nicht „Java Verified“ Kompatibel
Marktakzeptanz und Verbreitung ist derzeit noch vergleichsweise gering
(Starke Konkurrenz)
➔
→ (auch) keine voller Java 1.6 Funktionsumfang
5.9 Aus Sicht des Anwendungentwicklers:
Android SDK 2.0: Live Demo
➢
Live-Demo
6 Aktuelle Marktlage

Anbieter und Endgeräte
6.1 Aktuelle Marktlage:
Anbieter und Endgeräte
HTC T-Mobile G1
(*) Android 1.0
(*) Es hängt von den Endgeräteherstellen und den Distributoren ab, ob und wie
das Android System auf eine aktuelle Version aktualisiert werden kann.
6.1 Aktuelle Marktlage:
Anbieter und Endgeräte
HTC T-Mobile G1
(*) Android 1.0
T-Mobile G2 Touch
(HTC Hero)
(*) Android 1.5
(*) Es hängt von den Endgeräteherstellen und den Distributoren ab, ob und wie
das Android System auf eine aktuelle Version aktualisiert werden kann.
6.1 Aktuelle Marktlage:
Anbieter und Endgeräte
HTC T-Mobile G1
(*) Android 1.0
T-Mobile G2 Touch
(HTC Hero)
(*) Android 1.5
HTC Magic (Vodafone)
(*) Es hängt von den Endgeräteherstellen und den Distributoren ab, ob und wie
das Android System auf eine aktuelle Version aktualisiert werden kann.
6.1 Aktuelle Marktlage:
Anbieter und Endgeräte
HTC T-Mobile G1
(*) Android 1.0
T-Mobile G2 Touch
(HTC Hero)
(*) Android 1.5
Motorola Milestone
(*) Android 2.0
HTC Magic (Vodafone)
(*) Es hängt von den Endgeräteherstellen und den Distributoren ab, ob und wie
das Android System auf eine aktuelle Version aktualisiert werden kann.
6.1 Aktuelle Marktlage:
Anbieter und Endgeräte
HTC T-Mobile G1
(*) Android 1.0
T-Mobile G2 Touch
(HTC Hero)
(*) Android 1.5
HTC Magic (Vodafone)
Motorola Milestone
(*) Android 2.0
Google Nexus One
(*) Android 2.0
(*) Es hängt von den Endgeräteherstellen und den Distributoren ab, ob und wie
das Android System auf eine aktuelle Version aktualisiert werden kann.
Fazit
➢
Für Endgerätehersteller erhebliche Kosteneinsparungen möglich
Problematische Sicherheit in Punkto Vertrauenswürdigkeit von
Anwendungen, Aufgrund der Inkompatibilität von Dalvik VM Binaries mit dem
„Java Verified“ Zertifizierungs Programm sowie lokale Signierung
➢
➢
Statt Abhängigkeit von JCP Spezifikationen nun Abhängigkeit vom
Betriebssystem (Versionskonflikte mit dem Framework)
Im Vergleich zu Java Microedition Systemen, ausser der Dalvik VM als
komplette 1.6 Java Maschine keine wirklich neuen Konzepte
➢
Endkonsumenten mit „Android“ Erfahrungen kommen mit neuen
Endgeräten auf dieser Basis schnell zurecht
➢
Quellen
Generelle Informationen (Alle Rollen) → http://www.android.com
Open Handset Alliance → http://www.openhandsetalliance.com
Wikipedia.org → http://en.wikipedia.org/wiki/Android_%28operating_system%29
The Java Community Process (JCP) Program → http://www.jcp.org
Dalvik VM → http://www.dalvikvm.com/
„Google Maps Navigation“ → http://www.google.com/mobile/navigation/#p=default
Vielen Dank für Ihre ungeteilte
Aufmerksamkeit.
Fragen?
Enrico Homann <[email protected]>
Herunterladen