Dozenten: Patrick Förster, Michael Hasseler
Programmieren für mobile Endgeräte SS 2013/2014
Dozenten: Patrick Förster, Michael Hasseler
Organisatorisches
• Anmelden im Web: ZIV → Lehre → Anmelden
• Anwesenheitsliste → Anwesenheitsschein bei 75% Anwesenheit
• Allgemeine Studien → Leistungsschein (bei QISPOS anmelden, Klausur)
• Übungen:
• Aufgaben am Ende der Vorlesung
• Bearbeitung in einer virtuellen Maschine
• Für die nächste Vorlesung eigenes Androidgerät mitbringen
• Folien zur Vorlesung unter:
http://www.uni-muenster.de/ZIV/Lehre/mobileendgeraete/index.html
• Literaturempfehlung: Java für Android Native Android-Apps programmieren;
Christian Bleske, 2013; ISBN 978-3-645-60254-9; 30 Euro
• Link: http://developer.android.com/index.html
Programmieren für mobile Endgeräte 2
Dozenten: Patrick Förster, Michael Hasseler
Virtuelle Maschine als Testumgebung
• Virtualisierung mit einer virtuellen Maschine
• Zuweisen/Aufteilen von Ressourcen eines Computers
• Verwaltung der Gastsysteme als kompletter Rechner
• Prozessor
• Arbeitsspeicher
• Download der virtuellen Maschine xubuntu unter:
• \\zivpool1\zivkurse\mhass_01\Android\Androidmachine.ova
Programmieren für mobile Endgeräte 3
Dozenten: Patrick Förster, Michael Hasseler
Vorkenntnisse
• Wer kennt Java?
• Wer kennt XML?
• Wer hat schon eine Android-App geschrieben?
• Wer hat schon mit SQL gearbeitet?
• Wer hat schon mit einer virtuellen Maschine gearbeitet?
Programmieren für mobile Endgeräte 4
Dozenten: Patrick Förster, Michael Hasseler
Marktanteil beim Absatz führender Betriebssysteme
Programmieren für mobile Endgeräte 5
Dozenten: Patrick Förster, Michael Hasseler
Tortendiagramm der Androidversionen (10.2013)
Programmieren für mobile Endgeräte 6
Quelle: http://developer.android.com/about/dashboards/index.html
Dozenten: Patrick Förster, Michael Hasseler
Native Apps versus Web-Apps
• Native Apps:
• sind betriebssystemabhängig, da diese bestimmte Hardware und
Software voraussetzen.
• können auf Hardwarefunktionen zugreifen z. B. Kamera.
• bieten mehr Performance für 3D- und Spieleprogrammierung.
• Webapplikationen (Web-Apps):
• laufen auf einem Webserver und liefern z. B. Webseiten aus.
• sind betriebssystemunabhängig, da die Webseiten in einem Browser
angezeigt werden können.
Programmieren für mobile Endgeräte 7
Quelle: vgl. Android 4, Elisabeth Jung, Seite 15/16
Dozenten: Patrick Förster, Michael Hasseler
Was ist die Systemarchitektur von Android?
Programmieren für mobile Endgeräte 8
Quelle: http://commons.wikimedia.org/wiki/File:Android-System-Architecture.svg (Autor: Smieh; CC-BY-SA-3.0)
Dozenten: Patrick Förster, Michael Hasseler
Systemarchitektur von Android
• Linux Kernel
• Übernimmt die Speicher- und Prozessverwaltung
• bildet die unterste Schicht und dient zur Abstraktion der Hardware
• Gerätetreiber werden bereitgestellt
• Libraries: native Bibliotheken z. B. Codecs, SQLite und 3D-Programmierung auf
OpenGL basierend
• Android Runtime:
• Virtuelle Maschine Dalvik, als Registermaschine implementiert
• Android-Java-Klassenbibliotheken
• Applikation Framework: Verwaltet die Ressourcen und die Applikationen
interagieren mit dem Framework
• Applikationen: Contacts, Phone, Browser, eigene Apps
Programmieren für mobile Endgeräte 9
Quelle: http://de.wikipedia.org/wiki/Android_(Betriebssystem)
Dozenten: Patrick Förster, Michael Hasseler
Wege zum Erstellen eines Android-Projekts
1. IDE-Eclipse inclusive ADT-Bundle(SDK)
• Anlegen des Projekts wird von Eclipse und dem Android-Plugin
vorgenommen
• Hierfür müssen einige Eingabemasken ausgefüllt werden
2. Kommandozeilen-Programme des Android-SDK verwenden
• Befehl: android create project …
• Angaben werden als Parameter dem Befehl angehängt
Programmieren für mobile Endgeräte 10
Quelle: http://developer.android.com/training/basics/firstapp/creating-project.html
Dozenten: Patrick Förster, Michael Hasseler
Eclipse als IDE • Im Package Exporer
wird das Projekt
hierarchisch angezeigt
(blau)
• Der grüne Bereich
ist die Arbeitsfläche
für die Editoren z. B.
Java oder XML.
• Der hellblaue zeigt
Statusinformationen z.
B. die Eigenschaften
eines selektierten
Objekts
• Im pinken Bereich
gibt es weitere Infor-
mationen z. B. LogCat.
Programmieren für mobile Endgeräte 11
Dozenten: Patrick Förster, Michael Hasseler
Neues Projekt mit Eclipse erstellen
Programmieren für mobile Endgeräte 12
Dozenten: Patrick Förster, Michael Hasseler
Applikations- und Paketnamen angeben
Programmieren für mobile Endgeräte 13
Dozenten: Patrick Förster, Michael Hasseler
Projekt konfigurieren
Programmieren für mobile Endgeräte 14
Dozenten: Patrick Förster, Michael Hasseler
Icon-Set konfigurieren
Programmieren für mobile Endgeräte 15
Dozenten: Patrick Förster, Michael Hasseler
Activity anlegen?
Programmieren für mobile Endgeräte 16
Dozenten: Patrick Förster, Michael Hasseler
Projekt erstellen
Programmieren für mobile Endgeräte 17
Dozenten: Patrick Förster, Michael Hasseler
Projektbaum des angelegten Android-Projekts
• Die Abbildung zeigt die generierten Dateien
• In Rot die wichtigsten Dateien für unser erstes Projekt
• Dateien im Ordner gen unverändert lassen z. B. R.java
Programmieren für mobile Endgeräte 18
Dozenten: Patrick Förster, Michael Hasseler
AndroidManifest.xml
• package enthält
den vergebenen
Paketnamen
• minSdkVersion
ist Version die zur
Ausführung der App
vorhanden sein muss
• targetSdkVersion
gibt die Version an
mit der die App
erstellt wurde
Programmieren für mobile Endgeräte 19
Dozenten: Patrick Förster, Michael Hasseler
strings.xml
• Im Ordner res/values liegt die strings.xml.
• Textinhalte aus der App werden in diese Datei aufgelistet:
• Key-value-Paare werden als Zugriffsart verwendet.
• Beispiel: Mit dem key app_name erhält man als value HelloWorld!.
Programmieren für mobile Endgeräte 20
Dozenten: Patrick Förster, Michael Hasseler
activity_main.xml
• Im Ordner res/layout liegt die Datei activity_main.xml:
• Die Anordnung der Bildschirmelemente wird in einer Layout-Datei festgelegt.
• Für jede Bildschirmseite sollte eine eigene Layout-Datei abgelegt werden.
• Der TextView wird ein Wert aus String.xml mit dem key hello_world zugewiesen.
Programmieren für mobile Endgeräte 21
Dozenten: Patrick Förster, Michael Hasseler
MainActivity.java
• Im Ordner src werden aus den Paketnamen Ordnerstrukturen angelegt.
• In diesen Ordnern werden die java-Dateien anhand ihres Paketnamens abgelegt.
Programmieren für mobile Endgeräte 22
Dozenten: Patrick Förster, Michael Hasseler
Einmalig Konfiguration auswählen
• Klicken Sie im Menü auf Run/Run Configurations
Programmieren für mobile Endgeräte 23
Dozenten: Patrick Förster, Michael Hasseler
Konfiguration erstellen
• Klicken Sie auf den Punkt Android Application.
Programmieren für mobile Endgeräte 24
Dozenten: Patrick Förster, Michael Hasseler
Projekt auswählen 1/2
• Klicken Sie auf die Registerkarte Target und dann auf den Button Browse.
Programmieren für mobile Endgeräte 25
Dozenten: Patrick Förster, Michael Hasseler
Projekt auswählen 2/2
Programmieren für mobile Endgeräte 26
Dozenten: Patrick Förster, Michael Hasseler
Target auswählen
Programmieren für mobile Endgeräte 27
Dozenten: Patrick Förster, Michael Hasseler
Projekt ausführen
• Klicken Sie im Menü auf Run/Run As/Android Application
Programmieren für mobile Endgeräte 28
Dozenten: Patrick Förster, Michael Hasseler
Emulator wird gestartet
Programmieren für mobile Endgeräte 29
Erst erscheint der linke Bildschirminhalt und dann der rechte.
Dozenten: Patrick Förster, Michael Hasseler
LogCat
• Das Werkzeug LogCat unterstützt bei der Überwachung der App.
• In einer Registerkarte LogCat werden die protokollierten Ausgaben angezeigt.
• Für ein Logausgabe muss die Klasse Log eingebunden werden:
import android.util.Log;
• Die Logausgabe erfolgt mit dem Befehl:
Log.d(“HelloWorldApp“, “Meldung“);
Programmieren für mobile Endgeräte 30
Quelle: vgl. Java für Android, Christian Bleske, Seite 71-73
Dozenten: Patrick Förster, Michael Hasseler
Zusammenfassung
• Was ist eine Web-App und was eine native App?
• Was ist Android und wie ist die Systemarchitektur aufgebaut?
• Sie sind in der Lage ein Android-Projekt unter Eclipse anzulegen.
• Sie kennen die wesentlichen Teile eines Android-Projektes.
• Sie können eine Konfiguration auswählen und ein Android-Projekt
ausführen.
• Sie können eine Logausgabe erzeugen.
Programmieren für mobile Endgeräte 31
Dozenten: Patrick Förster, Michael Hasseler
Aufgaben
• 1) Legen Sie das Android-Projekt HelloWorldApp an so wie es in den vorherigen
Folien beschrieben wurde.
• 2) Bauen Sie in der Methode OnCreate eine LogCat-Meldung ein und schauen Sie sich
die Meldung in der LogCat-Registerkarte nach der Ausführung der App an.
• 3) Ändern Sie die Ausgabe der App von „Hello World!“ in „Hallo Münster!“ um.
Programmieren für mobile Endgeräte 32
Dozenten: Patrick Förster, Michael Hasseler
Anhang: Schritte beim Einrichten der virtuellen Maschine
1. Oracle VM Virtual Box installieren (https://www.virtualbox.org/)
2. Ubuntu/Xubuntu-Image downloaden (http://xubuntu.org/)
3. VirtualBox starten -> „neu“ -> CD-Image einbinden -> von CD booten
4. Eclipse mit ADT-Bundle downloaden
(http://developer.android.com/sdk/index.html)
5. Eclipse starten und mit Android-Gerät konfigurieren
Programmieren für mobile Endgeräte 33