1 Entwicklung einer Android Library zur Erfassung und Versendung von Daten mobiler Geräte Seminararbeitsvortrag B.Sc. Scientific Programming Sascha Eiteneuer
Gliederung 2 Motivation Anforderungen Android Entwurf Implementierung Fazit Was wurde vorher gemacht? Was wird wieder gemacht werden? Wie funktioniert Android(-Entwicklung)? Wie kann man das ausnutzen? Was hat er nun eigentlich gemacht? Was hat es gebracht?
Verkehr und Mobilität Produktionstechnik E-Health IMA – ZLW –IfU 3
Motivation 4 Was wurde vorher gemacht?
e-Health Projekte : : TemRas : EMuRgency Volunteer Notification System EMuRgency-App
VNS 6 Einbindung von Leihen in den Rettungsdienst Ermittlung geeigneter Freiwilliger
EMuRgency-App 7 Benachrichtigung der Freiwilligen Standort der Freiwilligen
Anforderungen 8 Was wird wieder gemacht werden?
Abstraktion 9 Daten erfassen Verbindung mit Server Daten in Intervallen versenden
Funktionale Anforderungen 10 Auslesen aller im Gerät verbauten Sensoren Schnittstelle zum Auslesen potentieller Informationsquellen Versenden der erfassten Informationen an einen Server start on boot
Nicht funktionale Anforderungen 11 Entwicklung für Android Stromverbrauch
Android 12 Wie funktioniert Android(-Entwicklung)?
Linux Kernel LibsInitDaemons… RuntimeDVMZygote System Serviceandroid.*java.* Stock AppsMarket/Installed Apps Androids Systemarchitektur 13
Systemstart 14 ROM Boot Loader Kernel Init Prozess … Runtime Prozess Service Manager Zygote DVM System Server
Zygote 15
Diamentrale Methodenaufrufe 16 EntwicklerFramework Basisklasse Spezialklasse ContextAndereklasse
Activity, BroadcastReceiver und Service 17 onResume() onReceive() onStartCommand() startActivity() sendBroadcast() startService()
Entwurf 18 Wie kann man das ausnutzen?
Gegen Schnittstellen programmieren 19 Datenkapselung Separation of Concerns
Application 20 Basisklasse Container für Daten Context.getApplication()
BroadcastReceiver 21 Messaging onReceive() System-Broadcasts Context.sendBroadcast() Registrierung im Manifest
Separation of Concerns 22 / LibConfig, Fokusklasse, Activities Model IPC BroadcastReceiver RPC Versenden der Daten
Implementierung 23 Was hat er nun eigentlich gemacht?
Prototyping 24 Recherche Prototyp Refactoring
Schnittstelle für Monitorables 25 Identifizierung Daten abfragen Aktualisierung
Sensor-Wrapper 26 Sensor ist nicht spezialisierbar Fassade
Abfrage im Intervall 27 ServiceStarter AlarmManager DataService
Reflexion on Create 28 Activity Service AlarmManager
Versenden der Daten 29 PublishingDataReceiver RemoteConnection AsyncDataPublisher
Nutzung der Bibliothek 30 Steuerung über eine Klasse Setzen von Properties Hinzufügen eigener Implementierungen Starten/Stoppen des Services
Fazit 31 Was hat es gebracht?
Zusammenfassung 32 Oberflächlich einfach Handhabbar Flexible durch Schnittstellen Anforderungen erfüllt
Ende 33 Danke für die Aufmerksamkeit. Gibt es Fragen?