Java User Group München, 22. 9. 2008 Erste Erfahrungen mit Android 1
Was ist Android? Die erste vollständige, offene und freie Plattform für mobile Telefone Entwickelt von der Open Handset Alliance (Telecoms, Hardware- und Softwarehersteller) code.google.com/android/ 2
Grundmerkmale von Android Basierend auf Linux. Funktionalität des Telefons ist über APIs ansprechbar. Anwendungen verschiedener Hersteller sollen miteinander kommunizieren können Alles ist eine Anwendung - auch Telefon, Adreßbuch... Entwicklung von Anwendungen in Java mit speziellen Frameworks und Libraries 3
Beispielanwendung: Shopping List 4
Architektur einer Android-Anwendung View Activity POJO View View Activity POJO Intent POJO View Activity POJO DAO SQLite 5
Views AutoComplete Linear Layout ListView 6
Es gibt die üblichen vordefinierten Views Date Picker Time Picker Spinner (entspricht Dropdown) AutoComplete Button ImageButton EditText CheckBox Radio Gallery ImageSwitcher GridView ListView TableLayout Es gibt keine Maus! 7
Views können in XML deklariert werden 8
Views können auch in Java-Code definiert werden 9
Mit Java-definierten Views läßt sich ein konsistentes Look and Feel erzielen 10
Aufgaben von Activities Wie ein klassischer Controller: Halten der im Dialog angezeigten und eingegebenen Daten Aufbau und ggf. dynamische Modifikation von Menüs Reagieren auf Ereignisse, soweit nicht durch Android-Elemente passend behandelt Ver- und Entsorgen der View über Adapter Zusätzlich muß jede Applikation damit rechnen, aus dem Adreßraum geworfen zu werden: Es gibt einen Lebenszyklus von Activities Dieser muß explizit programmiert werden: Sichern und Wiederherstellen des Dialogzustandes 11
Lebenszyklus einer Applikation 12
Activities kommunizieren über Intents Intent-Inhalte müssen serialisierbare Datentypen haben. 13
API für SQLiteZugriffe 14
Runtime-Plattform Der Java-Code wird nicht in Bytecode für eine JVM übersetzt, sondern für eine speziell entwickelte Maschine (Dalvik), die auf niedrigen Speicherbedarf optimiert wurde. Als Datenbank wird SQLite eingesetzt, eine kleine SQLDatenbank mit leicht reduziertem SQL-Sprachumfang. 15
Entwicklungs-Dokumentation Was es gibt (Sommer 2008): Javadoc der APIs: vollständig, doch stellenweise kaum erklärt. Guidelines: vorhanden, doch keineswegs umfassend. Beispielapplikationen: für die meisten GUI-Konstrukte, jedoch nur Mickey-Mouse-Umfang. Was es nicht gibt (Sommer 2008): Sourcecode der Plattform incl. der vorinstallierten Anwendungen. Design Rationale: Bei diesem Konstrukt haben wir uns folgendes gedacht... und man sollte es so anwenden... 16
Entwicklung der Libraries Releasesprung 3. 3. 2008 auf Version m5-rc15 pre-alpha Etliche APIs komplett umgeworfen Look and Feel weitgehend umgestaltet, z.b. Menüs und Spinner auf Touch Screen ausgerichtet (Reaktion auf iphone) Immer noch pre-alpha, d.h. funktional nicht vollständig. Releasesprung 18. 8. 2008 auf Version 0.9 beta Lt. Doku keine tiefgreifenden Änderungen, hauptsächlich Umbenennungen 17
Der Emulator für Android Für Windows, Mac, Linux (wie die anderen Entwicklungstools auch) Mehrere Skins, um unterschiedliche Telefontypen zu emulieren Sehr langsam, vor allem beim Start Instabil in Verbindung mit dem Eclipse-Debugger 18
Das Eclipse-Plugin für Android Spezialisierte Editoren für einige Aufgaben, z.b. Konsistenzprüfung von XML-Views New Project Wizard Build-Spezifika für Android (Generierung von eindeutigen Ids) Start und Stop des Emulators Debugger (macht den Emulator noch langsamer) 19
Weitere Entwicklungstools Mickey-Mouse Kommandozeile für den Emulator Mickey-Mouse Kommandozeile für SQLite Packaging Tool Interface Description Language für Services... 20
Die Android Community Einige Google Groups, die wichtigste ist android-developers. In der letzten Phase des Android Developer Challenge viel Betrieb (mehrere 100 Messages pro Tag) Jetzt weniger Betrieb, 10.. 20 Messages pro Tag Nur wenige Google-Mitarbeiter nehmen teil, diese sind freundlich, können jedoch bei weitem nicht alle Fragen klären Gerade grundlegende Designfragen werden hier nicht befriedigend beantwortet. User Groups in einigen Städten in USA in Deutschland bislang ein Workshop mit Google-Mitarbeitern, Anfang 2008 in München 21
Fazit (i) Entwicklung für Android ist heute schon möglich, allerdings dauert es länger als nötig wegen Lücken in der Dokumentation, kann man sich der Architektur nicht wirklich sicher sein, kann durch Änderungen im API noch einiges umgeschmissen werden. Es gibt noch keine Hardware, die Android unterstützt, daher kann die Usability nicht in der Realität überprüft werden, ist die Performance unsicher. 22
Fazit (ii) Wie wird sich Open Source und Offenheit beim Endbenutzer auswirken? Wahrnehmung und Akzeptanz durch Handy-Kunden? Das Handy wird zum Computer verstehen das die Anwender? Malware auf dem Handy? Braucht man eine Qualitätsinstanz für Anwendungen?. Es gibt auch andere Initiativen für offene Plattformen für mobile Telefone, also ist nicht sicher, wer sich am Markt durchsetzt. 23