Mobile App Development - Sensoren -

Größe: px
Ab Seite anzeigen:

Download "Mobile App Development - Sensoren -"

Transkript

1 Mobile App Development - Sensoren -

2 Inhalt Sensoren Sensor Framework Bewegungssensoren Posi2onssensoren Umweltsensoren?????????? GPS??????????

3 Sensoren

4 Sensoren Was ist ein Sensor?

5 Sensoren Defini2on Sensor Ein Sensor ist ein technisches Bauteil, das eine physikalische Größe der Umwelt und ihre Änderungen in digitale Signale umwandelt.

6 Sensoren Android unterscheidet drei Kategorien von Sensoren: Bewegungssensoren Diese Sensoren messen KräKe die auf das Gerät wirken, z. B. Beschleunigung, Gravita2on und Drehung

7 Sensoren Posi2onssensoren Diese Sensoren messen die physikalische Posi2on des Gerätes, z. B. die Orien2erung Umweltsensoren Diese Sensoren messen Umwelt- parameter, wie Temperatur, Druck und LuKfeuch2gkeit

8 Sensoren Weiterhin wird zwischen zwei Arten von Sensoren unterschieden Hardware- basierte Sensoren SoKware- basierte Sensoren

9 Sensoren Hardware- basierte Sensoren greifen direkt auf physikalische Komponenten zu und erhalten Messwerte SoKware- basierte Sensoren erhalten ihre Daten von einem oder mehreren Hardware- Sensoren und imi2eren einen vorhandenen Sensor

10 Sensoren Sensor Koordinatensystem Einige Sensoren, die dreidimensionale Daten liefern, haben eine gemeinsames Koordinatensystem Das Koordinatensystem ist rela2v zur Standardorien2erung des Geräte ausgerichtet

11 Sensoren Sensor Koordinatensystem X- Achse horizontal und zeigt nach rechts Y- Achse ver2kal und zeigt nach oben Z- Achse Normale auf XY- Ebene und zeigt aus dem Display heraus Bildquelle:

12 Sensoren Beachten: Das SKS wird nicht gedreht, wenn sich die Orien2erung des Gerätes ändert. Es bleibt rela2v zur natürlichen Posi2on. Die natürliche Orien2erung verschiedener Geräte kann variieren, siehe Smartphone und Tablet. Bildquelle:

13 Sensor Framework

14 Sensor Framework Android stellt ein Sensor Framework zum Zugriff auf Sensoren bereit Das Sensor Framework ist eine Reihe von Klassen, um Sensoren zu verwalten, Listener zu registrieren und Sensorereig- nisse zu erhalten

15 Sensor Framework Das Sensor Framework besteht aus den Klassen SensorManager Sensor SensorEvent SensorEventListener

16 Sensor Framework SensorManager dient als System Service zum Zugriff auf Sensoren enthält Konstanten für die verschiedenen Sensortypen & Standardwerte Registrierung von SensorEventListener

17 Sensor Framework Sensor repräsen2ert einen Sensor enthält Methoden, um EigenschaKen des Sensors abzurufen Genauigkeit (Auflösung) Energieverbrauch Hersteller, Version,...

18 Sensor Framework SensorEvent repräsen2ert ein Sensorereignis enthält verschieden Informa2onen Sensor, der das Ereignis erzeugt hat Zeitstempel Messwert Genauigkeit des Ereignisses

19 Sensor Framework SensorEventListener wird verwendet, um sich als Listener für Sensor Änderung zu registrieren informiert über neue Sensor Werte Genauigkeitsänderungen

20 Sensor Framework Alle Sensoren auflisten public class SensorActivity extends ListActivity { public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // sensor service abrufen SensorManager mng = (SensorManager) getsystemservice(sensor_service); // Liste aller Sensoren abfragen List<Sensor> allsensors = mng.getsensorlist(sensor.type_all); } } // Sensoren in einer ListActivity darstellen ArrayAdapter<String> adapter = new ArrayAdapter<String>(!! this, android.r.layout.simple_list_item_1); for (Sensor sensor : allsensors) {! adapter.add(sensor.getname()); } setlistadapter(adapter);

21 Sensor Framework Um eine Referenz auf einen bes2mmten Sensor zu bekommen, wird der Methode getdefaultsensor() eine Typ- Konstante übergeben Die Methode gibt den Standardsensor für den angegebenen Typ zurück

22 Sensor Framework Einen bes2mmten Sensor abrufen public class ProximityActivity extends Activity! private SensorManager msensormng; private Sensor mproxsensor; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); } } // Instanz vom SensorManager abrufen msensormng = (SensorManager) getsystemservice(sensor_service); // Entfernungssensor abrufen mproxsensor = msensormng.getdefaultsensor(sensor.type_proximity); if (mproxsensor!= null) {! // SensorListener registrieren } else {! // Fehler: Kein Abstandssensor vorhanden }

23 Sensor Framework Mit dem SensorManager können SensorEventListener registriert werden, die bei neuen Sensor Events informiert werden Hinweis: Diese sollten auch wieder deregistriert werden, wenn sie nicht mehr gebraucht werden!

24 Sensor Framework SensorEventListener implemen2eren public class ProximityActivity extends Activity implements SensorEventListener public void onsensorchanged(sensorevent event) { // neuen Sensorwert verarbeiten!! Log.d(TAG, "Proximity is: " + event.values[0]);! public void onaccuracychanged(sensor sensor, int accuracy) { // auf Genauigkeitsänderungen reagieren!! switch (accuracy) {!!! case SensorManager.SENSOR_STATUS_ACCURACY_HIGH: { /*... */ }!!! case SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM: { /*... */ }!!! case SensorManager.SENSOR_STATUS_ACCURACY_LOW: { /*... */ }!!! case SensorManager.SENSOR_STATUS_UNRELIABLE: { /*... */ }!! }! } }

25 Sensor Framework SensorEventListener registrieren public class ProxActivity extends Activity implements SensorEventListener { private SensorManager msensormng; private Sensor mproxsensor;! public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // msensormng & mproxsensor } protected void onresume() {! super.onresume();! // SensorEventListener registrieren! if (mproxsensor!= null) {!! msensormng.registerlistener(this, mproxsensor,!!!! SensorManager.SENSOR_DELAY_UI);! } } protected void onpause() {! // SensorEventListener deregistrieren! msensormng.unregisterlistener(this);! super.onpause(); } }

26 Bewegungssensoren

27 Bewegungssensoren Android unterstützt verschiedene Arten von Bewegungssensoren Beschleunigungssensor Gravita2onssensor Gyroskop Rota2onsvektor

28 Bewegungssensoren Beschleunigungssensor... misst die BeschleunigungskräKe die auf ein Gerät wirken in drei Dimensionen Die Messwerte enthalten zusätzlich die BeschleunigungskräKe, die durch die Erdanziehung wirken Die Einheit der Werte ist m/s 2

29 Bewegungssensoren Beschleunigungssensor verwenden public class AccelerationActivity extends Activity {!! private SensorManager msensormng;! private Sensor public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_acceleration); } } // Referenz auf den SensorManger holen msensormng = (SensorManager) getsystemservice(sensor_service); // Referenz auf Beschleunigungssensor holen accelsensor = msensormng.getdefaultsensor(sensor.type_accelerometer);

30 Bewegungssensoren SensorEventListener (de)registrieren public class AccelerationActivity extends Activity!! implements SensorEventListener {! private SensorManager msensormng; private Sensor accelsensor; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); msensormng = (SensorManager) getsystemservice(sensor_service); accelsensor = msensormng.getdefaultsensor(sensor.type_accelerometer); } protected void onresume() {! super.onresume(); if (accelsensor!= null) {! msensormng.registerlistener(this, accelsensor,!!!!!!!!!! SensorManager.SENSOR_DELAY_UI); } } } protected void onpause() {! msensormng.unregisterlistener(this);! super.onpause(); }

31 Bewegungssensoren Beschleunigungswerte auslesen public class AccelerationActivity extends Activity!! implements SensorEventListener {! private float[] gravity = new float[]{1, 1, 1};! private float[] linear_acceleration = new float[]{0, 0, 0};! public void onsensorchanged(final SensorEvent event) { Log.d(TAG, "Acceleration(x,y,z): " + event.values[0] + " " +!!!! event.values[1] + " " + event.values[2]);! }! public void onaccuracychanged(sensor sensor, int accuracy) { /*...*/ } }

32 Bewegungssensoren Problem: Beschleunigungswerte enthalten die Erdbeschleunigung Was heißt das? Beispiele: Gerät liegt mit Display nach oben auf dem Tisch, x? y? z? Gerät steht auf der linken Seite, x?, y?, z? Gerät steht auf dem Kopf, x?, y?, z?

33 Bewegungssensoren Gravita2on filtern public class AccelerationActivity extends Activity!! implements SensorEventListener {! private float[] gravity = new float[]{1, 1, 1};! private float[] linear_acceleration = new float[]{0, 0, 0};! public void onsensorchanged(final SensorEvent event) {!! final float alpha = 0.8f;!! // lowpass filter!! gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];!! gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];!! gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];!! // highpass filter!! linear_acceleration[0] = event.values[0] - gravity[0];!! linear_acceleration[1] = event.values[1] - gravity[1];!! linear_acceleration[2] = event.values[2] - gravity[2];! }! public void onaccuracychanged(sensor sensor, int accuracy) { /*...*/ } }

34 Bewegungssensoren Wofür kann der Beschleunigungssensor verwendet werden? Bewegungserfassung: Schlafphasenwecker Don t touch my Droid Seismograph App Gestenerkennung: z. B. Shake

35 Bewegungssensoren Linearer Beschleunigungssensor Der lineare Beschleunigungssensor liefert die Beschleunigung des Gerätes in drei Dimensionen Im Gegensatz zum normalen Beschleunigungssensor ist die Gravita2on bereits rausgerechnet

36 Bewegungssensoren Linearen Beschleunigungssensor verwenden public class LinAccelActivity extends Activity!! implements SensorEventListener {! protected void oncreate(bundle savedinstancestate) {!! super.oncreate(savedinstancestate);!!!! msensormng = (SensorManager) getsystemservice(sensor_service);!! mgravitysensor = msensormng!!!.getdefaultsensor(sensor.type_linear_acceleration);! }! // SensorListener in onresume()/onpause() registrieren/deregistrieren! public void onsensorchanged(sensorevent event) {!! Log.d(TAG, "Linear Acceleration = " + event.values[0] + " " +!!!! event.values[1] + " " + event.values[2]);!!! }! public void onaccuracychanged(sensor sensor, int accuracy) { /*... */ } }

37 Bewegungssensoren Gravita2onssensor erzeugt einen dreidimensionalen Vektor, der die Richtung der Gravita2on angibt Der Vektor ist rela2v zum Geräte- Koordinatensystem Die verwendeten Einheiten sind wie beim Beschleunigungssensor m/s 2

38 Bewegungssensoren Wo liegt der Unterschied zwischen Gravita2ons- und Beschleunigungssensor?

39 Bewegungssensoren Wo liegt der Unterschied zwischen Gravita2ons- und Beschleunigungssensor? Der Beschleunigungssensor misst alle BeschleunigungskräKe, die auf das Geräte wirken Der Gravita2onssensor zeigt nur die Richtung der Gravita2on an

40 Bewegungssensoren Den Gravita2onssensor verwenden public class GravityActivity extends Activity implements SensorEventListener {! private SensorManager msensormng;! private Sensor mgravitysensor;!! protected void oncreate(bundle savedinstancestate) {!! super.oncreate(savedinstancestate);!! msensormng = (SensorManager) getsystemservice(sensor_service);!! mgravitysensor = msensormng.getdefaultsensor(sensor.type_gravity);! }!! // SensorListener in onresume() registrieren und onpause() deregistrieren! public void onsensorchanged(sensorevent event) {!! Log.d(TAG, "Gravity(x,y,z) = " + event.values[0] + " " +!!!! event.values[1] + " " + event.values[2]);! }! public void onaccuracychanged(sensor sensor, int accuracy) { /*... */ } }

41 Bewegungssensoren Gyroskop Das Gyroskop misst die Rota2ons- geschwindigkeit um die Achsen x, y und z Referenz ist das Geräte- KOS Die Rota2on wird in rad/s gemessen... und ist gegen den UZS posi2v

42 Bewegungssensoren Gyroskop verwenden public class GyroActivity extends Activity implements SensorEventListener {! private SensorManager msensormng;! private Sensor mgyrosensor;! protected void oncreate(bundle savedinstancestate) {!! super.oncreate(savedinstancestate);!! msensormng = (SensorManager) getsystemservice(sensor_service);!! mgyrosensor = msensormng.getdefaultsensor(sensor.type_gyroscope);! }! // SensorListener in onresume()/onpause() registrieren/deregistrieren! public void onsensorchanged(sensorevent event) {!! Log.d(TAG, "Gyro(x,y,z) = " + event.values[0] + " "!!!! + event.values[1] + " " + event.values[2]);! }! public void onaccuracychanged(sensor sensor, int accuracy) { /*... */ } }

43 Bewegungssensoren Verwendung von Gyroskopen Segway Balancierung Gestenerkennung, speziell Drehungen Naviga2on: Richtungsänderung Kamera: Bildstabilisator

44 Bewegungssensoren Rota2onsvektor Der Rota2onsvektorsensor erzeugt als Messwert einen 3- dimensionalen Vektor, der die Orien2erung des Gerätes rela2v zum Weltkoordinatensystem angibt Die Vektorelemente sind einheitslos

45 Bewegungssensoren Das Koordinatensystem X: Vektorprodukt von Y x Z, tangen2al zur Erdoberfläche Y: zeigt zum geomagne2schen Nordpol, tangen2al zur Erdoberfläche Z: zeigt in den Himmel, steht senkrecht auf der Erdoberfläche Bildquelle:

46 Bewegungssensoren Rota2onsvektorsensor nutzen public class RotationActivity extends Activity implements SensorEventListener {! private SensorManager msensormanager; private Sensor mrotationsensor; private final float[] mrotationmatrix = new float[16]; } protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // Instanz von SensorManageer und rotation sensor holen msensormanager = (SensorManager)getSystemService(SENSOR_SERVICE); mrotationsensor = msensormanager.getdefaultsensor( Sensor.TYPE_ROTATION_VECTOR); } public void onsensorchanged(sensorevent event) { // Erzeugung einer Rotationsmatrix aus dem Rotationsvektor SensorManager.getRotationMatrixFromVector( mrotationmatrix, event.values); // Rotationsmatrix verwenden, um z. B. einen Würfel zu drehen } public void onaccuracychanged(sensor sensor, int accuracy) { }

47 Bewegungssensoren Rota2onsvektorsensor nutzen siehe Live Präsenta2on

48 Posi<onssensoren

49 Posi<onssensoren Enkernungssensor (Proximity Sensor) misst, wie weit ein Objekt vom mobilen Gerät enkernt ist wird i.d.r. verwendet, um zu messen, wie weit der Kopf vom Telefon enkernt ist gibt die Enkernung in cm an, oder binäre Angaben, wie nah oder fern

50 Posi<onssensoren Enkernungssensor verwenden public class ProximityActivity extends Activity!! implements SensorEventListener {! private SensorManager msensormng;! private Sensor mproxsensor;! public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); msensormng = (SensorManager) getsystemservice(sensor_service); mproxsensor = msensormng.getdefaultsensor(sensor.type_proximity); }!! // SensorEventListener in onresume() und onpause() (de)registrieren!! public void onsensorchanged(sensorevent event) {!! Log.d(TAG, "Proximity: " + event.values[0]);! } }

51 Posi<onssensoren Magnekeldsensor misst die Stärke des Erdmagnekeldes in drei Dimensionen Der Sensor produziert Werte in µt (magne2sche Flussdichte) Normalerweise wird der Sensor nicht direkt verwendet, sondern dient als Basis für SoKwaresensoren

52 Posi<onssensoren Magnekeldsensor verwenden public class MagneticActivity extends Activity!! implements SensorEventListener {! private SensorManager msensormng;! private Sensor mmagneticsensor;! public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); msensormng = (SensorManager) getsystemservice(sensor_service); mmagneticsensor = msensormng.getdefaultsensor(!!! Sensor.TYPE_MAGNETIC_FIELD); }!! // SensorEventListener in onresume() und onpause() (de)registrieren!! public void onsensorchanged(sensorevent event) {!!! Log.d(TAG, "Magnetic Field = " + event.values[0] + " " +!!!! event.values[1] + " " + event.values[2]);! } }

53 Posi<onssensoren Orien2erungssensor... misst die Orien2erung des Gerätes rela2v zum Weltkoordinatensystem SoKwaresensor, der den Magnekeld- Sensor und den Beschleunigungssensor verwendet Messwerte sind Azimuth, Pitch und Roll (Einheit ist )

54 Posi<onssensoren Azimuth (Yaw), Pitch, Roll Bildquelle:

55 Posi<onssensoren Azimuth: Rota2on um die z- Achse Winkel zwischen der y- Achse des Gerätes und magne2schem Nordpol Beispiel: Richtung der y-achse Wert Nord 0 Süd 180 Ost 90 West 270

56 Posi<onssensoren Pitch: Rota2on um die x- Achse Vorwärtsneigung des Gerätes Wertebereich:

57 Posi<onssensoren 0-90 Roll: Rota2on um die y- Achse seitliche Rota2on des Gerätes Wertebereich:

58 Posi<onssensoren Orien2erungssensor verwenden public class OrientationActivity extends Activity!! implements SensorEventListener {! private SensorManager msensormng; private Sensor orientationsensor; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); msensormng = (SensorManager) getsystemservice(sensor_service); orientationsensor = msensormng.getdefaultsensor(sensor.type_orientation); } // Listener in onresume()/onpause() registrieren/deregistrieren public void onsensorchanged(sensorevent event) {!! Log.d(TAG, String.format("Azimuth=%.2f, Pitch=%.2f, Roll=%.2f",!!!! event.values[0], event.values[1], event.values[2])); } public void onaccuracychanged(sensor sensor, int accuracy) { /*... */ } }

59 Posi<onssensoren Seit Android 2.2 ist der Orien2erungssensor deprecated Es sollten daher die SensorManager- Methoden getrotationmatrix() und getorientation() verwendet werden

60 Posi<onssensoren Vorgehensweise: Registrierung eines Listeners für den Beschleunigungs- und Magnekeldsensor SensorEvent- Werte zwischenspeichern getrotationmatrix() mit den gespeicherten Werten aufrufen und Rota2onsmatrix erhalten

61 Posi<onssensoren Vorgehensweise: eigenen Vektor ini2alisieren Vektor mit getorientation() ausrichten Vektorelemente sind im Gegensatz zum Orien2erungssensor in rad und nicht in

62 Posi<onssensoren public class Orientation2Activity extends Activity!! implements SensorEventListener {!! // Zwischenspeicher für Magnetfeldwerte! private float[] mmagneticfield = new float[]{0, 0, 0};! // Zwischenspeicher für Beschleunigungswerte! private float[] macceleration = new float[]{0, 0, 0};!! public void onsensorchanged(sensorevent event) {!! switch (event.sensor.gettype()) {!!! case Sensor.TYPE_ACCELEROMETER: {!!!! // Beschleunigungswerte kopieren!!!! macceleration = event.values.clone(); break;!!! }!!! case Sensor.TYPE_MAGNETIC_FIELD: {!!!! // Magnetfeldwerte kopieren!!!! mmagneticfield = event.values.clone(); break;!!! }!! }!! //... Rotationsmatrix und Orientierungsvektor erzeugen!!! } }

63 Posi<onssensoren public class Orientation2Activity extends Activity!! implements SensorEventListener {!! public void onsensorchanged(sensorevent event) {!! //... Sensorwerte zwischenspeichern!! float[] rotation = new float[9]; // Ziel-Array für Rotationsmatrix!! // Rotationsmatrix erzeugen!! boolean success = SensorManager.getRotationMatrix(!!!! rotation, null, macceleration, mmagneticfield);!! if (success) {!!! float[] vector = new float[3]; // Orientierungsvektor!!! // Vektor aus Rotationsmatrix erzeugen!!! SensorManager.getOrientation(rotation, vector);!!!!!!! Log.d(TAG, String.format("Orientierung: %.2f %.2f %.2f",!!!!! Math.toDegrees(vector[0]),!!!!! Math.toDegrees(vector[1]),!!!!! Math.toDegrees(vector[2])));!! }! } }

64 Umweltsensoren

65 Umweltsensoren Android unterstütz verschiedene Sensoren, mit denen sich physikalische Größen aus der Umwelt messen lassen Temperatur Licht LuKdruck LuKfeuch2gkeit

66 Umweltsensoren Die Registrierung und Deregistrierung von SensorEventListenern erfolgt ebenso wie bei Posi2ons- und Bewegungssensoren Die Messwerte sind im Gegensatz zu Posi2ons- und Bewegungssensoren eindimensional

67 Umweltsensoren Sensorwerte Sensor Eiheit Daten AMBIENT_TEMPERATURE C Lufttemperatur LIGHT lx Lichtstärke PRESSURE mbar Luftdruck RELATIVE_HUMIDITY % Luftfeuchtigkeit

68 GPS und Maps

69 GPS und Maps GPS Informa2onen können über den Loca2onManager ausgelesen werden Um die Standor2nforma2onen nutzen zu können wird die folgende Berech2gung benö2gt <uses-permission android:name=!! "android.permission.access_fine_location" />

70 GPS und Maps Loca2onManager verwenden public class LocationActivity extends Activity {! private LocationManager locationmng;! private LocationProvider gpsprovider;! protected void oncreate(bundle savedinstancestate) {!! super.oncreate(savedinstancestate);!! setcontentview(r.layout.activity_location);!!!! // LocationManger abrufen!! locationmng = (LocationManager) getsystemservice(location_service);!! // Location Provider für GPS holen!! gpsprovider = locationmng.getprovider(locationmanager.gps_provider);!! // Prüfen, ob GPS eingeschaltet ist!! if (! locationmng.isproviderenabled(locationmanager.gps_provider)) {!!! startlocationsettings();!! } else {!!! // Benutzer informieren, dass er GPS einschalten soll!! }! } }

71 GPS und Maps Loca2onListener registrieren public class LocationActivity extends Activity {! private LocationManager locationmng;! private LocationProvider gpsprovider;! protected void oncreate(bundle savedinstancestate) {!! super.oncreate(savedinstancestate);!! setcontentview(r.layout.activity_location);!!!! // LocationManger abrufen, GPSProvider setzen, Verfügbarkeit prüfen!! //...!!!! // Listener für location updates registrieren!! locationmng.requestlocationupdates(locationmanager.gps_provider,!!!! 1, // mimimale Zeitspanne zwischen zwei updates!!!! 1, // mimimale Distanz zwischen zwei updates!!!! new MyLocationListener());! } }

72 GPS und Maps Loca2onListener implemen2eren private class MyLocationListener implements LocationListener {! // Wird aufgerufen, wenn es neue Positionsinformationen public void onlocationchanged(location loc) {!! Log.d(TAG, "Position: " + loc.getlatitude() + " " +!!!!! loc.getlongitude() + " " + loc.getaltitude());! }! // auf Sensoränderungen public void onproviderdisabled(string provider) public void onproviderenabled(string provider) public void onstatuschanged(!!! String provider, int status, Bundle extras) {}!! }

73 GPS und Maps Maps API Die Maps API ermöglicht die Darstellung von Google Maps in der eigenen App Sie wird über die Google APIs bereitgestellt Um die Google APIs zu verwenden, müssen die Projekteinstellungen und das Manifest angepasst werden

74 GPS und Maps Google APIs verwenden

75 GPS und Maps Manifest Anpassung <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="de.htwds.emrolab.mada.sensors" android:versioncode="1" android:versionname="1.0" > <uses-permission!!!!!!!!! android:name="android.permission.access_fine_location" /> <application android:allowbackup="true" <uses-library android:name="com.google.android.maps" />! </application> </manifest>

76 GPS und Maps Die Google API enthält eine MapView, die die eigentliche Map darstellt Um die MapView verwenden zu können wird ein API Key benö2gt Wie der API Key erstellt wird, kann nachgelesen werden unter: hsps://developers.google.com/maps/ documenta2on/android/v1/mapkey

77 GPS und Maps MapView Layout Eintrag <RelativeLayout xmlns:android="..." xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".locationactivity" > <com.google.android.maps.mapview xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apikey=" --- hier kommt der API Key rein ---" android:clickable="true" > </com.google.android.maps.mapview> </RelativeLayout>

78 GPS und Maps MapView Implemen2erung public class LocationActivity extends MapActivity protected void oncreate(bundle savedinstancestate) {!! super.oncreate(savedinstancestate);!! setcontentview(r.layout.activity_location);!!!! // Referenz auf die MapView holen!! MapView view = (MapView) findviewbyid(r.id.mapview);!! // Zoom Level und andere Eigenschaften setzen!! view.getcontroller().setzoom(12);!! view.getcontroller().setcenter(new GeoPoint( , ));!! // Eigene Overlays hinzufügen!! view.getoverlays().add(new MyOverlay());!! //.. geopoint mit location Informationen aktualisieren! } }

79 GPS und Maps Eigene Overlays private class MyOverlay extends Overlay public void draw(canvas canvas,!! MapView mapview, boolean shadow) {!! super.draw(canvas, mapview, shadow);!!!!!! Point point = new Point();!! mapview.getprojection()!!!.topixels(geopoint, point);!! Paint paint = new Paint();!! paint.setcolor(color.red);!! canvas.drawcircle(point.x, point.y,!!! 20, paint);! } }

80 Literatur I. Mark L. Murphy: The Busy Coder s Guide To Android Development, Version 4.3, 2012 II. Thomas Künneth: Android 3 - Apps entwickeln mit dem Android SDK Galileo Press, 2011 III. sensors/index.html

Android-Apps weitere Möglichkeiten

Android-Apps weitere Möglichkeiten Android-Apps weitere Möglichkeiten 2/20 weitere Möglichkeiten Speichern in der Sandbox OnTouchListener Senden und Empfangen von SMS Anbindung von Datenbanken Der Beschleunigungssensor Übung 3/20 Speichern

Mehr

Software-Entwicklung für Android und ios

Software-Entwicklung für Android und ios Software-Entwicklung für Android und ios Teil 5: Sensoren Typen von Sensoren Zweck Beispiele Hardware-Sensoren Ermitteln tatsächliche Werte Accelerometer, Magnetometer, Gyroskop, Barometer, Näherungssensor,

Mehr

Mobile Systeme Android 07.04.2011

Mobile Systeme Android 07.04.2011 Mobile Systeme Android 07.04.2011 Android Plattform/Betriebssystem für mobile Endgeräte wie z.b. Smartphones Basiert auf dem Linux Kernel Bis auf grundlegende Prozesse werden alle Anwenden mithilfe einer

Mehr

Android GUI Entwicklung

Android GUI Entwicklung Android GUI Entwicklung Aktuelle Technologien verteilter Java Anwendungen Referent: Stefan Haupt Hello World! Agenda Einführung & Motivation Android Applikationen UI-Komponenten Events Ressourcen Kommunikation

Mehr

Mobile App Development. - Grafische Oberflächen 2 -

Mobile App Development. - Grafische Oberflächen 2 - Mobile App Development - Grafische Oberflächen 2 - Inhalt Dimensionen Layouting Menüs Activities starten Übung Dimensionen Dimensionen Analog zu Strings und Farben können Dimensionen definiert werden Dimensionen

Mehr

Mobile App Development. - Activities -

Mobile App Development. - Activities - Mobile App Development - Activities - Inhalt Activity Lifecycle Erstellen Starten & Stoppen Spezielle Activities Ac3vi3es Ac3vi3es Definition Eine Aktivität repräsentiert eine Interaktion mit einem Benutzer

Mehr

Android. 2 24.09.2013 Mobile Systeme - Android

Android. 2 24.09.2013 Mobile Systeme - Android Android 24.09.2013 Android Plattform/Betriebssystem für mobile Endgeräte wie z.b. Smartphones Basiert auf dem Linux Kernel Bis auf grundlegende Prozesse werden alle Anwenden mithilfe einer speziellen JVM

Mehr

Einführung in Android

Einführung in Android Einführung in Android FH Gießen Friedberg 12. Oktober 2010 Inhalt Historie / Prognosen / Trends Grundlagen Entwicklungsumgebung Standardbeispiel Erweitertes Beispiel Übung / Quellen 2 Grundlagen - Historie

Mehr

Mobile App Development. - Alarm -

Mobile App Development. - Alarm - Mobile App Development - Alarm - Inhalt Alarme AlarmManger Wake locks 2 Alarm Alarm Oft ist es notwendig eine App zu starten, auch wenn der Benutzer nicht mit ihr interagiert Starten von Activities zu

Mehr

Entwickeln für Android OS

Entwickeln für Android OS Entwickeln für Android OS Am Beispiel der WAPLA Wissenschaftliche Arbeitstechniken und Präsentation Lern Applikation Christian Kain Kevin Kain Wolfgang Kremser Gregor Bankhamer Warum Android? Verbreitung

Mehr

Mobile App Development. - Einführung -

Mobile App Development. - Einführung - 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 ca. 10 Wochen

Mehr

Tutorial. Programmierung einer Android-Applikation. Teil 1

Tutorial. Programmierung einer Android-Applikation. Teil 1 Tutorial Programmierung einer Android-Applikation Teil 1 Autor: Oliver Matle Datum: März 2014, Version 1.0 Autor: Oliver Matle, www.matletarium.de Seite 1 von 28 Inhaltsverzeichnis Kapitel 1 Einleitung...3

Mehr

Überleben im Funkloch

Überleben im Funkloch Überleben im Funkloch Offlinefähige Apps für Android entwickeln Christian Janz (@c_janz ) christian.janz@bridging-it.de Christian Janz Consultant im Bereich Softwareentwicklung Java/JEE bei Bridging IT

Mehr

JOGGA Der Jogging-Companion

JOGGA Der Jogging-Companion JOGGA Der Jogging-Companion GLIEDERUNG: (1) Idee (2) Funktionen (3) Codebeispiele IDEE: Jeder Jogger kennt das Problem: Man rafft sich auf um eine Runde zu laufen, schwitzt während dessen ohne Ende und

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM ÜBERSICHT Android Android Dalvik Virtuelle Maschine Android und Desktop Applikationen Android Entwicklung Tools R Activity

Mehr

Einführung in Android. 9. Dezember 2014

Einführung in Android. 9. Dezember 2014 Einführung in Android 9. Dezember 2014 Was ist Android? Software für mobile Geräte: Betriebssystem Middleware Kernanwendungen Android SDK: Tools und APIs zur Entwicklung von Anwendungen auf der Android-Plattform

Mehr

Informatik Sommercamp 2012

Informatik Sommercamp 2012 Informatik Sommercamp 2012 App Entwicklung mit dem Android SDK Dominik W., Stefan S., Jan L. Fakultät für Informatik und Mathematik Universität Passau 23.07.2012 Gliederung 1 2 3 4 Warum? an Schule und

Mehr

Projektdokumentation. Erweiterte Realität am Fallbeispiel eines Smartphones

Projektdokumentation. Erweiterte Realität am Fallbeispiel eines Smartphones Projektdokumentation Hochschule Fulda Wintersemester 2010/2011 Inhaltsverzeichnis 1. Einleitung 2 2. Vorbereitung 3 2.1 Augmented Reality 3 2.3 Einarbeitung in die Entwicklungsumgebung von Android 5 5

Mehr

NFC Near Field Communication 30.04.2013

NFC Near Field Communication 30.04.2013 NFC Near Field Communication 30.04.2013 NFC Near Field Communication Standard für kontaktlose Kommunikation auf Basis von RFID (radiofrequency identification) Fast Verschiedene RFID-Standards im 13,56

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

1 Der Einstieg in Java für Android

1 Der Einstieg in Java für Android 1 1 Der Einstieg in Java für Android Diese Ergänzung zum Buch Programmieren in Java will Ihnen dabei helfen, erste Programme für Smartphones der Android Plattform von Google zu erstellen und diese Programme

Mehr

Android + Arduino Hardware steuern mit Android. Entwicklertag Karlsruhe, 09.05.2012 Sebastian Wastl

Android + Arduino Hardware steuern mit Android. Entwicklertag Karlsruhe, 09.05.2012 Sebastian Wastl Android + Arduino Hardware steuern mit Android Entwicklertag Karlsruhe, 09.05.2012 Sebastian Wastl Arduino Opensourceprojekt Auf Basis eines 8-Bit Mikrocontroller (ATMEL ATmega) Modular aufgebaut Erweiterbar

Mehr

Einführung in die Einführung in Android Anwendungsentwicklung

Einführung in die Einführung in Android Anwendungsentwicklung Einführung in die Einführung in Android Anwendungsentwicklung FH Gießen Friedberg 27. Oktober 2010 Inhalt Was bisher geschah / Prognosen Grundlagen Entwicklungsumgebung Beispiel: Notensammler Intents und

Mehr

Android-Apps ein komplexes Beispiel (Google-Maps und GPS-Daten, Listen, SD-Kartenzugriff, Activities mit Rückgabewerten und Web-Browser/Internet)

Android-Apps ein komplexes Beispiel (Google-Maps und GPS-Daten, Listen, SD-Kartenzugriff, Activities mit Rückgabewerten und Web-Browser/Internet) Android-Apps ein komplexes Beispiel (Google-Maps und GPS-Daten, Listen, SD-Kartenzugriff, Activities mit Rückgabewerten und Web-Browser/Internet) 2/42 Android Apps: ein komplexes Beispiel Gliederung Vorstellung

Mehr

Mobile App Development. - Einführung -

Mobile App Development. - Einführung - 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

Mehr

Android Entwicklung. App Entwickler Konferenz 2010 Bonn, 17. November Markus Junginger. Twitter: #app2010 @greenrobot_de

Android Entwicklung. App Entwickler Konferenz 2010 Bonn, 17. November Markus Junginger. Twitter: #app2010 @greenrobot_de Android Entwicklung App Entwickler Konferenz 2010 Bonn, 17. November Markus Junginger Twitter: #app2010 @greenrobot_de Über mich Markus Junginger, greenrobot 2007: Erste Android App 2001: Erstes Mobile

Mehr

1 Ein erstes Beispiel

1 Ein erstes Beispiel 3 1 Ein erstes Beispiel In diesem Abschnitt werden wir ein erstes Android-Programm erstellen. Es dient dem schnellen Einstieg in die Programmierung von Android. Dabei handelt es sich um ein Programm zur

Mehr

Android Settings Dialog Android Kurs Stufe 2 (Orangegurt)

Android Settings Dialog Android Kurs Stufe 2 (Orangegurt) Android Kurs Stufe 2 (Orangegurt) Inhaltsverzeichnis 1 Settings Dialog... 2 2 Der Grundgedanke... 2 3 Das erste Beispiel... 3 3.1 Das Layout der MainActivity... 3 3.2 Die Settings Activity... 3 3.3 Das

Mehr

Mobile App Development

Mobile App Development 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

Mehr

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

2. GUI-Programmierung für mobile Geräte 2. GUI-Programmierung für mobile Geräte Lernziele 2. GUI-Programmierung für mobile Geräte Themen/Lernziele: Einführung Lebenszyklus einer Android-Anwendung Beispiele GUI-Elemente Einbindung externer Ressourcen

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

APPS FÜR ANDROID ENTWICKELN

APPS FÜR ANDROID ENTWICKELN jan TITTEL jochen BAUMANN ELL N H C S IEG T S N I E APPS FÜR ANDROID ENTWICKELN AM BEISPIEL EINER REALEN APP Inhalt 1 Einführung.............................................. 1 1.1 Die Android-Plattform.................................................

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Android Applikation zur Information von Patienten am Klinikum Großhadern. Bachelorarbeit. Andreas Maximilian Bachmayer

Android Applikation zur Information von Patienten am Klinikum Großhadern. Bachelorarbeit. Andreas Maximilian Bachmayer Android Applikation zur Information von Patienten am Klinikum Großhadern Bachelorarbeit von Andreas Maximilian Bachmayer München Hochschule München Fakultät Feinwerk- und Mikrotechnik, Physikalische Technik

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Dr. Holger Eichelberger

Dr. Holger Eichelberger SchülerInnen-Uni 2015 Dr. Holger Eichelberger eichelberger@sse.uni-hildesheim.de Inhalt 1. Wer ist das? 1 2. Was ist ein Smartphone? 3 3. Wie entwickelt man für Smartphones? 7 4. Wie bauen wir die App?

Mehr

Softwarentwicklung für Android

Softwarentwicklung für Android Softwarentwicklung für Android Fachseminar Wintersemester 2008/09 Matrikelnummer.: 253631-1 - Inhaltsverzeichnis 1 Vorwort... 3 2 Vorraussetzungen zum Entwickeln von Android Anwendungen... 4 2.1 Standard

Mehr

Mobile Informationssysteme II

Mobile Informationssysteme II Mobile Informationssysteme II Peter Becker Hochschule Bonn-Rhein-Sieg Fachbereich Informatik peter.becker@h-brs.de Vorlesung Wintersemester 2010/11 Allgemeines zur Vorlesung Vorbemerkungen Homepage zur

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Beispiel droidremoteppt

Beispiel droidremoteppt Arthur Zaczek Nov 2014 1 Beispiel droidremoteppt 1.1 Beschreibung Powerpoint soll mit ein Android Handy über Bluetooth gesteuert werden Folien wechseln (Vor/Zurück) Folien am Handy darstellen Am Handy

Mehr

Bluewin TV meets Android

Bluewin TV meets Android FHNW Android Day 2008 Bluewin TV meets Android Reto Grob Dominik Hiltbrunner Andreas Marx Joe Scheidegger Kurzvorstellung Swisscom Innovations & Strategy 2 Strategy & Innovation sind 150 Personen Im Fokus

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Android-Apps Google-Maps v2

Android-Apps Google-Maps v2 Android-Apps Google-Maps v2 2/20 Die einfachste Map-App entwickeln Achtung! Die seit März 2013 alleinig gültige Google Maps Android API v2 ist nicht kompatible mit der Vorgängerversion. Auch die alten

Mehr

Seminar Multimediale Werkzeuge Sommersemester 2011

Seminar Multimediale Werkzeuge Sommersemester 2011 Seminar Multimediale Werkzeuge Sommersemester 2011 Dipl.-Ing. Marco Niehaus marco.niehaus@tu-ilmenau.de 09.06.2011 Page 1 Android Development - Installation Java SDK wird benötigt (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Universität Koblenz-Landau Campus Koblenz Fachbereich 4 Institute for Web Science and Technologies. Bachelorarbeit

Universität Koblenz-Landau Campus Koblenz Fachbereich 4 Institute for Web Science and Technologies. Bachelorarbeit Universität Koblenz-Landau Campus Koblenz Fachbereich 4 Institute for Web Science and Technologies Bachelorarbeit Bewegungserkennung mit Smartphones mittels deren Sensoren von Sven Milker B.Sc. Informationsmanagement

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Mobile Anwendungen mit Qooxdoo Mobile erstellen

Mobile Anwendungen mit Qooxdoo Mobile erstellen Mobile Anwendungen mit Qooxdoo Mobile erstellen Von Thomas Kestler, elevato GmbH 28.11.2012 Einleitung...2 Voraussetzungen für Qooxdoo...2 Rahmenanwendung...3 Anlegen der Qoodoo-Anwendung...3 Stolperdrähte...6

Mehr

Geldautomaten-App. ÄNDERUNGSDATUM Thu May 31 2012 ERSTELLER Team "UI Konzeption" (Michael Schultes, Andreas Zeitler)

Geldautomaten-App. ÄNDERUNGSDATUM Thu May 31 2012 ERSTELLER Team UI Konzeption (Michael Schultes, Andreas Zeitler) -App ÄNDERUNGSDATUM ERSTELLER DATEINAME geldautomaten-app BESCHREIBUNG Screen-Mockups und Screen-Flow VERSIONSGESCHICHTE Freitag, 11. Mai 2012: erster Version Montag, 28. Mai 2012: finales UI Design und

Mehr

Einführung in die Robotik Sensoren. Mohamed Oubbati Institut für Neuroinformatik. Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 30. 10.

Einführung in die Robotik Sensoren. Mohamed Oubbati Institut für Neuroinformatik. Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 30. 10. Einführung in die Robotik Sensoren Mohamed Oubbati Institut für Neuroinformatik Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 30. 10. 2012 Sensoren Was ist ein Sensor? Ein Sensor empfängt ein physikalisches

Mehr

Inhaltsverzeichnis. 0 Einleitung 11

Inhaltsverzeichnis. 0 Einleitung 11 Inhaltsverzeichnis 0 Einleitung 11 0.1 Windows 8 Apps mit HTML5 und JavaScript 12 0.2 Die Entwicklungsumgebung 13 Tools und SDK herunterladen 13 0.3 Korrekturen und Kommentare 14 1 Die Plattform Windows

Mehr

BMW Connected für Android

BMW Connected für Android BMW Connected für Android Mobile Forum Stuttgart 2013 17.05.2013 Matthias Habermann iteratec GmbH iteratec Unternehmenskennzahlen Geschäftsführung Gegründet Niederlassungen Umsatz 2012 Mitarbeiter 05/2013

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Selbststudium OOP4 Auftrag

Selbststudium OOP4 Auftrag Selbststudium OOP4 Auftrag Kapitel 3.6 1. Wie deklarieren Sie eine Referenzvariable? Mit new z.b. Student studenta = new Stundent( Meier ); 2. Zeichnen Sie das Objektdiagramm zum BlueJ Picture Projekt

Mehr

Einführung in die Cross-Plattform Entwicklung Zugriff auf Sensoren mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Zugriff auf Sensoren mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Zugriff auf Sensoren mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Zugriff auf Sensoren vertraut. Es wird

Mehr

Leseprobe. Apps für Android entwickeln

Leseprobe. Apps für Android entwickeln Leseprobe zu Apps für Android entwickeln von Jan Tittel und Jochen Baumann ISBN (Buch): 978-3-446-43191-1 ISBN (E-Book): 978-3-446-43315-1 Weitere Informationen und Bestellungen unter http://www.hanser-fachbuch.de/978-3-446-43191-1

Mehr

Software Engineering II

Software Engineering II Software Engineering II Wintersemester 12/13 Fachgebiet Software Engineering Installation der MWE Plugins Von der Juno Update Site installieren (falls noch nicht vorhanden): MWE SDK Xpand SDK 2 TFD Projekt

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Entwickeln einer eigenen App

Entwickeln einer eigenen App Entwickeln einer eigenen App Nicht nur auf der Hardware Seite unseres Android-zu-Seriell Wandlers sollte alles so einfach wie möglich sein, sondern auch auf der Software Seite. Da der Tunnel durch ADB

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

Connecting Android. Externe Hardware mit dem grünen Roboter verbinden. Alexander Dahmen Dominik Helleberg

Connecting Android. Externe Hardware mit dem grünen Roboter verbinden. Alexander Dahmen Dominik Helleberg Connecting Android Externe Hardware mit dem grünen Roboter verbinden Alexander Dahmen Dominik Helleberg Speaker Dominik Helleberg Mobile Development Android / Embedded Tools http://dominik-helleberg.de/+

Mehr

Technisches Handbuch Login für ios & Android

Technisches Handbuch Login für ios & Android Technisches Handbuch Login für ios & Android Version 15.1 Juli 2015 Inhaltsverzeichnis 1 Der DocCheck App Login...................................... 3 1.1 Basic App Login Der Klassiker für Apps......................

Mehr

G s e a s m a t m ar a ch c i h tek e tur u I und IoC

G s e a s m a t m ar a ch c i h tek e tur u I und IoC Gesamtarchitektur I und IoC Schichten einer Web-Anwendung Initiiert durch J2EE und Spring: Strukturierte Sicht auf UI und Fachlogik (Domäne) Ergibt 5 Schichten: Man unterscheidet Präsentations- und Domänenmodell!

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Das Magnetfeld der Erde. Stephen Kimbrough Damjan Štrus Corina Toma

Das Magnetfeld der Erde. Stephen Kimbrough Damjan Štrus Corina Toma Das Magnetfeld der Erde Stephen Kimbrough Damjan Štrus Corina Toma Das Magnetfeld der Erde 65 1 Zusammenfassung Warum ist es so wichtig, die Werte des Magnetfelds der Erde zu kennen? Warum untersucht die

Mehr

elearning mit ipads Verwendung von Apps im Physikunterricht Lernen der Zukunft? Manfred Lohr IT Koordinator BG/BRG Schwechat

elearning mit ipads Verwendung von Apps im Physikunterricht Lernen der Zukunft? Manfred Lohr IT Koordinator BG/BRG Schwechat elearning mit ipads Verwendung von Apps im Physikunterricht Lernen der Zukunft? Manfred Lohr IT Koordinator BG/BRG Schwechat www.bgschwechat.ac.at, manfred.lohr@gmail.com Inhalt 1. Pädagogisches Konzept

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example Gerd Wütherich Nils Hartmann OSGi Service Platform by example Die OSGi Service Platform Das Buch» Detaillierte Einführung in OSGi-Technologie» April 2008, dpunkt.verlag» ISBN 978-3-89864-457-0» Website:

Mehr

Turtlegrafik und Game-Apps für Smartphones und Tablets

Turtlegrafik und Game-Apps für Smartphones und Tablets Game-Apps für Smartphones und Tablets Turtlegrafik und Game-Apps für Smartphones und Tablets www.java-online.ch www.adroid-turtlegrafik.ch www.jdroid.ch Programm 1. Teil: Vortrag mit Demos Warum Smartphone

Mehr

Softwareentwicklungsprozess im Praktikum. 25. April 2013

Softwareentwicklungsprozess im Praktikum. 25. April 2013 Softwareentwicklungsprozess im Praktikum 25. April 2013 Agile Softwareentwicklung Eine agile Methodik stellt die beteiligten Menschen in den Mittelpunkt und versucht die Kommunikation und Zusammenarbeit

Mehr

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

Ein Großteil der zurzeit verbreiteten Android- Phones läuft noch unter einer älteren Version und stellt somit die Error-Reporting-Funktion Ein eigenes für Android implementieren Hurra, ein Fehlerreport! Fehler macht jeder. Wer schlau ist, lässt sich jeden Fehler sofort mit allen Daten servieren, die er für die Fehlerreproduktion benötigt.

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

13. Tutorium zu Programmieren

13. Tutorium zu Programmieren 13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

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

Java - Programmierung für Android. Leibniz Universität IT Services Anja Aue Java - Programmierung für Android Leibniz Universität IT Services Anja Aue Bücher Dirk Luis / Peter Müller: Android Thomas Künneth: Android 5: Apps entwickeln mit Android Studio Dawn Griffiths, David Griffiths:

Mehr

Modellierung einer Android-App. 2. Mai 2013

Modellierung einer Android-App. 2. Mai 2013 Modellierung einer Android-App 2. Mai 2013 Taentzer Software-Praktikum 2013 42 Überblick Modellierung der wesentlichen Aspekte Welche Anwendungsfälle haben wir? Übersicht durch Anwendungsfalldiagramme

Mehr

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

Android Einführung Fragments Android Kurs Stufe 2 (Orangegurt) Android Kurs Stufe 2 (Orangegurt) Inhaltsverzeichnis 1 Fragments... 2 2 Der Life Cycle eines Fragments... 2 3 Die Supportlibrary oder das Problem mit der Version... 3 4 Aufbau der Layouts... 4 5 OnClickListener...

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

Klassendefinitionen verstehen

Klassendefinitionen verstehen Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen

Mehr

Auf einen Blick. Elementare Anwendungsbausteine. Telefonfunktionen nutzen. Dateien und Datenbanken. Organizer und Multimedia

Auf einen Blick. Elementare Anwendungsbausteine. Telefonfunktionen nutzen. Dateien und Datenbanken. Organizer und Multimedia Auf einen Blick Auf einen Blick TEIL I Grundlagen 1 Android eine offene, mobile Plattform... 21 2 Hallo Android!... 43 3 Von der Idee zur Veröffentlichung... 73 TEIL II Elementare Anwendungsbausteine 4

Mehr

Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik in JAVA EV3

Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik in JAVA EV3 Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik in JAVA EV3 Ute Ihme Hochschule Mannheim Ute Ihme DAS LEGO MINDSTORMS System Die Bausysteme source: Lego via Cnet 1999: RCX 2007:

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Thema: Virtueller 3D Desktop. augmented reality

Thema: Virtueller 3D Desktop. augmented reality Thema: Virtueller 3D Desktop Problemstellung Dritte Dimension wird immer bedeutender im IT-Bereich Maus- und Tastatur- Konzept basiert auf zweidimensionaler Ein- und Ausgabe Ein neues, intuitives und natürliches

Mehr

MC-Hx 010. Relative Feuchte und Temperatur der Luft messen und den Taupunkt nach h-x-mollier- Diagramm berechnen. MB DataTec GmbH. Stand: 06.

MC-Hx 010. Relative Feuchte und Temperatur der Luft messen und den Taupunkt nach h-x-mollier- Diagramm berechnen. MB DataTec GmbH. Stand: 06. MC-Hx 010 Relative Feuchte und Temperatur der Luft messen und den Taupunkt nach h-x-mollier- Diagramm berechnen MB DataTec GmbH Stand: 06.2014 Kontakt: MB DataTec GmbH Friedrich Ebert Str. 217a 58666 Kierspe

Mehr

Consulting Development Design

Consulting Development Design Consulting Development Design 59. Bundesweites Gedenkstättenseminar - AG 4 Agenda Vorstellung Was verbirgt sich hinter einer mobilen App? Beispiel TABTOUR mehr als nur eine App Was ist jetzt und zukünftig

Mehr

App-Entwicklung für Android

App-Entwicklung für Android App-Entwicklung für Android Einleitung - Systemarchitektur Hochschule Darmstadt WS15/16 1 Inhalt Historie Systemarchitektur Sandbox 2 Motivation Kontra Pro Limitierte Größe Begrenzte Ressourcen Kein Standardgerät

Mehr