Mobile App Development

Werbung
Mobile App
Development
- Einführung -
Inhalt
• Organisatorisches
• Vorlesungsinhalt
• Mobile Geräte
• Android Architektur
• App Aufbau
• Praktikum
Mobile App Development
Organisatorisches
• 4 SWS, 5 ECTS
• 2 Vorlesung / 2 Praktikum • 10 Wochen 3V / 1P
• 5 Wochen Projekt
Mobile App Development
Organisatorisches
• Prüfungsleistung: Übungen + Projekt
• Voraussetzungen
• Übungsgruppen
• Leihgeräte
Mobile App Development
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
!
• monatliches mobiles
Datenaufkommen
in Exabyte
weltweit
Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update, 2011–2016
Mobile App Development
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
Mobile App Development
Smartphone-Nutzung
Wo werden Smartphones benutzt?
Quelle: Lookout - Mobile Mindset Study, 2012
Mobile App Development
Smartphone-Nutzung
Wo werden Smartphones benutzt?
!
!
!
!
!
Quelle: Lookout - Mobile Mindset Study, 2012
Mobile App Development
App: Holy Bible
Smartphone-Nutzung
Wo werden Smartphones benutzt?
!
!
!
!
!
Quelle: Lookout - Mobile Mindset Study, 2012
Mobile App Development
App: Torque
Smartphone-Nutzung
Wo werden Smartphones benutzt?
App: iBeer
Quelle: Lookout - Mobile Mindset Study, 2012
Mobile App Development
Smartphone-Nutzung
Wo werden Smartphones benutzt?
!
!
!
!
!
Quelle: Lookout - Mobile Mindset Study, 2012
Mobile App Development
App: WC Sucher
App: iDragPaper
Smartphone-Nutzung
Wo werden Smartphones benutzt?
Quelle: Lookout - Mobile Mindset Study, 2012
Mobile App Development
App: Wecker
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
Mobile App Development
Smartphone-Markt
Marktanteile der Betriebssysteme am Endkundenabsatz
von Smartphones weltweit von 2009 bis 2013
46,9
6,1
18,7
37,6
3,8
3,01
10,9
1,85
18,88
16
19,9
14,4
2,5
19,1
0
1,9
0,9
3,2
15,6
0
0,8
3,5
0,7
14,8
0
0,3
2,1
6,4
13,7
78,4
80,2
77,6
2013
(2014)
(2018)
66,4
46,66
4,2
15,7
8,7
4,2
2,7
5
22,7
3,9
2009
2010
2011
2012
Quelle: http://de.statista.com/
Mobile App Development
Smartphone-Markt
Marktanteile der Betriebssysteme am Endkundenabsatz
von Smartphones weltweit von 2009 bis 2013
46,9
6,1
18,7
37,6
3,8
3,01
10,9
1,85
18,88
16
19,9
14,4
0
0,8
3,5
0,7
14,8
0
0,3
2,1
6,4
13,7
78,4
80,2
77,6
2012
2013
(2014)
(2018)
Microsoft
RIM
Symbian
2,5
19,1
66,4
46,66
4,2
15,7
8,7
0
1,9
0,9
3,2
15,6
4,2
2,7
5
22,7
3,9
2009
2010
Android
Andere
2011
iOS
Mobile App Development
Quelle: http://de.statista.com/
Architektur
Architektur
Mobile App Development
Architektur-Kernel
•
Android-Basis: (ab)Linux 2.6 Kernel, angepasst
auf Besonderheiten von mobilen Geräten
•
Aufgaben:
•
•
•
Hardware-Abstraktion, Treiber
Prozess-, Speicher- & Energieverwaltung
Netzwerkschnittstelle, Sicherheit
Mobile App Development
Architektur - Libraries
• C/C++-Bibliotheken, die Grundfunktionalität zur Verfügung stellen, wie:
• Web-Engine, 2D/3D-Rendering
• Datenbanken, Codecs
• Secure Socket Layer
Mobile App Development
Architektur - Runtime
!
• Android Runtime (ART) „Virtual
Machine“ (ab 5.0)
• Dalvik VM (vorher)
Mobile App Development
Architektur - App FW
• Basis Framework zum Erstellen von Apps
• Dienste zum Verwalten von Activities,
Ressourcen, Fenstern, ...
• Zugriff aus Statuszeile, Benachrichtigungen
• Anwendungskommunikation
Mobile App Development
Architektur - Apps
• Ebene enthält die eigentlichen Apps
• Core: Mail, SMS, Calendar, Maps, Browser, ...
Mobile App Development
App Aufbau
App Komponenten
• Android Apps bestehen aus lose
gekoppelten Komponenten
• Die wichtigsten sind:
• Activities, Fragments, Services, Content
Provider, Broadcast Receiver, Intents
Mobile App Development
App Komponenten
• Activities
• bilden die Präsentationsschicht der App
• Controller (analog zu MVC)
Mobile App Development
App Komponenten
• Fragments (seit API Level 11)
• stellt eine spezielle Aktion dar
• flexiblere UI Erstellung
• Bessere Unterstützung von
unterschiedlichen Displaygrößen
Mobile App Development
App Komponenten
• Services
• Softwarebestandteile, die im Hintergrund
laufen
• haben kein eigenes UI
• Verwendung für Downloads, E-Mail Abruf
Mobile App Development
App Komponenten
• Intents
• Nachrichtenkonzept unter Android
• Lose Kopplung zwischen Komponenten
• z. B. Starten von Activities & Services,
Senden von Benachrichtigungen
(Batteriestatus)
Mobile App Development
App Komponenten
• Broadcast Receiver
• Verarbeitung systemweiter Broadcasts
• Reaktion auf Ereignisse mit
unbestimmtem Empfänger
Mobile App Development
App Komponenten
• Content provider
• definierte Schnittstelle zum Zugriff oder
zur Bereitstellung von Daten für andere
Apps
• z. B. Auslesen von Kontakten
Mobile App Development
Projektstruktur
• src
• enthält den Standard Java Code Dateien
• z. B. Activities & Services
Mobile App Development
Projektstruktur
• gen • Verzeichnis für generierte Dateien
• R.java: generierte Java Datei
mit Referenzen zu Ressourcen (res)
• BuildConfig.java
• AIDL Interfaces
Mobile App Development
Projektstruktur
• Android x.x • Plattform Bibliothek für die Zielplattform
• Android Dependencies
Mobile App Development
Projektstruktur
• assets
• Verzeichnis für „Nicht-Standard“-Dateien
• z. B. Texturen, Schriftarten
Mobile App Development
Projektstruktur
• bin
• Zielverzeichnis für das Kompilat
• dex, resouces, apk
• libs
• eigene App-Bibliotheken
Mobile App Development
Projektstruktur
• res
• drawable: Bilder
• layout: XML GUIs
• menu: XML Menüdefinition
• values: XML Strings, Colors
Mobile App Development
Projektstruktur
• Android Manifest
• Komponenten-Deklaration
• Berechtigungen
• API Level
• API Bibliotheken
• Hardware-Voraussetzungen
Mobile App Development
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>
Mobile App Development
Build Prozess
Quelle: http://developer.android.com/tools/building/index.html
Mobile App Development
Praktikum
Toolchain-Installation
• Java 6 JDK
SDK • Android
http://developer.android.com/sdk/index.html
• Eclipse >= 3.7.2 http://www.eclipse.org/downloads • Eclipse ADT Plugin
Eclipse > Help > Install New Software
https://dl-ssl.google.com/android/eclipse
Mobile App Development
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
Mobile App Development
Hello World
• Ziel
• Eingabe des Namens
• Klick auf Say Hello
=> „Hello Name“
Mobile App Development
Herunterladen