Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile...

33
Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014

Transcript of Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile...

Page 1: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014

Page 2: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 3: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 4: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 5: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

Dozenten: Patrick Förster, Michael Hasseler

Marktanteil beim Absatz führender Betriebssysteme

Programmieren für mobile Endgeräte 5

Page 6: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 7: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 8: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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)

Page 9: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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)

Page 10: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 11: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 12: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

Dozenten: Patrick Förster, Michael Hasseler

Neues Projekt mit Eclipse erstellen

Programmieren für mobile Endgeräte 12

Page 13: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

Dozenten: Patrick Förster, Michael Hasseler

Applikations- und Paketnamen angeben

Programmieren für mobile Endgeräte 13

Page 14: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

Dozenten: Patrick Förster, Michael Hasseler

Projekt konfigurieren

Programmieren für mobile Endgeräte 14

Page 15: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

Dozenten: Patrick Förster, Michael Hasseler

Icon-Set konfigurieren

Programmieren für mobile Endgeräte 15

Page 16: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

Dozenten: Patrick Förster, Michael Hasseler

Activity anlegen?

Programmieren für mobile Endgeräte 16

Page 17: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

Dozenten: Patrick Förster, Michael Hasseler

Projekt erstellen

Programmieren für mobile Endgeräte 17

Page 18: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 19: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 20: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 21: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 22: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 23: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 24: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

Dozenten: Patrick Förster, Michael Hasseler

Konfiguration erstellen

• Klicken Sie auf den Punkt Android Application.

Programmieren für mobile Endgeräte 24

Page 25: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 26: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

Dozenten: Patrick Förster, Michael Hasseler

Projekt auswählen 2/2

Programmieren für mobile Endgeräte 26

Page 27: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

Dozenten: Patrick Förster, Michael Hasseler

Target auswählen

Programmieren für mobile Endgeräte 27

Page 28: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 29: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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.

Page 30: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 31: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 32: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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

Page 33: Programmieren für mobile Endgeräte · Emulator wird gestartet Programmieren für mobile Endgeräte 29 Erst erscheint der linke Bildschirminhalt und dann der rechte. Dozenten: Patrick

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