Mobile App Development. - Intents -

Größe: px
Ab Seite anzeigen:

Download "Mobile App Development. - Intents -"

Transkript

1 Mobile App Development - Intents -

2 Inhalt Intents Intent-Resolution Intent-Filter Broadcast Receiver

3 Intents

4 Intents engl.: Absicht, Vorsatz, Zweck passive Datenstruktur, Nachrichtenpaket enthält: abstrakte Beschreibung einer auszuführenden Operation oder Informationen über ein eingetretenes Ereignis

5 Intents Grundlage für lose Kopplung von Anwendungsbausteinen Nachrichtenaustausch Sammlung von Informationen, die durch das Android System ausgewertet werden

6 Intents Intents werden verwendet für Starten & Stoppen von Activities und Services Nachrichten Broadcasts

7 Intents Bisher wurden Intents verwendet, um Activities und Services innerhalb der gleichen App zu starten Intent intent = new Intent(this, Act2.class); MyApp Act1 Act2 startactivity(intent); Inten Android: Intent Auswertung

8 Intents Wie werden Komponenten anderer Apps gestartet? Beispiel: DropBox App Ein Nutzer klickt in der DropBox App eine PDF-Datei Wie und mit welcher Activity soll die PDF-Datei angezeigt werden?

9 Intents Lösung Man beschreibt in einem Intent die Art der Daten, die behandelt werden sollen Android versucht eine App Komponente zu finden, mit der die Daten dargestellt, editiert oder anderweitig behandelt werden können

10 Intent Inhalt Ein Intent enthält verschiedene Datenfelder, die die Absicht näher beschreiben Component name Action Category Data Extras & Flags

11 Component name vollqualifizierter Name der Zielkomponente, die den Intent behandeln / verarbeiten soll Verwendung: Starten einer anderen Komponente (Activity, Service,...) expliziter Intent

12 Component name public class IntentActivity extends Activity { // Methode zum Starten der TargetActivity private void starttargetactivity() { // neuen Intent erstellen Intent intent = new Intent(); // ComponentName setzen intent.setcomponent(new ComponentName(this, TestActivity.class)); //... oder Class-Objekt setzen intent.setclass(this, TestActivity.class); //... oder Class-Name setzen intent.setclassname(this, "de.htwds.emrolab.mad.testactivity"); } } // Starten der Activity startactivity(intent);

13 Intent Action String, der angibt, welche Aktion: ausgeführt werden soll oder ausgeführt wurde (BroadcastReceiver) vordefinierte Actions (siehe Intent Klasse: ACTION_xxx): CALL, EDIT, BATTERY_LOW, HEADSET_PLUG,...

14 Intent Action Beispiel // Methode zum Anrufen einer Telefonnummer // (beutzt: android.permission.call_phone) private void docall() { } // intent erstellen Intent intent = new Intent(); // action zum Anrufen setzen intent.setaction(intent.action_call); // CALL action erwartet im Data-Teil eine Telefonnummer intent.setdata(uri.parse("tel: ")); // intent abschicken startactivity(intent);

15 Intent Data Zusätzliche Daten, die von der Ziel- Komponente verarbeitet werden URI Daten, die verarbeitet werden sollen, in URI-Darstellung Bsp.: tel: , geo: ,

16 Intent Data Beispiel: LatLng Anzeige // Methode zum Darstellen einer LatLng-Information private void showlatlng() { // intent erstellen Intent intent = new Intent(Intent.ACTION_VIEW); // URI mit LatLng-Informationen erstellen Uri uri = Uri.parse("geo: , "); // uri zum Intent hinzufügen intent.setdata(); // intent abschicken startactivity(intent); }

17 Intent Data MIME Typ der Daten, die verarbeitet werden sollen Beispiele: image/jpeg video/mp4 text/plain audio/mpeg

18 Intent Data Beispiel: Text senden // Methode zum Senden eines Textes private void sendsampletext() { // intent erstellen Intent intent = new Intent(Intent.ACTION_SEND); // MIME Typ für Text setzen intent.settype("text/plain"); // Sende-Text als intent extra hinzufügen intent.putextra(intent.extra_text, "My sample text"); // intent abschicken startactivity(intent); }

19 Intent Category beschreibt die Art der Zielkomponente, die den Intent behandeln soll Bsp.: CATAGORY_BROWSABLE => Browser CATEGORY_HOME => Desktop CATEGORY_LAUNCHER => Starter

20 Intent Category Beispiel // Methode zum Abrufen aller installierten Launcher private void querylaunchers() { // intent erstellen Intent intent = new Intent(); // action und category für launcher setzen intent.setaction(intent.action_main); intent.addcategory(intent.category_launcher); } // Anfrage an PackageManager stellen, um alle Activities zu // bekommen, die dem Intent entsprechen List<ResolveInfo> resolveinfo = getpackagemanager().queryintentactivities(intent, 0); // Verarbeitung der Ergebnisliste for (ResolveInfo info : resolveinfo) { // z.b.: Icon von jedem Launcher holen Drawable icon = getpackagemanager().getapplicationicon(info.activityinfo.applicationinfo); }

21 Intent Extras extra Informationen, die der Komponente, die den Intent behandelt, zur Verfügung gestellt werden ähnlich Data URIs Aufbau: Key-Value-Paare

22 Intent Extras Beispiel // Methode zum Starten einer Activity mit zusätzlichen Informationen private void startactivity() { // neuen Intent erstellen Intent intent = new Intent(this, TestActivity.class); // Hinzufügen von zusätzlichen Information zum Intent intent.putextra("my.extra.string", "My extra value"); intent.putextra("my.extra.int", 73); } // Starten der Activity startactivity(intent);

23 Intent Flags Informationen an das Android-System, wie die Ziel-Komponenten gestartet oder behandelt werden sollen

24 Intent Flags Beispiele (siehe Intent-Klasse): FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS Activity wird nicht in der Liste kürzlich gestarteter Andwendungen angezeigt FLAG_ACTIVITY_NO_ANIMATION Keine Animation bei Activity-Übergang

25 Intent Flags Beispiel // Methode zum Starten einer Activity mit zusätzlichen Informationen private void startactivity() { // neuen Intent erstellen und Ziel Activity setzen Intent intent = new Intent(this, TestActivity.class); /* Intent flags setzen Mehrere Intent flags werden durch den Oder-Operator miteinander verknüpft */ intent.setflags( Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS Intent.FLAG_ACTIVITY_NO_ANIMATION); } // Starten der Activity startactivity(intent);

26 ??? Intent Resolution

27 Intent Resolution Wie entscheidet das Android System, welcher Intent an welche Komponente weitergeleitet wird? Wie werden widersprüchliche Intent- Informationen behandelt?

28 Intent Arten Explizite Intents Zielkomponente wird explizit angegeben Anwendung typischerweise für Zielkomponenten innerhalb der gleichen App Beispiel: Intent intent = new Intent(); intent.setclass(context, TargetActivity.class); startactivity(intent);

29 Intent Arten Implizite Intents Name der Zielkomponente wird nicht gesetzt Intent beschreibt nur die Daten, die behandelt werden sollen Anwendung typischerweise um Komponenten in anderen Apps anzusprechen

30 Intent Resolution Auf Basis der Informationen im Intent (Component name, Action,...) wird von Android entschieden, welcher Intent wohin geschickt wird explizite Intents: einfach, da die Zielkomponente eingetragen ist implizite Intents: andere Intent Informationen müssen ausgewertet werden

31 Intent Resolution Zustellung von impliziten Intents erfolgt auf Basis von: action data category flags und extras spielen keine Rolle

32 Intent Resolution Was passiert wenn Android mehrere Apps findet, die den Intent behandeln können?

33 Intent Resolution Was passiert wenn Android mehrere Apps findet, die den Intent behandeln können? Android lässt den Benutzer wählen, welche App er verwenden möchte

34 Intent Filter

35 Intent Filter Intent Filter bestimmen, welche Intents von einer Komponente empfangen bzw. behandelt werden können Jede Komponente kann mehrere Filter haben und somit von anderen Apps benutzt werden

36 Intent Filter Beispiel <application >... <activity android:name=".testactivity" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name=".testactivity2"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default" /> <data android:mimetype="text/plain" /> </intent-filter> </activity>... </application>

37 Intent Filter Elemente Intent Filter bestehen aus drei verschiedenen Filterbedingungen (<action>, <category>, <data>) Werden alle Filterbedingungen von einem Intent erfüllt, kann er passieren Action Test Category Test Data Test

38 Action Test Jeder Intent Filter muss mind. eine Action enthalten, andernfalls blockt er alle Intents Die Intent-Action muss mit einer Action aus dem Filter übereinstimmen Enthält ein Intent keine Action, so passiert er automatisch den Filter

39 Action Test Beispiel: Mit welchem Intent kann die Activity gestartet werden? Intent intent1 = new Intent(); intent1.setaction(intent.action_main); <manifest... > <application... > <activity android:name="de.htwds.emrolab.mada.intents.mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> </intent-filter> <intent-filter> <action android:name="de.htwds.emrolab.mada.myaction"/> </intent-filter> </activity> </application> </manifest>

40 Action Test Beispiel: Mit welchem Intent kann die Activity gestartet werden? Intent intent2 = new Intent(); intent2.setaction("de.htwds.emrolab.mada.mysecondaction"); <manifest... > <application... > <activity android:name="de.htwds.emrolab.mada.intents.mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> </intent-filter> <intent-filter> <action android:name="de.htwds.emrolab.mada.myaction"/> </intent-filter> </activity> </application> </manifest>

41 Action Test Beispiel: Mit welchem Intent kann die Activity gestartet werden? Intent intent3 = new Intent(); intent3.setaction("de.htwds.emrolab.mada.myaction"); <manifest... > <application... > <activity android:name="de.htwds.emrolab.mada.intents.mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> </intent-filter> <intent-filter> <action android:name="de.htwds.emrolab.mada.myaction"/> </intent-filter> </activity> </application> </manifest>

42 Category Test Ein Filter kann 0..* Category-Felder enthalten Ein Intent passiert den Test, wenn der Filter mindestens alle Categories enthält, die auch der Intent enthält ACHTUNG: Alle Intents, die per startactivity(...) gesendet werden, erhalten automatisch DEFAULT_CATEGORY

43 Category Test Beispiel: Kann der Intent passieren? Intent intent1 = new Intent(); intent1.addcategory(intent.category_launcher); <manifest... > <application... > <activity android:name="de.htwds.emrolab.mada.intents.mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.main"/> <category android:name="android.intent.category.browsable"/> <category android:name="android.intent.category.info"/> </intent-filter> </activity> </application> </manifest>

44 Category Test Beispiel: Kann der Intent passieren? Intent intent2 = new Intent(); intent2.addcategory(intent.category_browsable); intent2.addcategory(intent.category_info); <manifest... > <application... > <activity android:name="de.htwds.emrolab.mada.intents.mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.main"/> <category android:name="android.intent.category.browsable"/> <category android:name="android.intent.category.info"/> </intent-filter> </activity> </application> </manifest>

45 Category Test Beispiel: Kann der Intent passieren? Intent intent3 = new Intent(); intent3.addcategory(intent.category_launcher); intent2.addcategory(intent.category_info); <manifest... > <application... > <activity android:name="de.htwds.emrolab.mada.intents.mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.main"/> <category android:name="android.intent.category.browsable"/> <category android:name="android.intent.category.info"/> </intent-filter> </activity> </application> </manifest>

46 Category Test Beispiel: Kann der Intent passieren? Intent intent4 = new Intent(); intent4.addcategory(intent.category_launcher); <manifest... > <application... > <activity android:name="de.htwds.emrolab.mada.intents.mainactivity"> <intent-filter> <category android:name="android.intent.category.launcher" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.main"/> <category android:name="android.intent.category.browsable"/> <category android:name="android.intent.category.info"/> </intent-filter> </activity> </application> </manifest>

47 Data Test Ein Filter kann 0..* Data-Felder enthalten Data-Feld besteht aus URI und/oder MIME: URI: scheme://host:port/path MIME: type/subtype Wildcards können verwendet werden, z. B.: oder audio/*

48 Data Test Ein Intent passiert den Filter, wenn weder der Intent noch der Filter URI oder Type gesetzt haben er ein URI enthält, der dem Filter entspricht und keinen Typ enthält und der Filter ebenfalls keinen Typ spezifiziert er einen Typ und kein URI enthält und der Filter einen entsprechenden Typ enthält und kein URI spezifiziert

49 Data Test Ein Intent passiert den Filter, wenn er einen Typ und ein URI enthält und der Filter ebenfalls den entsprechenden Typ und URI enthält Ausnahme: content: und file: Ein Filter unterstützt automatisch content und file, wenn selbst kein URI spezifiziert

50 Data Test Beispiel: Kann der Intent passieren? Intent intent1 = new Intent(); intent1.settype("image/png"); <manifest... > <application> <activity android:name="de.htwds.emrolab.mada.intents.mainactivity"> <intent-filter> <action android:name="android.intent.action.main"/> <data android:mimetype="image/*"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.main"/> <data android:host="emrolab.htw-saarland.de"/> <data android:scheme="ftp"/> </intent-filter> </activity> </application> </manifest>

51 Data Test Beispiel: Kann der Intent passieren? Intent intent2 = new Intent(); intent2.setdata(uri.parse(" <manifest... > <application> <activity android:name="de.htwds.emrolab.mada.intents.mainactivity"> <intent-filter> <action android:name="android.intent.action.main"/> <data android:mimetype="image/*"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.main"/> <data android:host="emrolab.htw-saarland.de"/> <data android:scheme="ftp"/> </intent-filter> </activity> </application> </manifest>

52 Pending Intents

53 Pending Intents Pending Intents sind Intents, die eine Aktion enthalten, die später ausgeführt werden soll. Pending Intents ermöglichen einer anderen App das Ausführen von Code mit den eigenen Berechtigungen Beispiel: Eine Wecker App setzt einen Alarm, der zu einem späteren Zeitpunkt einen Sound abspielen soll

54 Pending Intents Ablauf App A kapselt in einem PendingIntent eine Aktion, die später von App B gestartet werden soll Der PendingIntent wird von A an B übergeben B führt die Aktion zu einem späteren Zeitpunkt aus, auch wenn A schon zerstört wurde

55 Pending Intents Verwendung NotificationManager: Erzeugen von Benachrichtigungen in der Statuszeile AlarmManager: Ausführung von Code zu einem festgelegten Zeitpunkt

56 Pending Intents PendingIntents werden mit der Klasse PendingIntent erstellt PendingIntents können zum Starten von Activities, Services und BroadcastReceivern erstellt werden

57 Pending Intents PendingIntent erstellen private void creatependingintent1() { } /* Activity eingetragen, die als Action ausgeführt werden soll */ Intent intenta = new Intent(this, TestActivity.class); /* Erstellen eines PendingIntents für eine Activity */ PendingIntent pia = PendingIntent.getActivity(this, 0, intenta, PendingIntent.FLAG_UPDATE_CURRENT);

58 Pending Intents PendingIntent erstellen private void creatependingintent1() { /* Activity eingetragen, die als Action ausgeführt werden soll */ Intent intenta = new Intent(this, TestActivity.class); /* Erstellen eines PendingIntents für eine Activity */ PendingIntent pia = PendingIntent.getActivity(this, 0, intenta, PendingIntent.FLAG_UPDATE_CURRENT); /* Service eingetragen, die als Action ausgeführt werden soll */ Intent intents = new Intent(this, TestService.class); /* Erstellen eines PendingIntents für einen Service */ PendingIntent pis = PendingIntent.getService(this, 0, intents, PendingIntent.FLAG_UPDATE_CURRENT); } /* BCR eingetragen, die als Action ausgeführt werden soll */ Intent intentb = new Intent(this, TestBCR.class); /* Erstellen eines PendingIntents für einen BroadcastReceiver */ PendingIntent pib = PendingIntent.getBroadcast(this, 0, intentb, PendingIntent.FLAG_UPDATE_CURRENT);

59 Pending Intents PendingIntent für einen Alarm verwenden public void createalarm(view view) { } // AlarmManager vom System abrufen */ AlarmManager mng = (AlarmManager) getsystemservice(context.alarm_service); /* Hier wird die Komponente eingetragen, die als Action ausgeführt werden soll */ Intent intent = new Intent(this, TestActivity.class); /* Erstellen eines PendingIntents für eine Activity */ PendingIntent pi = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); /* Alarm setzen */ mng.set(alarmmanager.elapsed_realtime, SystemClock.elapsedRealtime() + PERIOD, pi);

60 Pending Intents PendingIntent für einen Alarm verwenden Der AlarmManager kann durch den PendingIntent die übergebene Activity zu einem späteren Zeitpunkt ausführen

61 Broadcast Receiver

62 Broadcast Receiver Android-Komponente, die es ermöglicht, systemweite Nachrichten, sog. Broadcasts, zu empfangen können von Android unabhängig von anderen Komponenten aktiviert werden haben keine eigene Oberfläche

63 Broadcast Receiver BCRs werden verwendet, um auf Ereignisse zu reagieren, die mittels Broadcast publiziert wurden Beispiel: Android verschickt Ereignismeldungen, wenn der Batteriestand niedrig ist das System gestartet wurde das Ladekabel angesteckt wurde,...

64 Broadcast Receiver Implementierung BCRs leiten von der Klasse BroadcastReceiver ab... und müssen die Methode onreceive() überschreiben onreceive() wird aufgerufen, wenn der BCR eine Intent-Nachricht empfängt

65 BCR Implementierung // Test BroadcastReceiver public class MyTestReceiver extends BroadcastReceiver { } // Intent action, auf die der BCR hört public static final String BC_ACTION = "de.htwds.mad.testbc"; //... wird automatisch vom System aufgerufen, wenn ein Intent // mit obiger ACTION versendet public void onreceive(context context, Intent intent) { // Intent actions, categories,... testen if (BC_ACTION.equals(intent.getAction())) { // entsprechenden Code ausführen } //!!! ACHTUNG!!! // Für länger andauernde Operationen sollten Services verwendet // werden, andernfalls wird der BCR unter Umständen von Android // beendet (ANR)! }

66 BCR Registrierung Android Manifest <manifest xmlns:android=" package="de.htwds.emrolab.unitytest" android:versioncode="1" android:versionname="1.0" > <application <activity>... </activity> <receiver android:name=".broadcast.mytestreceiver"> <intent-filter> <action android:name="de.htwds.mad.testbc"/> <!-- <category android:name="..."/> --> <!-- <data android:mimetype="*/*"/> --> </intent-filter> </receiver> </application> </manifest>

67 BCR Registrierung programmatisch // Methode zum Registrieren eines BroadcastReceivers private void registermyreveiver(context context) { // Instanz der eigenen BCR Implementierung erstellen MyTestReceiver receiver = new MyTestReceiver(); // IntentFilter erstellen, der beschreibt, wann der BCR // informiert werden soll IntentFilter filter = new IntentFilter("de.htwds.mad.testbc"); } // BroadcastReceiver im System registrieren context.registerreceiver(receiver, filter);

68 Broadcast senden Broadcasts können nicht nur empfangen, sondern auch gesendet werden Das Senden erfolgt mit der Methode Context.sendBroadcast()

69 Broadcast senden Normalen Broadcast senden // Methode zum Senden eines "normalen" broadcast private void sendmybroadcast(context context) { // Intent für den broadcast erstellen Intent intent = new Intent("de.htwds.mad.testbc"); // Intent als "norlmalen" broadcast versenden context.sendbroadcast(intent); } Broadcast wird allen Interessenten ungeordnet und parallel zugestellt und danach beendet

70 Broadcast senden Sticky Broadcast senden // Methode zum Senden eines sticky Broadcast private void sendmystickybroadcast(context context) { // broadcast intent erstellen Intent intent = new Intent("de.htwds.mad.testbc"); // intent als sticky broadcast versenden context.sendstickybroadcast(intent); } Intent bleibt nach dem Broadcast weiter im System und kann verwendet werden Zustellung erfolgt ungeordnet, parallel Entfernung durch context.removestickybroadcast(intent)

71 Broadcast senden Ordered Broadcast bei normalen Broadcasts werden die Receiver ungeordnet parallel informiert Ordered Broadcasts werden den Receivern geordnet und einem nach dem anderen zugestellt Receiver können den Broadcast abbrechen oder Zwischenergebnisse weitergeben

72 Broadcast senden Ordered Broadcast senden /* Methode zum Senden eines Ordered Broadcasts */ private void sendmyorderedbroadcast(context context) { /* Intent mit der Broadcast Action erstellen */ Intent intent = new Intent("de.htwds.emrolab.mada"); } /* Ordered Broadcast senden (der zweite Parameter gibt eine Permission an, die der Receiver besitzen muss, um den Broadcast zu empfangen) */ context.sendorderedbroadcast(intent, "de.htwds.emrolab.mada.permission.view");

73 Ordered Broadcast Ordered Broadcast mit Ergebnissen Sender Result Receiver Receiver Receiver Result Result

74 Ordered Broadcast Zwischenergebnisse produzieren und weiterreichen public class MyReceiver extends BroadcastReceiver { public void onreceive(context context, Intent intent) { if (isorderedbroadcast()) { /* Ergebnisse vom vorherigen Receiver auswerten */ int code = getresultcode(); String data = getresultdata(); Bundle extras = getresultextras(false); /* eigentliche Arbeit erledigen */ } } } /* Ergebnisse an der nächsten Receiver weitergeben */ setresult(activity.result_ok, data, extras);

75 Ordered Broadcast Ergebnisse auswerten private void handlebroadcastresult(context context) { /* Broadcast intent erstellen */ Intent intent = new Intent("my.action"); /* Receiver erstellen, der als letzten in der Reihenfolge der * Receiver aufgerufen wird und die Zwischenergebnisse * verarbeiten kann */ BroadcastReceiver lastreceiver = new BroadcastReceiver() { public void onreceive(context context, Intent intent) { /* letzten Ergebnis bearbeiten */ } }; } /* Ordered Broadcast senden */ context.sendorderedbroadcast(intent, null, lastreceiver, null, 0, null, null);

76 LocalBroadcastManager LocalBroadcastManager für Broadcasts, die nur in der eigenen App verwendet werden Vorteile Broadcasts verlassen die eigene App nicht Effizienz

77 LocalBroadcastManager BCR registrieren /* BCR beim LocalBroadcastManager registrieren */ private void bla(context context) { // LBM Instanz abrufen LocalBroadcastManager mng = LocalBroadcastManager.getInstance(context); // IntentFilter erstellen IntentFilter filter = new IntentFilter("de.htwds.emrolab.mada"); // BroadcastReceiver implementieren BroadcastReceiver receiver = new BroadcastReceiver() public void onreceive(context context, Intent intent) { // Implementierung } }; // BroadcastReceiver beim LocalBroadcastManager registrieren mng.registerreceiver(receiver, filter); }

78 LocalBroadcastManager Broadcast senden & empfangen /* BCR beim LocalBroadcastManager registrieren */ private void sendandreceive(context context) { // LBM Instanz abrufen LocalBroadcastManager mng = LocalBroadcastManager.getInstance(context); // IntentFilter erstellen IntentFilter filter = new IntentFilter("de.htwds.emrolab.mada"); // BroadcastReceiver implementieren BroadcastReceiver receiver = new BroadcastReceiver() public void onreceive(context context, Intent intent) { // Implementierung } }; // BroadcastReceiver beim LocalBroadcastManager registrieren mng.registerreceiver(receiver, filter); } // // Broadcast Intent erstellen und senden Intent intent = new Intent("de.htwds.emrolab.mada"); mng.sendbroadcast(intent);

79 Fragen?

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

4. Software-Kompponenten in Android Broadcast Intents und Broadcast Receivers. Broadcast Intents Broadcast Intents Broadcast Intents sind eine spezielle Art von Intents, die auf Betriebssystemebene (genauer: Application Framework) verschickt werden, nicht auf der Anwendungsebene Zweck: informieren

Mehr

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

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Intents (Wiederholung I) Ein Intent erklärt die Absicht eine bestimmte Activity auszuführen Explizit durch Angabe einer

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

4. Software-Komponenten in Android

4. Software-Komponenten in Android 4. Software-Kompponenten in Android Lernziele 4. Software-Komponenten in Android Themen/Lernziele Intents: Explizite und implizite Intents Intent-Filter Intent-Resolution Sub-Activities Broadcast Intents

Mehr

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

Einführung in die Android App-Entwicklung. Patrick Treyer und Jannis Pinter Einführung in die Android App-Entwicklung Patrick Treyer und Jannis Pinter Agenda Was ist Android? Android Versionen Layout, Strings und das Android Manifest Activities, Intents und Services Entwicklungsumgebung

Mehr

Autor: Version: Datum: Auerswald GmbH & Co. KG

Autor: Version: Datum: Auerswald GmbH & Co. KG Versionsverfolgung Version Datum Änderung Verfasser 1.0 25.10.2013 Erste Version. JWe 1.1 12.06.2015 COMfortel 3600 IP hinzugefügt JWe 1.2 26.06.2015 Anpassungen nach interner Überarbeitung JWe Inhaltsverzeichnis

Mehr

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

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Intents Activities werden von Objekten der Klasse android.content.intent gestartet Unterscheidung in explizite und implizite

Mehr

Mobile App Development. - No1fica1ons -

Mobile App Development. - No1fica1ons - Mobile App Development - No1fica1ons - No1fica1ons Notifications sind Benachrichtigungen, die dem Benutzer über die Android Statuszeile mitgeteilt werden Bildquelle: http://developer.android.com/guide/topics/ui/notifiers/notifications.html

Mehr

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

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

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum Analyse der Android Plattform Andre Rein, Johannes Florian Tietje FH-Gieÿen-Friedberg Android Praktikum 28. Oktober 2010 Topics 1 Übersicht Android Plattform Application Framework Activities und Services

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

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

Prozesse und Threads in Android

Prozesse und Threads in Android Prozesse und Threads in Android Jede gestartete Applikation ist eigener Prozess und läuft in eigener Dalvik VM Prozess startet User-Interface-Thread (UI-Thread), der für die sichtbaren Bestandteile der

Mehr

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

Einführung in Android (2) 16. Dezember 2014 Einführung in Android (2) 16. Dezember 2014 Überblick Entwicklung der Benutzeroberfläche Views Layouts Menüs Listen und Adapter Einbinden weiterer Ressourcen Aktivierung von Activities Entwicklungsrichtlinien

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. Mentoring SS 16. Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016

Android Apps. Mentoring SS 16. Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016 Android Apps Mentoring SS 16 Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016 Wichtige Dateien MainActivity.java activity_main.xml AndroidManifest.xml Die Dateien MainActivity.java,

Mehr

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

Ereignisse (Events) Asynchrones Versenden von Informationen Sender (Herausgeber) Empfänger (Abonnent) Dr. Beatrice Amrhein

Ereignisse (Events) Asynchrones Versenden von Informationen Sender (Herausgeber) Empfänger (Abonnent) Dr. Beatrice Amrhein Ereignisse (Events) Asynchrones Versenden von Informationen Sender (Herausgeber) Empfänger (Abonnent) Dr. Beatrice Amrhein Überblick Definition eines Ereignisses Sender und Empfänger Einfache Ereignisse

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

Inhaltsverzeichnis. Apps für Android entwickeln

Inhaltsverzeichnis. Apps für Android entwickeln Inhaltsverzeichnis 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

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

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt!! 26.03.2014 FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert von Methoden! String Fehlercode als String! int Fehlercode

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

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 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

Mobile App Development - Multitasking -

Mobile App Development - Multitasking - Mobile App Development - Multitasking - Inhalt Threading Services Service Lifecycle Gestartete Services Gebundene Services Threading Threading Standard Java Threads Thread Runnable volatile & synchronized

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 tobias.witt@hhu.de 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

1 Einführung 1. 2 Einrichten der Arbeitsumgebung 9. 3 Schnelleinstieg in Xcode und Objective-C 25

1 Einführung 1. 2 Einrichten der Arbeitsumgebung 9. 3 Schnelleinstieg in Xcode und Objective-C 25 1 Einführung 1 1.1 Das Smartphone 2 1.2 An wen richtet sich dieses Buch? 2 1.3 Buchaufbau und verwendete Technologien 3 1.4 Vorstellung des Beispielprojekts 4 2 Einrichten der Arbeitsumgebung 9 2.1 Installation

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

Vorwort Android - eine offene, mobile Plattform 21

Vorwort Android - eine offene, mobile Plattform 21 Vorwort 15 TEILI Grundlagen 1 Android - eine offene, mobile Plattform 21 1.1 Entstehung 21 1.1.1 Die Open Handset Alliance 22 1.1.2 Android Inc 22 1.1.3 Evolution einer Plattform 23 1.2 Systemarchitektur

Mehr

Accounts und Kontakte in Android

Accounts und Kontakte in Android Accounts und Kontakte in Android Die letzten Wochen habe ich daran gearbeitet, die Kontakte der AddressTable von Leonardo und mir ins Android Adressbuch zu bringen. Dazu habe ich die AddressManagement-Applikation

Mehr

macrec OS X Server Anleitung zur Verwendung von Avelsieve (Mail Filter)

macrec OS X Server Anleitung zur Verwendung von Avelsieve (Mail Filter) 1 Login Wenn Sie bei uns eine Mailadresse gehostet haben, verfügen Sie über ein Konfigurationsblatt, dem Sie Webmailadresse, Benutzername und Passwort entnehmen können. Die Webmailadresse ist in aller

Mehr

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

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 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 Index Einleitung Kurzer Lebenslauf von Android Die Entwicklungshilfen

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de

Mehr

Android-Apps Lösen einer quadratischen Gleichung I/O in einer Activity

Android-Apps Lösen einer quadratischen Gleichung I/O in einer Activity Android-Apps Lösen einer quadratischen Gleichung I/O in einer Activity 2/30 quadrgleichung (I) alles untereinander angeordnet Neues Projekt anlegen Die View zur Texteingabe, Abfrage über die id R.id.edt_a2

Mehr

Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org

Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org Fachhochschule Münster Labor für Software Engineering luzar@fh-muenster.de www.naviki.org 1 Naviki die Idee www.naviki.org 2 Wie funktioniert

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Benutzerhandbuch. telegra WAM

Benutzerhandbuch. telegra WAM Benutzerhandbuch telegra WAM Inhalt. Login... 3 2. Nachrichten versenden... 4 3. SIM-Karten verwalten... 5 4. Kontakte verwalten... 6 4. Neuen Kontakt erstellen... 7 4.2 Kontakte bearbeiten... 8 5. Versendete

Mehr

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

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 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 Index Einleitung Kurzer Lebenslauf von Android Die Entwicklungshilfen

Mehr

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

Teil I Augmented Learning - Vortragender: Krischan Udelhoven. Teil II Android - Vortragender: Folker Hoffmann 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

Mehr

Exceptions und Vererbung

Exceptions und Vererbung Exceptions und Vererbung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter 2. Exceptions Eigene Exceptions Handling

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

Prüfung Softwareentwicklung II (IB)

Prüfung Softwareentwicklung II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr

Mehr

Programmieren 1 09 Vererbung und Polymorphie

Programmieren 1 09 Vererbung und Polymorphie Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen

Mehr

Fragen zur OOP in Java

Fragen zur OOP in Java - 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

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

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

3. Persistenz und Datenbanken Content Providers. Content Providers. Generische Schnittstelle zum Zugriff auf Daten zwischen Anwendungen

3. Persistenz und Datenbanken Content Providers. Content Providers. Generische Schnittstelle zum Zugriff auf Daten zwischen Anwendungen Content Providers Generische Schnittstelle zum Zugriff auf Daten zwischen Anwendungen Entkopplung der Daten-Schicht von der Anwendungsschicht Zugriff erfolgt URI-basiert Kontrolle der Zugriffsrechte eingebaute

Mehr

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor(); Bereich: Grafische Benutzeroberflächen (UI), Events (2) Editor Package: de.dhbwka.java.exercise.ui.editor Klasse: Editor Aufgabenstellung: Schreiben Sie einen kleinen Texteditor mit Swing! Keine Panik,

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Peter Zeller AG Softech FB Informatik TU Kaiserslautern Das Android Framework zur Entwicklung von Apps Bieniusa/Zeller Software Entwicklung 1 2/ 46 Frameworks

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

Informatikarbeit. Android development. Christian Eppler. 4. Januar 2013. Hochschule Ravensburg-Weingarten

Informatikarbeit. Android development. Christian Eppler. 4. Januar 2013. Hochschule Ravensburg-Weingarten Informatikarbeit Android development Christian Eppler 4. Januar 2013 Hochschule Ravensburg-Weingarten Vielen Dank möchte ich an dieser Stelle an Frau Prof. Dr.-Ing. Keller aussprechen, Die diese Arbeit

Mehr

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

Inhalt. 3 Kurzeinführung 15 Das Android-SDK installieren 15 Einen PATH zu den Werkzeugen einrichten 16 Eclipse installieren 16 Inhalt Vorwort XIII 1 Android im Überblick 1 Was ist Android? 1 Was»umfassend«bedeutet 1 Open Source-Plattform 2 Speziell für Mobilgeräte 2 Geschichte 3 Googles Motivation 3 Open Handset Alliance 4 Android-Versionen

Mehr

Apps programmieren. App-Komponenten KAPITEL 4

Apps programmieren. App-Komponenten KAPITEL 4 D3kjd3Di38lk323nnm KAPITEL 4 Apps programmieren Sofern Sie dieses Buch sequenziell lesen (was nicht unbedingt erforderlich ist), sind Sie aus den vorangegangenen Kapiteln so weit mit den internen Zusammenhängen

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

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

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

Java - Menü und Intent. Leibniz Universität IT Services Anja Aue Java - Menü und Intent Leibniz Universität IT Services Anja Aue Menüs Auswahl von verschiedenen Möglichkeiten mit Hilfe von Menüeinträgen. Menüeinträge können Untermenüs öffnen. Definition des Menüs in

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Komponenten & Frameworks Seite 1

Komponenten & Frameworks Seite 1 Ausgangssituation Wir wollen eine einfache Windowsanwendung mit einem Fenster erstellen. Dieses Fenster enthält (Container!) einen Button der beim klicken das Schreiben in ein Textfeld bewirkt. Was ist

Mehr

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

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Bancontact/Mister Cash Mobile

Bancontact/Mister Cash Mobile Inhaltsverzeichnisses 1. Einleitung 2. So funktioniert es 2.1 So sieht die Zahlungsseite aus 2.1.1 Auf einem Computer 2.1.2 Auf einem Tablet 2.1.3 Auf einem Smartphone 3. Konfiguration 3.1 Test 4. Integration

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

Kapitel 9 Schnittstellen

Kapitel 9 Schnittstellen Kapitel 9 Schnittstellen Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Agenda Was ist eine Schnittstelle?

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

hue13 January 30, 2017

hue13 January 30, 2017 hue13 January 30, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern

Mehr

Übung 1: Object Inspector

Übung 1: Object Inspector Übung 1: Object Inspector Es ist ein System zu entwickeln, mit dem man Objektstrukturen bezüglich ihrer Properties analysieren und dann in einem Tree Viewer (JTree) anzeigen und bearbeiten kann. Properties

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

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

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

Klausur Software-Entwicklung März 01

Klausur Software-Entwicklung März 01 Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,

Mehr

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

Gib dem Projekt (z.b.) den Namen MyApplication und klicke auf Next. Der Domain-Name ist beliebig. Mit Android Studio Seiten mit Text, Bildern Schaltknöpfen generieren, um zu den Seiten und zum Internet navigieren zu können. Stufe 1: Gehe zu http://developer.android.com/sdk/index.html, lade Android

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Die abstrakte Klasse Expression:

Die abstrakte Klasse Expression: Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.

Mehr

Cocktail-Rezepte-APP

Cocktail-Rezepte-APP Application Name: Cocktails Company Domain: gsog.de Empty Activity Main Activity: FindCocktailActivity Layout: activity_find_cocktail Was ist neu??

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Interface. So werden Interfaces gemacht

Interface. So werden Interfaces gemacht Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.

Mehr

Thomas Künneth. Android 3. Apps entwickeln mit dem Android SDK. Galileo Press

Thomas Künneth. Android 3. Apps entwickeln mit dem Android SDK. Galileo Press Thomas Künneth Android 3 Apps entwickeln mit dem Android SDK Galileo Press Vorwort 13 TEIL I Grundlagen 1.1 Entstehung 19 1.1.1 Die Open Handset Alliance, 20 1.1.2 Android Ine 20 1.1.3 Evolution einer

Mehr

Kapitel 10 Delegationsvariablen

Kapitel 10 Delegationsvariablen Kapitel 10 Delegationsvariablen Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Agenda Wie werden

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Einführung in die Android-Entwicklung

Einführung in die Android-Entwicklung Einführung in die Android-Entwicklung Marko Gargenta Deutsche Übersetzung von Lars Schulten O'REILLY~ Bejing. Cambridge. Farnham. Köln Sebastopol. Tokyo Inhalt Vorwort XIII 1 Android im Überblick 1 Was

Mehr

Verwendung des OPC-Clients von Softing

Verwendung des OPC-Clients von Softing Automatisierungstechnik OPC-Client Seite 1 / 10 Verwendung des OPC-Clients von Softing Die nachfolgende Anleitung beschreibt die Verwendung des OPC-Clients von Softing. Der Demo OPC Client stellt ein einfaches

Mehr

C# - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Fehler abfangen Leibniz Universität IT Services Anja Aue Fehler in einem Programm Warnungen sind Hinweise auf eventuelle Fehler während der Laufzeit des Programms.

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

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Dokumentation Benachrichtigungen

Dokumentation Benachrichtigungen LogiSoft GmbH & Co. KG software & consulting Maibachstraße 7 35683 Dillenburg Germany Telefon +49 (0)700. LOGISOFT +49 (0)2772. 57 269-0 Telefax +49 (0)2772. 57 269-99 E-Mail info@logisoft.de Internet

Mehr

Übungsblatt 9. Thema: Methoden-Dispatching, Datenstrukturen, Abstrakte Datentypen

Übungsblatt 9. Thema: Methoden-Dispatching, Datenstrukturen, Abstrakte Datentypen Informatik I WS 05/06 Prof. Dr. W. May Dipl.-Inform. Oliver Fritzen Dipl.-Inform. Christian Kubczak Übungsblatt 9 Ausgegeben am: Abgabe bis: 06.01.2006 17.1.2006 (Theorie) 20.1.2006 (Praktisch) Thema:

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Parallele und funktionale Programmierung Sommersemester Übung Abgabe bis , 10:00 Uhr

Parallele und funktionale Programmierung Sommersemester Übung Abgabe bis , 10:00 Uhr 4. Übung Abgabe bis 16.05.2013, 10:00 Uhr Aufgabe 4.1: Thread-Sicherheit a) Wann sind Klassen korrekt? Wie kann man nicht korrekte Klassen erkennen? b) Wann sind Klassen thread-sicher? Wie kann man nicht

Mehr

Uepaa Alleinarbeiterschutz

Uepaa Alleinarbeiterschutz Uepaa Alleinarbeiterschutz Benutzeranleitung & Prozessbeschreibung Datum: 6. Juni 2016 Kontaktinformationen Uepaa AG Dominic Bestler Seefeldstrasse 301A CH- 8008 Zürich Tel: +41 44 809 6000 support@uepaa.ch

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr