Teil I Augmented Learning - Vortragender: Krischan Udelhoven. Teil II Android - Vortragender: Folker Hoffmann

Ähnliche Dokumente
Naviki GPS-Anwendungsentwicklung für Mobiltelefone

Mobile Systeme Android

Android Apps. Mentoring SS 16. Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo

Einführung in die Android App-Entwicklung. Patrick Treyer und Jannis Pinter

Entwickeln für Android OS

Google Android API. User Interface. Eine knappe Einführung

Android GUI Entwicklung

Android-Apps weitere Möglichkeiten

Einführung in Android

Mobile App Development - Sensoren -

Android Mobile Systeme - Android

Accounts und Kontakte in Android

Gib dem Projekt (z.b.) den Namen MyApplication und klicke auf Next. Der Domain-Name ist beliebig.

Smartphone Entwicklung mit Android und Java

Android - In einer View zeichnen. Leibniz Universität IT Services Anja Aue

Programmiererfahrungen mit Android Senad Li ina

4. Software-Kompponenten in Android Broadcast Intents und Broadcast Receivers. Broadcast Intents

Aus einem (sehr) begrenzten Wertebereich (z.b. Zahlen von 1-5) soll ein Wert ausgewählt werden.

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS HSRM

Android Programmierung mit Java Studiengang MI

Android Programmierung mit Java Studiengang MI

Software-Entwicklung für Android und ios

Tutorial. Programmierung einer Android-Applikation. Teil 1

Android - Ressource. Leibniz Universität IT Services Anja Aue

Mobile App Development. - Grafische Oberflächen 2 -

2. GUI-Programmierung für mobile Geräte

Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook. 14. Januar 2015

Einführung in Android. 9. Dezember 2014

Seminar Multimediale Werkzeuge Sommersemester 2011

Android Entwicklung. MobileDevCamp Munich Markus Junginger. greenrobot_de

Informatik Sommercamp 2012

Handbuch für die Erweiterbarkeit

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

1 Der Einstieg in Java für Android

Übungen zur Android Entwicklung

Labor 1 : Hello, World

ANDROID. Grundbegriffe und Architektur. von Markku Lammerz für das Seminar Android: Plattform für mobile Geräte an der Universität Hamburg beim DKRZ

Mobile App Development. - Activities -

Graphical User Interfaces

Mobile App Development - Grafische Oberflächen 2 -

Java - Menü und Intent. Leibniz Universität IT Services Anja Aue

Überleben im Funkloch

2. GUI-Programmierung für mobile Geräte

JOGGA Der Jogging-Companion

Cocktail-Rezepte-APP

Android Entwicklung. App Entwickler Konferenz 2010 Bonn, 17. November Markus Junginger. Twitter:

Inhalt. 3 Kurzeinführung 15 Das Android-SDK installieren 15 Einen PATH zu den Werkzeugen einrichten 16 Eclipse installieren 16

Java - Programmierung für Android. Leibniz Universität IT Services Anja Aue

Android User Interface

5 Oberflächengestaltung

Einführung in Android (2) 16. Dezember 2014

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Funktionale und Objekt-Orientierte Programmierkonzepte

Java - Programmierung für Android. Leibniz Universität IT Services Anja Aue

Objektorientierte Programmierung Studiengang Medieninformatik

Programmiererfahrungen mit Android

Projektdokumentation. Erweiterte Realität am Fallbeispiel eines Smartphones

Android - Interaktion mit dem Benutzer. Leibniz Universität IT Services Anja Aue

Definition eigener Views

Bluewin TV meets Android

Definition eigener Views

Android Einführung Fragments Android Kurs Stufe 2 (Orangegurt)

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

Mobile App Development. - Einführung -

3 Objektorientierte Konzepte in Java

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Ein Großteil der zurzeit verbreiteten Android- Phones läuft noch unter einer älteren Version und stellt somit die Error-Reporting-Funktion

(1)Einführung in Eclipse

Mobile App Development - Multitasking -

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

Android Processes & Services

NFC Near Field Communication

Mobile App Development. - Alarm -

4. Software-Komponenten in Android

Softwarentwicklung für Android

Inhalt. Design patterns Kernbereiche Creational patterns Factory method Abstract Factory Builder Structural patterns Adapter Facade Decorator

MMI 2: Mobile Human- Computer Interaction Übung 5

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Technische Hochschule Georg Agricola WORKSHOP TEIL 2. Veranschaulichung des EVA-Prinzips

Android-Geräte Programmieren 4. Hinweise zur Android-Programmierung. Stefan Rothe

App Entwicklung für Android F O R T G E S C H R I T T E N E P R O G R A M M I E R U N G I N J A V A

App Entwicklung für Android Devices

Christian Meder inovex. Sauberes Grün QS für Android

Einstieg in die Informatik mit Java

MMI 2: Mobile Human- Computer Interaction Übung 2

Einführung in die Einführung in Android Anwendungsentwicklung

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

6 Oberflächen und Daten

Exceptions und Vererbung

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov

Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt

Softwareentwicklungsprozess im Praktikum. 25. April 2013

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

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Labor 2 : Hello, World Plus

Software Entwicklung 1. Das Android Framework zur Entwicklung von Apps. Bibliotheken Frameworks. Framework. Annette Bieniusa / Peter Zeller

8.6 Visualisierung der Sortieralgorithmen

Transkript:

Teil I Augmented Learning - Vortragender: Krischan Udelhoven Teil II Android - Vortragender: Folker Hoffmann

Inhalt 1.Warum Android? 2.Was ist Android? 3.Entwicklung mit Android 18. Januar 2010 Android 2/28

Warum Android? Ursprünglich: Adventure Anywhere erweitern Kein Source Code Angebot: Interfaces aber: Keine Zeit wegen EU Projekt 18. Januar 2010 Android 3/28

Warum Android? Deswegen Adventure Now! Lernspiel mit Lokalisierung Android Basis Eigener Editor 18. Januar 2010 Android 4/28

Android Betriebssystem für Smartphones Entwickelt von der Open Handset Alliance (Unter der Führung von Google) Open Source Veröffentlichung: Oktober 2008 Anwendungsentwicklung mit Java 18. Januar 2010 Android 5/28

Aufbau von Android Quelle: http://developer.android.com/images/system-architecture.jpg 18. Januar 2010 Android 6/28

Anwendungsentwicklung Activity Ressourcen GUI Intents Grafik Sound Lokalisierung Sensoren 18. Januar 2010 Android 7/28

Activity Fenster (meistens Fullscreen) 18. Januar 2010 Android 8/28

Activity Quelle: http://mobisynth.wordpress.com/2009/07/24/android-activity-lifecycle/ 18. Januar 2010 Android 9/28

Activity Ableiten von android.app.activity Oder: com.google.android.maps.mapactivity 1: public class MyActivity extends Activity { 2: public void oncreate(bundle savedinstancestate) { 3: super.oncreate(savedinstancestate); 4: setcontentview(r.layout.main) 5: } 6:} 18. Januar 2010 Android 10/28

Ressourcen Unterverzeichnis res/ Klasse R Enthält ID's Bsp.: R.layout.main Werden beim kompilieren in das Application Package kopiert 18. Januar 2010 Android 11/28

GUI Prozedurales Design (Java) Deklaratives Design (XML) Beispiel: (Prozedural) 1: public class MyActivity extends Activity { 2: private Button button; 3: private LinearLayout ll; 4: public void oncreate(bundle savedinstancestate) { 5: super.oncreate(savedinstancestate); 6: ll = new LinearLayout(this); 7: ll.setorientation(linearlayout.vertical); 8: button = new Button(this); 9: button.settext( Hier klicken ); 10: ll.addview(button); 11: setcontentview(ll); 12: }} 18. Januar 2010 Android 12/28

GUI Beispiel: (Deklarativ) res/layout/main.xml: 1: <?xml version="1.0" encoding="utf-8"?> 2: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3: android:orientation="vertical"> 4: <Button 5: android:id="@+id/mybutton" 6: android:text="hier klicken!" /> 7: </LinearLayout> 18. Januar 2010 Android 13/28

GUI Beispiel: (Deklarativ) 1: public class MyActivity extends Activity { 2: private Button button; 3: public void oncreate(bundle savedinstancestate) { 4: super.oncreate(savedinstancestate); 5: setcontentview(r.layout.main); 6: button = (Button) findviewbyid(r.id.mybutton); 7: } 8:} 18. Januar 2010 Android 14/28

Intents Activities werden vom Framework erstellt Indirektes Aufrufen über Intents Zwei Typen Explizite Intents Implizite Intents (konkrete Activity) (ruft Activity auf, die gewisse Anforderungen erfüllt) 18. Januar 2010 Android 15/28

Explizite Intents android.content.intent 1: public class MyActivity extends Activity { 2: private Button button; 3: public void oncreate(bundle savedinstancestate) { 4: //... Initialisation 5: button.setonclicklistener(new OnClickListener() { 6: public void onclick(view v) { 7: Intent i = new Intent(this, OtherActivity.class); 8: startactivity(i); 9: }}); 10: } 11:} 18. Januar 2010 Android 16/28

Grafik Wichtig für Spiele Erstellen einer Klasse, die von View erbt 1: public class MyActivity extends Activity { 2: public void oncreate(bundle savedinstancestate) { 3: super.oncreate(savedinstancestate); 4: setcontentview(new GraphicView(this)); 5: } 6: } 18. Januar 2010 Android 17/28

View 1: public class GraphicView extends View 2: public GraphicView(Context context) { 3: super(context); 4: } 5: @Override 6: protected void ondraw(canvas canvas) { 7: Paint mypaint = new Paint(); 8: mypaint.setcolor(color.red); 9: //drawrect(left, top, right, bottom) 9: canvas.drawrect(0,0, 100, 50 mypaint); 10: } 11: } Basisklasse für GUI Komponenten Von View leiten z.b. ab: Button, LinearLayout ondraw wird aufgerufen, wenn der View neu gezeichnet werden muss 18. Januar 2010 Android 18/28

Paint 1: public class GraphicView extends View 2: public GraphicView(Context context) { 3: super(context); 4: } 5: @Override 6: protected void ondraw(canvas canvas) { 7: Paint mypaint = new Paint(); 8: mypaint.setcolor(color.red); 9: //drawrect(left, top, right, bottom) 9: canvas.drawrect(0,0, 100, 50 mypaint); 10: } 11: } Enthält Parameter für den Zeichenvorgang z.b.: Farbe, Antialiasing an/aus 18. Januar 2010 Android 19/28

Canvas 1: public class GraphicView extends View 2: public GraphicView(Context context) { 3: super(context); 4: } 5: @Override 6: protected void ondraw(canvas canvas) { 7: Paint mypaint = new Paint(); 8: mypaint.setcolor(color.red); 9: //drawrect(left, top, right, bottom) 9: canvas.drawrect(0,0, 100, 50, mypaint); 10: } 11: } Zeichenfläche Enthält Funktionen zum Zeichnen Braucht paint Objekt Bsp.: drawrect drawbitmap drawtext 18. Januar 2010 Android 20/28

Grafik 18. Januar 2010 Android 21/28

Sound MediaPlayer Klasse Unterstützt u.a. WAV, MP3, OGG (Bild: www.musicgraphicsgalore.net) 18. Januar 2010 Android 22/28

Sound 1: public class MyActivity extends Activity { 2: MediaPlayer mp; 3: public void oncreate(bundle savedinstancestate) { 4: super.oncreate(savedinstancestate); 5: mp = MediaPlayer.create(this, R.raw.mysound); 6: mp.setlooping(true); 6: } 7: protected void onpause() { 8: mp.pause(); 9: } 10: protected void onresume() { 11: mp.start(); 12: } 18. Januar 2010 Android 23/28

Lokalisierung Eingebaute Unterstützung für GPS / Location LocationManager Interface LocationListener Callback Funktionen, z.b. onlocationchanged (Bild: Wikipedia) 18. Januar 2010 Android 24/28

Lokalisierung 1: public class MyActivity extends Activity implements LocationListener{ 2: private LocationManager lmgr; 3: private final long MIN_TIME = 1000; //in milliseconds 4: private final float MIN_DISTANCE = 1; //in meters 5: public void oncreate(bundle savedinstancestate) { 6: super.oncreate(savedinstancestate); 7: lmgr = (LocationManager) getsystemservice(context.location_service); 8: lmgr.requestlocationupdates(locationmanager.gps_provider, MIN_TIME, MIN_DISTANCE, this); 9: } 10: public void onlocationchanged(location location) { } 11: public void onproviderdisabled(string provider) { } 12: public void onproviderenabled(string provider) { } 13: public void onstatuschanged(string provider, int status, Bundle extras) { } 14: } 18. Januar 2010 Android 25/28

Sensoren Unterstützung für Sensoren Orientierung, Licht, Beschleunigung, Nähe, Druck, Temperatur SensorManager SensorEventListener 18. Januar 2010 Android 26/28

Bsp.: Orientation 1: class MyActivity extends Activity implements SensorEventListener { 2: private SensorManager mgr; 3: public void oncreate(bundle savedinstancestate) { 4: super.oncreate(savedinstancestate); 5: mgr = (SensorManager) getsystemservice(sensor_service); 6: mgr.registerlistener(this, Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_FASTEST); 7: } 8: public void onaccuracychanged(sensor sensor, int accuracy) {} 9: public void onsensorchanged(sensorevent event) { 10:... 11: } 12: } 18. Januar 2010 Android 27/28

Literatur Ed Burnette: Hello, Android, 2008 http://developer.android.com/ 18. Januar 2010 Android 28/28