Mobile App Development - Einführung -
Inhalt Organisatorisches Vorlesungsinhalt Mobile Geräte Android Architektur App Aufbau Praktikum
Organisatorisches 4 SWS, 5 ECTS 2 Vorlesung / 2 Praktikum 10 Wochen 3V / 1P 5 Wochen Projekt
Organisatorisches Prüfungsleistung: Übungen + Projekt Voraussetzungen Übungsgruppen Leihgeräte
Inhalt Grundlagen Entwicklungsumgebung & Tool Chain Activities & Lebenszyklus Benutzeroberflächen Prof. Dr. Martina Lehser Nils Steinbiß, M. Sc. Christoph Karls, M. Sc.
Inhalt Kommunikation zwischen Anwendungskomponenten Services & Threads Persistenz Sensoren & Aktoren Prof. Dr. Martina Lehser Nils Steinbiß, M. Sc. Christoph Karls, M. Sc.
Mobile Geräte
Mobiler Datenverkehr 10,8 monatliches mobiles Datenaufkommen in Exabyte 6,9 weltweit 4,2 0,6 1,3 2,4 2011 2012 2013 2014 2015 2016 Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update, 2011 2016
Smartphone-Nutzung Wofür werden Smartphones benutzt? Quelle: O2 News Centre - Making calls has become fifth most frequent use for a Smartphone for newly-networked generation of users, 2012
Smartphone-Nutzung Wofür werden Smartphones benutzt? Fotografieren Bücher lesen Filme / TV SMS E-Mails Telefonieren Spielen Musik hören Soziale Netze Surfen 3,42 9,3 9,93 10,2 11,1 12,13 14,44 15,64 17,49 24,81 Quelle: O2 News Centre - Making calls has become fifth most frequent use for a Smartphone for newly-networked generation of users, 2012
Smartphone-Nutzung Wo werden Smartphones benutzt? Quelle: Lookout - Mobile Mindset Study, 2012
Smartphone-Nutzung Wo werden Smartphones benutzt? Quelle: Lookout - Mobile Mindset Study, 2012 App: Holy Bible
Smartphone-Nutzung Wo werden Smartphones benutzt? App: Torque Quelle: Lookout - Mobile Mindset Study, 2012
Smartphone-Nutzung Wo werden Smartphones benutzt? Quelle: Lookout - Mobile Mindset Study, 2012 App: ibeer
Smartphone-Nutzung Wo werden Smartphones App: idragpaper benutzt? App: WC Sucher Quelle: Lookout - Mobile Mindset Study, 2012
Smartphone-Nutzung Wo werden App: Wecker Smartphones benutzt? Quelle: Lookout - Mobile Mindset Study, 2012
Android Geschichte? 2003 Gründung der Firma Android 2005 Google kauft Android 11/2007 Open Handset Alliance 10/2008 Android offiziell verfügbar Erstes Smartphone mit Android erscheint seit 2009 zahlreiche Android Versionen
Smartphone-Markt 215.998 Smartphone-Verkäufe nach 166.716 Betriebssystemen 117.436 166.232 189.924 68.156 142.540 122.864 12.378 46.598 47.452 67.225 26.346 90.560 62.600 179.873 118.848 79.335 310.088 93.844 386.498 108.353 462.908 539.318 111.577 89.930 32.666 21.998 11.330 661 2010 2011 2012 (2013) (2014) 2015 296.647 467.701 630.476 1.104.898 Quelle: http://www.mobiletechworld.com : Windows Phone to be second smartphone OS in 2015
Smartphone-Markt Smartphone-Verkäufe nach 166.716 215.998 Betriebssystemen 117.436 166.232 189.924 68.156 142.540 122.864 12.378 46.598 47.452 67.225 26.346 90.560 62.600 179.873 118.848 79.335 310.088 93.844 386.498 108.353 462.908 539.318 111.577 89.930 32.666 21.998 11.330 661 2010 2011 2012 (2013) (2014) 2015 296.647 467.701 630.476 1.104.898 Symbian Android RIM ios Microsoft Quelle: http://www.mobiletechworld.com : Windows Phone to be second smartphone OS in 2015
Architektur
Architektur
Architektur-Kernel Android -Basis: Linux 2.6 Kernel, angepasst auf Besonderheiten von mobilen Geräten Aufgaben: Hardware-Abstraktion, Treiber Prozess-, Speicher- & Energieverwaltung Netzwerkschnittstelle, Sicherheit
Architektur - Libraries C/C++-Bibliotheken, die Grundfunktionalität zur Verfügung stellen, wie: Web-Engine, 2D/3D-Rendering Datenbanken, Codecs Secure Socket Layer
Architektur - Runtime Dalvik Virtual Machine registerbasierte Java VM mit eigenem Bytecode (dex) hochoptimiert für wenig Speicherplatz Java Core Libraries
Architektur - App FW Basis Framework zum Erstellen von Apps Dienste zum Verwalten von Activities, Ressourcen, Fenstern,... Zugriff aus Statuszeile, Benachrichtigungen Anwendungskommunikation
Architektur - Apps Ebene enthält die eigentlichen Apps Core: Mail, SMS, Calendar, Maps, Browser,...
App Aufbau
App Komponenten Android Apps bestehen aus lose gekoppelten Komponenten Die wichtigsten sind: Activities, Services, Content Provider, Broadcast Receiver, Intents
App Komponenten Activities bilden die Präsentationsschicht der App Controller (analog zu MVC) idr.: Activity <=> App Screen
App Komponenten Services Softwarebestandteile, die im Hintergrund laufen haben kein eigenes UI Verwendung für Downloads, E-Mail Abruf
App Komponenten Intents Nachrichtenkonzept unter Android Lose Kopplung zwischen Komponenten z. B. Starten von Activities & Services, Senden von Benachrichtigungen (Batteriestatus)
App Komponenten Broadcast Receiver Verarbeitung systemweiter Broadcasts Reaktion auf Ereignisse mit unbestimmtem Empfänger
App Komponenten Content provider definierte Schnittstelle zum Zugriff oder zur Bereitstellung von Daten für andere Apps z. B. Auslesen von Kontakten
Projektstruktur src enthält den Standard Java Code Dateien z. B. Activities & Services
Projektstruktur gen Verzeichnis für generierte Dateien R.java: generierte Java Datei mit Referenzen zu Ressourcen (res) BuildConfig.java AIDL Interfaces
Projektstruktur Android x.x Plattform Bibliothek für die Zielplattform Android Dependencies
Projektstruktur assets Verzeichnis für Nicht-Standard -Dateien z. B. Texturen, Schriftarten
Projektstruktur bin Zielverzeichnis für das Kompilat dex, resouces, apk libs eigene App-Bibliotheken
Projektstruktur res drawable: Bilder layout: XML GUIs menu: XML Menüdefinition values: XML Strings, Colors
Projektstruktur Android Manifest Komponenten-Deklaration Berechtigungen API Level API Bibliotheken Hardware-Voraussetzungen
Projektstruktur Android Manifest <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="de.htwds.emrolab.mada.myproject" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="3" android:targetsdkversion="15" /> <uses-feature android:name="android.hardware.camera" /> <uses-permission android:name="android.permission.camera"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name=".mainactivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher"/> </intent-filter> </activity> </application> </manifest>
Build Prozess Quelle: http://developer.android.com/tools/building/index.html
Praktikum
Toolchain-Installation Java 6 JDK Android SDK http://developer.android.com/sdk/index.html Eclipse >= 3.6.2 http://www.eclipse.org/downloads Eclipse ADT Plugin Eclipse > Help > Install New Software https://dl-ssl.google.com/android/eclipse
Toolchain-Test Android-Projekt in Eclipse anlegen Erstellung eines virtuellen Gerätes Eclipse > Window > AVD Manager Start der Anwendung auf dem Emulator Start der Anwendung auf einem realen Gerät
Hello World Ziel Eingabe des Namens Klick auf Say Hello => Hello Name
Literatur I. Sven Haiges: Android Schnelleinstieg entwickler.press, 2011 II. Thomas Künneth: Android 3 - Apps entwickeln mit dem Android SDK Galileo Press, 2011 III. http://developer.android.com IV. http://www.androidpit.de/de/android/wiki