Seminarvortrag Entwicklung mobiler Applikationen mit Android Moritz Hübner Lehrstuhl für Medizintechnik Helmholtz-Institut.

Slides:



Advertisements
Ähnliche Präsentationen
Datenbanken Einführung.
Advertisements

Softwareentwicklung für Android
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
UML Begleitdokumentation des Projekts
News Modul Überblick und Erweiterung
Gegenstand EDV Thema: Informative Webseiten
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Android-App/NerdKalender
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
App-Entwicklung mit HTML5, CSS und JavaScript
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Sesame Florian Mayrhuber
Von Isabelle Spörl und Simon Schausberger
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
SQLite und XML in PHP 5.
Google Android.
Datenbanken im Web 1.
© Zühlke 2013 Philipp Kälin Workshop Entwickeln von Apps für die Android Plattform 29. April Mai Mai April 2013.
Microsoft.NET - Plattform Kurzer Überblick Vergleich mit Java Von Thomas Zahn Januar 2001.
IOS Entwicklung von 0 auf 100 Von Philipp Koulen Lehr- und Forschungsgebiet Ingenieurhydrologie.
N Beratung n Betreuung n Koordinierung Umsetzung der Betriebssicherheitsverordnung im Rahmen des Arbeits- und Gesundheitsschutzmanagementsystems NRW (AGM.
Bewerbungs- eingang Bewerbungs- bearbeitung Stellenangebote VermittlungKommunikationZusatzleistungen.
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
Generic Enabler Felix Holzäpfel-Stein, Aachen Generische Komponenten im Cloudkontext.
Entwurf, Implementierung und Test eines Java – Web Services als Kommunikationsschnittstelle für Webapplikationen mit Funktionen.
Rechen- und Kommunikationszentrum (RZ) Entwicklung einer Web- Oberfläche mit Apache Wicket am Beispiel des IdentityAdmins Seminarvortrag Melanie.
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
IT-Dienstleistungen E-Learning Systeme Content Management 1 Fallbeispiel ILIAS: Das Repository-Objekt-Plugin „Centra“
Rechen- und Kommunikationszentrum (RZ) Seminararbeit Theorie und Umsetzung einer Cloud-Computing-Lösung mit Eucalyptus zur Durchführung von Computer-Simulationen.
© WZL/Fraunhofer IPT Entwicklung einer Profilbörse für Konfigurationen von Smartphones Vortrag der Seminararbeit von Patrick Posor Aachen, den
Webdeployment auf Cluster Seminarvortrag von Lukas Bonzelett.
Funktionsweise eines Funambolservers Natascha Graf Aachen, 01. Februar 2010.
DatenschutzPC-VirenSpywareSchädlingeAbwehr
Seminarvortrag Mobile Darstellung der Backup-Reporte Analyse und Konzept Anita Ludermann Rechen- und Kommunikationszentrum Aachen Stand:
1 Simulation einer Ladesäule für Elektrofahrzeuge nach dem Open Charge Point Protocol Felix Batke 3. Lehrjahr.
Einführung in das mobile Betriebssystem Android 1 Einführung in das mobile Betriebssystem Android „ We're talking about a platform where for the first.
CMS … Content Management System. Erster Schritt Das CMS funktioniert (leider) nicht mit allen Browsern. Eine fehlerfreie Bearbeitung ist mit Mozilla firefox.
Global Sourcing Baustein für einen nachhaltigen Unternehmenserfolg! Global Sourcing nimmt bereits heute eine zentrale Bedeutung im Einkauf und im gesamten.
Kommunikation verbindet. Und wer verbindet die Kommunikation? COSYNUSconnect: Universeller Zugriff auf Unternehmensdatenbanken Ivan Dondras, IT-Consultant.
Modellgetriebene Architekturentwicklung für Car-2-Car Kommunikation Jerome Pfeiffer Seminar am Lehrstuhl für Software Engineering RWTH Aachen Quelle: Spiegel.de.
Key-Value Paare (KVP) - Metadaten für Kanäle speichern und nach MDF4 exportieren PM (V1.0)
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
MONITOR - Materialverfolgung...vom Lieferanten über den Wareneingang bis zum Kunden... weiter.
COURSE in Köln – Copyright, 2009 Lattwein GmbH Michael Prinz Lattwein GmbH Query Reports nach „Maß“
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Web Services Dr. Wolfgang Wörndl
Linux Seminar Einführung Linux. Gliederung ● Was ist Linux? ● Geschichte ● GNU/GPL ● grundsätzliche Begriffe ● Vorteile ● Nachteile ● Hilfe? ● Unterschiede.
TOAD™ Die komplette Entwicklungs- und DBA- Lösung Cristian Maties.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Objective C Universität zu Köln
Wsl schon abgeschaltet Idee dahinter ist interessant und revolutionär
Darstellung der Relationenalgebra als Programmiersprache
Objective C Universität zu Köln
Android-Hacking für Dummies II
Starte Dein Projekt ! Schule braucht Freunde – werden Sie ein friends4school! Nutzen Sie Deutschlands größtes Schulprojektnetzwerk auch in ihrer Schule.
Mehr Möglichkeiten mit der SQL-Version
Lesen Sie alles darüber Microsoft SharePoint-News
Lesen Sie alles zu Microsoft SharePoint-News
Methodische Grundlagen des Software-Engineering
Behalten Sie die Übersicht bei der Wartung Ihres Maschinenparks !
«Delegierter» Methoden Schablone Funktionszeiger
Übersicht und Benutzung von Sphinx
Präsentation von Darleen und Michèle
Wissenschaftliches Projekt
Von Wietlisbach, Lenzin und Winter
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
Schmock Mutter nicht ausreichend versorgt  fast verhungert Mutter bei Geburt verstorben Schmock mit Flasche aufgezogen.
 Präsentation transkript:

Seminarvortrag Entwicklung mobiler Applikationen mit Android Moritz Hübner Lehrstuhl für Medizintechnik Helmholtz-Institut für Biomedizinische Technik der RWTH Aachen Pauwelsstraße 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

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 Client, werden dort ausgeführt  erstellt von jeder Anwendung ein Dalvik Executable  Ausführung auf Linux  Client, Widget Unterstützung, Kontaktdatenbank, Uhr, Browser, Android Market (oft aber nicht immer), etc.  Ausführung ebenfalls durch Dalvik Was ist Android?

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  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

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

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 Becker, A., Pant, M.: Android Grundlagen und Programmierung. 1.Aufl. Heidelberg: dpunkt.verlag GmbH Android Developers -

Entwicklung mobiler Applikationen mit Android Moritz Hübner Lehrstuhl für Medizintechnik Helmholtz-Institut für Biomedizinische Technik der RWTH Aachen Vielen Dank !