Seminarvortrag Entwicklung mobiler Applikationen mit Android

Werbung
Seminarvortrag
Entwicklung mobiler Applikationen mit
Android
Moritz Hübner
([email protected])
Lehrstuhl für Medizintechnik
Helmholtz-Institut für Biomedizinische Technik der RWTH Aachen
Pauwelsstraße 20
52074 Aachen
Motivation
•
Arbeit an einem Projekt
 Workfloweditor
•
Anforderung
 Mobilität der App im Klinikalltag
 ergonomische Oberfläche
•
Tablet mit Plattform Android
 Vorteil Entwicklung auf Windows möglich
 schnelles Prototyping und viele Quellen durch große Community
•
Seminar wurde genutzt um Erfahrung mit Android zu sammeln
 Grundlage des Projekts
Überblick
•
Motivation
•
Hintergrund
 Was ist Android?
 Geschichte
 Welche Werkzeuge gibt es?
•
Wie ist eine Applikation
aufgebaut?
 Lebenszyklus einer Activity
und Minimalactivity
 Die Oberfläche
 R.java
•
Intents und Intentfilter
•
•
Datenverwaltung und –speicherung
 SQLite
 Content Provider
Fazit
Was ist Android?
•
kein Betriebssystem, sondern Kompendium verschiedener Software
 Linux als Betriebssystem (Treibermodell, Speicher- und
Prozessverwaltung, Abstraktionsschicht etc.)
 Kernel 2.6
 Dalvik als Laufzeitumgebung für Android Applikationen (virtuelle
Maschine)
 auch vorinstallierte Anwendungen, wie der Email Client, werden
dort ausgeführt
 erstellt von jeder Anwendung ein Dalvik Executable
 Ausführung auf Linux
 Email Client, Widget Unterstützung, Kontaktdatenbank, Uhr, Browser,
Android Market (oft aber nicht immer), etc.
 Ausführung ebenfalls durch Dalvik
Geschichte
•
2003 beginn der Entwicklung mit der neu gegründeten Android Inc. unter
Andy Rubin
 Softwareentwickler bei Apple Inc., General Magic, Android Inc. und
heute bei Google
 arbeitete bei General Magic bereits an einem Betriebssystem mit
grafischer Oberfläche für mobile Geräte
 maßgebliche Beteiligung an der Auslieferung des ersten kabellosen
PDAs
•
2005 Google kauft Android Inc.
 konsequente Fortsetzung der Entwicklung unter Andy Rubin
•
2007 offizielle Ankündigung und Veröffentlichung des SDKs
 Anlockung von Entwicklern mit Preisgeldern
Geschichte
 Open Handset Alliance (OHA) tritt in Erscheinung
 Zusammenschluss von 34 Firmen aus den Bereichen Entwicklung,
Netzbetrieb u. Geräteherstellern unter der Führung von Google
•
2008 Veröffentlichung des HTC Dream G1 mit Android 1.0
• Heute OHA angewachsen auf 80 Unternehmen
 inzwischen Android 4.0
 700.000 Gerätaktivierungen am Tag
 in 3 Jahren
Welche Werkzeuge gibt es?
ADT Plugin (Android Development Tools)
Android SDK
Überblick
•
Motivation
•
Hintergrund
 Was ist Android?
 Geschichte
 Welche Werkzeuge gibt es?
•
Wie ist eine Applikation
aufgebaut?
 Lebenszyklus einer Activity
und Minimalactivity
 Die Oberfläche
 R.java
•
Intents und Intentfilter
•
•
Datenverwaltung und –speicherung
 SQLite
 Content Provider
Fazit
Wie ist eine Applikation aufgebaut?
•
Eine App kann aus verschiedenen Komponenten bestehen …
 Activity, Service, Fragment und Broadcast Receiver
 nur die Activity ist als Einstiegspunkt essentiell (impliziter Intent)
•
Activity
 Definition in der Manifestdatei
 Modul welches eine Aufgabe erfüllt
 definiert eine Benutzeroberfläche durch einen XML Baum
 Interaktion mit der Plattform durch bestimmte Listener Methoden,
welche sich am Lebenszyklus der Activity orientieren
Wie ist eine Applikation aufgebaut?
• Verwaltungsdatei einer App
• Informationen über ihre Komponenten und ihr
Zusammenspiel
Lebenszyklus einer Activity und Minimalactivity
Hier bietet es sich an
Datensätze in einer
Datenbank zu speichern!
Die App pausiert sobald z.B.
ein Abfragedialog erscheint.
Die Oberfläche
Oberfläche als XML Baum
R.java
Überblick
•
Motivation
•
Hintergrund
 Was ist Android?
 Geschichte
 Welche Werkzeuge gibt es?
•
Wie ist eine Applikation
aufgebaut?
 Lebenszyklus einer Activity
und Minimalactivity
 Die Oberfläche
 R.java
•
Intents und Intentfilter
•
•
Datenverwaltung und –speicherung
 SQLite
 Content Provider
Fazit
Intents und Intentfilter
•
dienen der Kommunikation von Activities innerhalb der App und mit
Activities anderer Apps oder des Systems
 vielen Anwendungen reicht eine Activity nicht
 Daten müssen über ihre Grenzen hinaus ausgetauscht werden
•
Start einer Activity erfolgt explizit oder implizit
 impliziter Start erfordert eine action und eine category in dem
intent-filter Attribut des Activity Tags in der Manifestdatei
 data Tag kann angehangen werden um ein Schema für URI (Uniform
Resource Identifier) Objekte als Daten mitzugeben
 im Code wird ein Intent erstellt der die action verarbeitet
Intents und Intentfilter
 expliziter Start erfordert die Ausgangsactivity (this) und die Zielactivity
MyActivity.class
 im Code wird ein Intent mit beiden Activities erstellt und damit die
Zielactitivity gestartet
 auch hier können Daten an den Intent gehangen werden
 Bundle (assoziative Vorgehensweise Key-Value Paare)
 wird in der Zielactivity wieder ausgelesen
Impliziter Intent
Expliziter Intent
Überblick
•
Motivation
•
Hintergrund
 Was ist Android?
 Geschichte
 Welche Werkzeuge gibt es?
•
Wie ist eine Applikation
aufgebaut?
 Lebenszyklus einer Activity
und Minimalactivity
 Die Oberfläche
 R.java
•
Intents und Intentfilter
•
•
Datenverwaltung und –speicherung
 SQLite
 Content Provider
Fazit
SQLite
•
Verdeutlichung anhand der „Meine Stimmung App“
•
zentrale Klassen SQLiteOpenHelper und SQLiteDatabase

SQLiteOpenHelper abstrakte Klasse

wird meist in einer abgeleiteten Klasse umgesetzt um eigene
Anpassungen einzuarbeiten

Pflicht die Methoden onCreate() und onUpgrade() zu überschreiben

onCreate() beinhaltet Logik um Verbindung zu einer Tabelle
herzustellen oder eine neue zu erstellen

onUpgrade() beinhaltet Logik um je nach Situation ev. neue Spalten
hinzuzufügen und alten Zustand zu speichern

SQLiteOpenHelper bietet Methoden an um les– und schreibbare
Instanzen von SQLiteDatabase zu bekommen

ermöglicht Implementierung von Logik für Einfüge-,
Aktualiesierungs- oder Löschoperationen
Datenbankzugriff
 bietet Methoden an um SQL Statements auszuführen ( void
execSQL(String sql))
 bietet sich für Erstellung und Löschen von Tabellen an, also
Operationen der DDL (Data Definition Language, execSQL() kein
Rückgabewert)
 DML Operationen (Data Manipulation Language) verkapselt in
Methoden die wenig SQL Kenntnisse erfordern
Datenbankzugriff
Künneth, T.: Android 3 Apps entwickeln mit dem Android SDK. 1. Aufl. Bonn: Galileo Press 2011.
Datenbankzugriff
Datenbankzugriff
Content Provider
•
dienen dazu Daten anderen Applikationen zugänglich zu machen
•
jeder Content Provider muss in der Manifestdatei mit seinem voll
qualifizierten Namen angegeben werden (Authority)
 dieser Name wird als Teil der CONTENT_URI angegeben
 trains würde jetzt die Tabelle bezeichnen von der die Daten kommen
 es könnten auch Webservices oder RSS Feeds als Datenquelle dienen
•
in der abgeleiteten Klasse des Content Providers müssen Methoden der
Datenmanipulation und –definition überschrieben werden (ContentProvider
abstrakte Klasse)
Content Provider
 diese Methoden heißen insert(), delete(), query() und update()
 bekommen ein URI Objekt übergeben
 Prüfung ob ein Datensatz oder alle Datenbestände betroffen sind
•
Content Provider müssen nicht initialisiert werden
 durch die Registrierung in der Manifestdatei und mit ihrer URI werden
sie aus einer Activity direkt angesprochen
 ContentResolver getContentResolver()
 liefert ContentResolver der die Methoden der ContentProvider
aufrufen kann
 an Hand der CONTENT_URI wird entschieden welcher
ContentProvider ausgewählt wird
Content Provider
Überblick
•
Motivation
•
Hintergrund
 Was ist Android?
 Geschichte
 Welche Werkzeuge gibt es?
•
Wie ist eine Applikation
aufgebaut?
 Lebenszyklus einer Activity
und Minimalactivity
 Die Oberfläche
 R.java
•
Intents und Intentfilter
•
•
Datenverwaltung und –speicherung
 SQLite
 Content Provider
Fazit
Fazit
•
Beschreibung grundlegender Features
 Activities, Intents –und Intentfilter, SQLite, ContentProvider,
Resourcenmanagement etc.
•
Features sind nachvollziehbar
•
Plattform angepasst an zeitliche Trends der Entwicklung mobiler
Applikationen
•
große Entwicklergemeinde
•
Sicherheit der Weiterentwicklung durch viele Geräte
Quellen
• Künneth, T.: Android 3 Apps entwickeln mit dem Android
SDK. 1. Aufl. Bonn: Galileo Press 2011.
• Becker, A., Pant, M.: Android Grundlagen und
Programmierung. 1.Aufl. Heidelberg: dpunkt.verlag
GmbH 2009.
• Android Developers http://developer.android.com/index.html
Entwicklung mobiler Applikationen mit
Android
Moritz Hübner
([email protected])
Lehrstuhl für Medizintechnik
Helmholtz-Institut für Biomedizinische Technik der RWTH Aachen
http://www.meditec.hia.rwth-aachen.de
Herunterladen