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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 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. Dann kann er seine App schnell korrigieren. Tobias Knell Auf einen Blick Wo Computer sind, da treten Fehler auf. Die Gründe für Fehler können in den verschiedenen Konfigurationen und Ausstattungen der Android-Phones liegen oder in der hohen Komplexität der App. Wichtig ist, dass Sie als Entwickler über Fehler möglichst schnell und genau informiert werden. Zu diesem Zweck bauen Sie in diesem Artikel eine einfache, aber effektive -Funktion, die Sie in jede App integrieren können. Plattform Android Inhalte auf beiliegender CD enthalten Anzeige der Fehler im Market (Bild 2) Die Zahl der Android-Phones mit unterschiedlichen Konfigurationen und Ausstattungen steigt stetig. Sie als Entwickler werden kaum all diese Modelle besitzen können, um Ihre App auf jedem Gerät einzeln zu testen. Gerade in diesem Umfeld ist eine gute -Funktion wichtig. Seit Android 2.2 (in einigen Fällen auch seit 2.1) gibt es eine Funktion, die Abstürze von Apps meldet. Dem Benutzer wird beim Absturz der in Bild 1 dargestellte Dialog angezeigt. Wenn er sich dafür entscheidet, das Problem zu melden, kann er anschließend eine zusätzliche Nachricht eingeben, die den Fehler näher beschreibt. Als Entwickler bekommen Sie auf der Developer-Seite im Android Market an Ihren Apps angezeigt, wie viele neue Fehler jeweils berichtet wurden, siehe Bild 2. Sie erhalten folgende Informationen: die Nachricht des Benutzers, den Stacktrace (Bild 3) und die Version der App. Außerdem stellt Google Statistiken bereit, wie oft die Apps abstürzen oder einfrieren, sowohl als Gesamtzahl pro App als auch für die einzelnen Fehler. Das ist alles in allem eine nette Funktion, doch reicht dies bei komplexeren Apps wirklich aus? Und was ist mit Abstürzen bei Versionen unter 2.2? Ein Großteil der zurzeit verbreiteten Android- Phones läuft noch unter einer älteren Version und stellt somit die -Funktion Fehlerdialog in Android 2.2 (Bild 1) überhaupt nicht zur Verfügung. Daher bekommen Sie auch nur einen sehr geringen Teil der Meldungen zu Gesicht und können auf Fehler, die nur bei älteren Versionen auftreten, überhaupt nicht reagieren. Mit etwas Glück werden Ihnen diese Fehler über Kommentare im Market mitgeteilt, wahrscheinlich auch noch mit einer schlechten Bewertung als Anhang. Fazit: Eine eigene Implementierung muss her! Was sollte ein können? Da wären zunächst diejenigen Funktionen, die das native Reporting schon bereitstellt: Der Benutzer wird gefragt, ob er den Bericht senden will. Er kann einen Kommentar eingeben. Stacktrace, Name und Version der App werden gesendet. Die erweiterten Funktionen sollten umfassen: Smartphone-spezifische Informationen wie das Modell und die verwendete Android-Version sollten gesammelt werden. Für besonders kritische Stellen ist es denkbar, auch Werte bestimmter Variablen mitzusenden. Das Wichtigste jedoch ist, dass das unter allen Android-Versionen läuft, Listing 1: Fehler machen auf Befehl <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center"> <Button android:layout_width="100dp" android:layout_height="100dp" android:text="- CRASH ME -" android:textstyle="bold"/> 42 Mobile Developer Android 1/2011

2 ANDROID oder mindestens ab der Version 1.5, denn Version 1.1 wird kaum noch verwendet (0,1 Prozent Verbreitung). Gesendet wird der Report im JSON-Format per HTTP-POST an einen Server, dessen URL auch konfigurierbar sein soll. Das JSON-Format hält diese Informationen sehr kompakt. Crashtest Um Fehler melden zu können, benötigen Sie zunächst eine Codebasis, die Fehler erzeugt. Zu Demonstrationszwecken wird in diesem Artikel ein simples Android-Projekt namens CrashTest verwendet mit der dazugehörigen Activity CrashTestActivity. Zunächst geht es an das Layout in der main.xml. Dieses hat nur den Zweck, eine Funktion aufzurufen, deshalb reicht ein einfacher Button dafür aus, siehe Listing 1. Verzieren könnte man das Ganze noch mit einem Hintergrundbild für den Button, damit die App nicht so schlicht und leer aussieht, siehe Bild 4. Nun geht es an die Activity, die nichts weiter tun muss, als beim Druck auf den Button eine Exception zu erzeugen, siehe Listing 2. Damit wird der Fehler erzeugt. Nun muss er nur noch abgefangen werden. Das ist einfach: Legen Sie dafür eine neue Klasse an, zum Beispiel MyExceptionHandler. Diese Klasse wird ein Singleton und implementiert Thread.Uncaught- ExceptionHandler, siehe Listing 3. Den Context benötigen Sie, um den Dialog, der bei einer UncaughtException angezeigt werden soll, zu starten. Der URL bestimmt die Zieladresse, an die der Report geschickt wird, und die HashMap speichert die zu versendenden Daten. Als Nächstes kommt die Methode dran, die den ExceptionHandler in der App registriert, siehe Listing 4. Hier wird der Standard-Uncaught- ExceptionHandler durch einen eigenen ersetzt, der alle nicht behandelten Ausnahmen abfangen soll. Wer in bestimmten Fällen auf den Standard zurückgreifen will, sollte sich den DefaultUncaughtExceptionHandler vorher als Member zwischenspeichern. In der CrashTestActivity müssen Sie in der Methode oncreate()folgende Zeile hinzufügen: MyExceptionHandler.get- Instance().register(this, "www.irgendein-server.de/submiterror/"); Um die Exceptions abzufangen, überschreiben Sie die uncaughtexception-methode, in der Sie entscheiden können, was mit der Exception geschehen soll, siehe Listing 5. Bei einer abgefangenen Exception werden die nötigen Daten beschafft, ein Dialog wird gestartet und ihm werden die Daten übergeben. Die Methode put- ExtraValue benötigen Sie, um zum Beispiel Variablenwerte zum Senden hinzuzufügen. In Ihrer App können Sie sich die Instanz des Error- Handlers halten und dieser, wenn nötig, die Werte bestimmter Variablen übermitteln. In der HashMap werden bereits vorhandene Werte überschrieben, sodass immer die aktuellsten Daten übermittelt werden. Listing 2: Einen Fehler erzeugen public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); findviewbyid(r.id.crashbutton).setonclicklistener ); (new OnClickListener(){ public void onclick(view v) { new String().charAt(1); Listing 3: Den Fehler abfangen public class MyExceptionHandler implements Thread.UncaughtExceptionHandler { private static MyExceptionHandler instance; private Context context; private String url; private static Map<String, String> values = new HashMap<String, String>(); public static final String STACKTRACE = "stacktrace"; public static final String APPLICATION_NAME = "application_name"; public static final String APPLICATION_VERSION = "application_version"; public static final String ANDROID_VERSION="android_version"; public static final String MODEL = "model"; public static final String URL = "url"; public static final String KEYS = "keys"; public static final String VALUES = "values"; private MyExceptionHandler(){ public static MyExceptionHandler getinstance() {... if (instance == null) { instance = new MyExceptionHandler(); return instance; Listing 4: Den Handler registrieren public void register(context context, String url) { this.context = context; this.url = url; Thread.setDefaultUncaughtExceptionHandler(this); 1/

3 Listing 5: Eine Exception abfangen public void uncaughtexception(thread thread, Throwable ex) { //Den Stacktrace aus der Exception holen StringWriter stacktrace = new StringWriter(); ex.printstacktrace(new PrintWriter(stackTrace)); //Name und Version der App beschaffen PackageManager packagemanager = context.getpackagemanager(); String appname = ""; String version = ""; try { appname = String.valueOf(packageManager.getApplicationInfo (context.getpackagename(),0).loadlabel(packagemanager)); version = packagemanager.getpackageinfo (context.getpackagename(),0).versionname; catch (NameNotFoundException e){ e.printstacktrace(); Intent intent = new Intent(context, ErrorReportDialog.class); //Die zu versendenden Daten der Hashmap hinzufügen values.put(stacktrace, stacktrace.tostring()); values.put(application_name, appname); values.put(application_version, version); values.put(android_version, Build.VERSION.RELEASE); values.put(model, Build.MODEL); // Dem Dialog die benötigten Daten mitgeben intent.putextra(application_name, appname); intent.putextra(url, url); intent.putextra(keys, values.keyset().toarray (new String[values.size()])); intent.putextra(values, values.values().toarray (new String[values.size()])); //Den Dialog starten context.startactivity(intent); //Den Prozess der App beenden Process.killProcess(Process.myPid()); System.exit(10); public void putextravalue(string key, String value) { values.put(key, value); Autor Der Error-Report-Dialog ReportDialog benötigt. Beim Eintragen in die Datei manifest.xml wählen Sie, da es ja schließlich ein Dialog werden soll, das passende Theme dafür aus: <activity android:name = "ErrorReportDialog" android:theme= Der Dialog erklärt dem Benutzer mit einem Text die Situation und enthält außerdem ein Kommentarfeld und zwei Buttons. Mit dem ersten Button kann der Anwender den Error-Report versenden, mit dem zweiten Button kann er den Dialog beenden. Den Titel des Dialogs setzen Sie im Code, da er sich je nach App, in der das benutzt wird, ändert, siehe dazu Listing 6. Das Layout report_dialog.xml könnte ungefähr so aussehen wie in Bild 5 dargestellt. Den Text könnte man natürlich in die strings.xml auslagern, aber für das Beispiel ist das nebensächlich. Nun geht es an die Activity des Dialogs. Diese implementiert das Interface OnClickListener, da Sie für die simplen Funktionen der beiden definierten Buttons keine eigene Klasse benötigen, siehe Listing 7. Wenn der Benutzer den Cancel- Button anklickt, sollte die Activity beendet werden. Anderenfalls werden vor dem Beenden die Daten gesendet und es wird eventuell ein netter Toast angezeigt, um sich beim Benutzer zu bedanken, siehe Listing 8. Die reporterror-methode startet für das Senden einen neuen Thread, um den UI-Thread nicht zu blockieren, siehe Listing 9. Auf diese Weise kann der Benutzer sein Android-Phone sofort weiterbenutzen. Beachten Sie bei Threads, dass der Exception-Handler immer nur per Thread gesetzt wird. Denken Sie also bei jedem neuen Thread daran, den Handler zu registrieren! In diesem Fall würde es jedoch keinen Sinn machen, den Handler im neuen Thread zu registrieren, da sich der Handler bei einem Fehler nur wieder selbst aufrufen würde. Tobias Knell arbeitet als Softwareentwickler bei der Firma Synyx GmbH & Co. KG in Karlsruhe an Webanwendungen und Android-Apps. Der Dialog soll dem Benutzer mitteilen, was bei dem Programm schiefgelaufen ist. Gleichzeitig soll er ihm auch die Möglichkeit geben, den Entwickler von dem Absturz in Kenntnis zu setzen. Wenn der Benutzer darüber hinaus in einer Kommentarbox noch zusätzliche Angaben zum Fehler machen kann, so kann das die Reproduktion dieses Fehlers erleichtern. Wieder wird eine neue Activity Error- Der Stacktrace zum Fehler wird dem Entwickler angezeigt (Bild 3) Den Report versenden Der Dialog ist fertig, es fehlt nur noch die Klasse ErrorSender, die den Fehlerbericht an einen Server sendet. Für das Senden des Reports ist ein kleines, leichtes Format wie JSON hervorragend 44 Mobile Developer Android 1/2011

4 ANDROID Mit dem beschriebenen Ansatz ist es leider nicht möglich, die Fehlermeldung Application not responding (ANR) abzufangen, die auftritt, wenn eine Benutzerinteraktion länger als fünf Sekunden nicht bearbeitet werden Version, das Modell des Geräts und eigene Wer- wichtig sind, wie beispielsweise die Androidkonnte. In diesem Fall wird wie gewohnt der te, wie etwa die Inhalte von Variablen. Darüber Standard-Handler aufgerufen. Ein weiterer hinaus können Sie die Funktionen dieses An- Nachteil besteht darin, dass Sie die Serverseite selbst implementieren müssen und diese Listing 7: Die Activity des Error-Dialogs nicht schon, wie im Android public class ErrorReportDialog extends Activity implements OnClickListener { Market, hübsch aufbereitet zur private String url; Verfügung steht. private String[] keys; Ein Vorteil ist, dass Sie sämtliche Informationen übermit- private EditText reporttext; private String[] values; teln können, die für die Nachvollziehbarkeit von Fehlern geeignet. Die Daten können schnell in einen JSON-String umgewandelt werden und sind aufgrund des geringen Umfangs rasch verschickt, siehe Listing 10. An dieser Stelle soll darauf verzichtet werden, Fehler beim Versenden abzufangen und die Reports für einen erneuten Sendeversuch zu speichern. Wenn Sie diese Funktion selbst ergänzen, dann müssen Sie auf die Menge der gespeicherten Reports achten. Falls der Benutzer längere Zeit keine Verbindung zum Server aufbaut, können sich ziemlich schnell größere Pakete mit Reports ansammeln. Vor- und Nachteile dieses Ansatzes Die CrashTest-App mit Android- Maskottchen als Button (Bild 4) Listing 6: Die Oberfläche für den eigenen Fehlerdialog <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp" android:gravity="center_horizontal"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="an unexpected error has occured and forced the app to close.\n Please help us to fix this error by reporting it." /> <EditText android:hint="optional comment" android:lines="2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="20dp" android:imeoptions="actiondone" /> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_margintop="20dp"> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="cancel" android:layout_weight="1" android:layout_marginright="10dp"/> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="report" android:layout_weight="1"/> protected void oncreate(bundle savedinstancestate) {... super.oncreate(savedinstancestate); requestwindowfeature(window.feature_left_icon); setcontentview(r.layout.report_dialog); Intent intent = getintent(); url = intent.getstringextra(myexceptionhandler.url); keys = intent.getstringarrayextra(myexceptionhandler.keys); values = intent.getstringarrayextra(myexceptionhandler.values); settitle(intent.getstringextra(myexceptionhandler.application_name) setfeaturedrawableresource + " has crashed"); (Window.FEATURE_LEFT_ICON,android.R.drawable.ic_dialog_alert); findviewbyid(r.id.cancelbutton).setonclicklistener(this); findviewbyid(r.id.reportbutton).setonclicklistener(this); reporttext = (EditText) findviewbyid(r.id.comment); 1/

5 Listing 8: Ein Toast auf den geduldigen Anwender! public void onclick(view v) { if (v.getid() == R.id.reportButton){ reporterror(); Toast.makeText(this.getApplicationContext(), "Thank you for supporting us!", Toast.LENGTH_SHORT).show(); finish(); Listing 9: Daten für den Error-Report zusammenstellen private void reporterror() { new Thread() { public void run() { //In neuen Threads den Handler erneut registrieren //MyExceptionHandler.getInstance().register (ErrorReportDialog.this,"www.Irgend-Ein-Server.de/ submiterror/"); //Den Benutzer-Kommentar aus dem EditText holen String comment = reporttext.gettext().tostring(); //Und letztendlich den Fehler abschicken ErrorSender.sendError(url, comment, keys, values);.start(); Listing 10: Den Fehlerbericht versenden public class ErrorSender { public static void senderror(string url, String comment, String[] keys, String[] values) { try { //Den JSON-String aus den Daten erstellen JSONObject jsonobj = new JSONObject(); for (int i = 0; i < keys.length; i++) { jsonobj.put(keys[i], values[i]); //Nur ausgefüllte Kommentar hinzufügen if (!comment.equals("")) { jsonobj.put("comment",comment); send(url, jsonobj.tostring()); catch (Exception ex) { ex.printstacktrace(); private static void send(string url, String jsonstring) throws Exception { StringEntity entity; entity = new StringEntity(jsonString); HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); post.setentity(entity); client.execute(post); Der selbst gebaute Fehlerdialog (Bild 5) satzes je nach Bedarf anpassen. Dazu zählen verschiedene Anzeigemöglichkeiten bei Abstürzen oder alternative Arten, den Report zu senden. Der vielleicht größte Vorteil des hier vorgestellten Ansatzes besteht jedoch in der hohen Durchdringung. Er unterstützt nämlich anders als bei der nativen Lösung auch Apps, die nicht aus dem Android Market heruntergeladen wurden. Und nicht zuletzt funktioniert diese Lösung für alle Android-Versionen ab 1.5. Andere Lösungen Natürlich gibt es auch schon andere Ansätze, die ein eigenes bereitstellen. Bekannt ist ACRA [1], eine - Bibliothek mit zahlreichen Funktionen. Ihr fehlt allerdings momentan ein direkt angezeigter Fehlerdialog. Das Feedback für den Benutzer wird lediglich über eine Notification realisiert, die den Dialog aufruft. Eine weitere Lösung ist Flurry Analytics [2], eine mächtige Analysebibliothek, mit der man die Möglichkeit hat, alle erdenklichen Informationen über das Benutzerverhalten, aber auch Fehlermeldungen zu sammeln. Sie ist zurzeit kostenlos, kostenpflichtige Leistungen sollen aber folgen. Fazit Der in diesem Artikel vorgestellte Ansatz deckt sicherlich nicht alle Anforderungen an ein ab, er bietet aber die wichtigsten Funktionalitäten in schlanker Form. Der Quelltext der Lösung ist unter der Apache-2.0-Lizenz auf der Heft-CD vorhanden und kann beliebig erweitert werden. [ml] [1] ACRA; [2] Flurry Analytics; 46 Mobile Developer Android 1/2011

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

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

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

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

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

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

Google Android API. User Interface. Eine knappe Einführung Google Android API User Interface Eine knappe Einführung Google Android API User Interface Designelement Wofür Klasse/Package View Basisklasse für alle Designelemente public class android.view.view Viewgroup

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

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

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

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

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt 14.4.2016 Technische Hochschule Georg Agricola WORKSHOP TEIL 3 IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt Inhaltsverzeichnis 1. Kurzfassung zur Projekterstellung... 2 2. Morse-Tabelle...

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

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

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

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

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

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Aufgabe 1 Bitte schreiben Sie ein RMI Objekt, das eine Person repräsentiert. Es soll die folgende Schnittstelle implementieren: public interface Person

Mehr

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf 16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen

Mehr

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

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

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

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

Android-Geräte Programmieren 4. Hinweise zur Android-Programmierung. Stefan Rothe Android-Geräte Programmieren 4. Hinweise zur Android-Programmierung Stefan Rothe 2014 01 29 Rechtliche Hinweise Dieses Werk von Thomas Jampen und Stefan Rothe steht unter einer Creative Commons Attribution-Non-

Mehr

Android Theading Android Kurs Stufe 2 (Orangegurt)

Android Theading Android Kurs Stufe 2 (Orangegurt) Android Kurs Stufe 2 (Orangegurt) Inhaltsverzeichnis 1 Threading... 2 2 Umzusetzende Funktionalität... 3 3 Lösung mit eigenem Thread... 4 3.1 Die einfache Thread Lösung... 4 3.2 Thread Lösung mit eigener

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

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

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

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

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Anzeige des Java Error Stack in Oracle Forms

Anzeige des Java Error Stack in Oracle Forms Anzeige des Java Error Stack in Oracle Forms (Version 2.0) Juni 2008 Autoren: Jürgen Menge / Thomas Robert Seite 1 von 7 Oracle Forms bietet seit der Version 6i die Möglichkeit, serverseitig Java-Klassen

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

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

am Beispiel von JUnit

am Beispiel von JUnit Aufbau eines Testwerkzeugs am Beispiel von JUnit Üblicher Ansatz für Tests und Fehlersuche: Print-Befehle, Debugger-Ausdrücke, Test-Skripte möglichst über globale Variable debug steuerbar Command Pattern

Mehr

Gebundene Typparameter

Gebundene Typparameter Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte

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

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

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

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

Mehr

Tutorial. Programmierung einer Android-Applikation Notizzettel. Teil 2

Tutorial. Programmierung einer Android-Applikation Notizzettel. Teil 2 Tutorial Programmierung einer Android-Applikation Notizzettel Teil 2 Autor: Oliver Matle Datum: April 2014, Version 1.0 Autor: Oliver Matle, www.matletarium.de Seite 1 von 23 Inhaltsverzeichnis Kapitel

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

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

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau

Mehr

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München Time CGI Version 1.5 Stand 04.12.2013 TimeMachine Dokument: time.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor Version Datum Kommentar

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Das Handbuch zu Blogilo. Mehrdad Momeny Übersetzung: Burkhard Lück

Das Handbuch zu Blogilo. Mehrdad Momeny Übersetzung: Burkhard Lück Mehrdad Momeny Übersetzung: Burkhard Lück 2 Inhaltsverzeichnis 1 Einführung 5 2 Blogilo benutzen 6 2.1 Erste Schritte......................................... 6 2.2 Einen Blog einrichten....................................

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Definition Web Service

Definition Web Service Gliederung Einführung Definition Web Service Drei Schhichtenmodell Architectural Model System Model Web Service Standards SOAP WSDL UDDI Types of Web Services Programmatic Web Services Interactive Web

Mehr

License Management 1.0 - SDK

License Management 1.0 - SDK License Management 1.0 - SDK Inhalt Allgemeine Beschreibung... 2 Vorbereitungen... 2 Download aller nötigen Dateien und Dokumentationen... 2 Beantragung eines ValidationKeys... 2 Beantantragung einer Development-Lizenz...

Mehr

Microsoft.NET & IBM System i - Webanwendungen und Webservices II Christian Neißl, 20.11.2011

Microsoft.NET & IBM System i - Webanwendungen und Webservices II Christian Neißl, 20.11.2011 Microsoft.NET & IBM System i - Webanwendungen und Webservices II Christian Neißl, 20.11.2011 Der älteste und noch immer verwendete Weg Daten über Web auszutauschen ist das http - Protokoll. Mit der http-methode

Mehr

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

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 Inhalt Toast-Meldungen Permissions Sensoren GPS (Global Positioning System) Kamera Anzeigen von Koordinaten auf einer

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Praktikum Datenbanksysteme Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Tomcat-Installation $JAVA_HOME (z.b. /home/dbp00/j2sdk1.4.2) $CATALINA_HOME (/home/dbp00/jakarta-tomcat-4) Skripte zum Start/Stop:

Mehr

Auszug aus Axis2 Übungen

Auszug aus Axis2 Übungen Auszug aus Axis2 Schulung -1- Auszug aus Axis2 Übungen Version 1.1 Dieses Dokument ist ein Auszug aus unserem Übungsskript zur Axis2-Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen.

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

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

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Das Programm Mensch ärgere Dich nicht ermöglicht das Spielen des gleichnamigen Spieles über Netzwerke. Jeder Spieler verfügt dabei über einen Clienten,

Mehr

Höhere Programmierkonzepte Testklausur

Höhere Programmierkonzepte Testklausur Höhere Programmierkonzepte Testklausur Prof. Dr. Nikolaus Wulff Zum 15. Januar 2016 1 Ein Google-Map Algorithmus (5 Punkte) 1 2 typedef void X; 3 typedef void Y; 4 5 void map(unsigned int n / tuple length

Mehr

Ogre Einführung Teil 1

Ogre Einführung Teil 1 Inhalt -Einleitung -Installieren und Einrichten von Ogre -Die erste Anwendung Ogre Einführung Teil 1 Einleitung Eine 3D Engine ist eine sehr komplexe Software und besteht aus mehreren tausend Zeilen Programmcode.

Mehr

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.

Mehr

WCF Services in InfoPath 2010 nutzen

WCF Services in InfoPath 2010 nutzen WCF Services in InfoPath 2010 nutzen Abstract Gerade wenn man schreibend von InfoPath aus auf eine SQL-Server Datenbank zugreifen will, kommt man quasi um einen Web Service nicht herum. In diesem Post

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Low-Level Client-Server Architektur

Low-Level Client-Server Architektur Softwareentwicklung in verteilten Umgebungen Einführung Übung 1 Low-Level Client-Server Architektur Alexander Lex 1 KEINE PLAGIATE! Einzel-Übungen! Eigenständige Arbeit jedes Teilnehmers Weitergabe von

Mehr

Praktikum Spring MVC. 1.2. Spring integrieren In der pom.xml Einträge für Spring hinzufügen.

Praktikum Spring MVC. 1.2. Spring integrieren In der pom.xml Einträge für Spring hinzufügen. Praktikum Spring MVC Aufgabe 1 Im ersten Teil des Praktikums wird eine Test Webapplikation entwickelt, anhand derer einige Konzepte von Spring nachvollzogen werden können. Dabei handelt es sich um Spring

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

Mobile Anwendungen Google Cloud Messaging

Mobile Anwendungen Google Cloud Messaging Mobile Anwendungen Google Cloud Messaging 1. Allgemeines zu Google Cloud Messaging (GCM): - 60% der Top 100 Apps nutzen Google Cloud Messagging - 200.000 Messages pro Sekunde = 17 Milliarden Messages pro

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

Mehr

Zeiterfassungsanlage Handbuch

Zeiterfassungsanlage Handbuch Zeiterfassungsanlage Handbuch Inhalt In diesem Handbuch werden Sie die Zeiterfassungsanlage kennen sowie verstehen lernen. Es wird beschrieben wie Sie die Anlage einstellen können und wie das Überwachungsprogramm

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

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

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung Aufgabe Editor package BA.GUI.Swing; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.logging.level; import java.util.logging.logger;

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

9. Remote Method Invocation Grundlagen der Programmierung II (Java) 9. Remote Method Invocation Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

ab Redirector-Version 2.14

ab Redirector-Version 2.14 Installation: FilterSurf ab Redirector-Version 2.14 Hier werden nun die Schritte erläutert, die nacheinander zu durchlaufen sind, um einen der zentralen FilterSurf -Server verwenden zu können. Die Installationsschritte

Mehr

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit List & Label 16 List & Label Windows Azure List & Label Windows Azure - 2 - Inhalt Softwarevoraussetzungen 3 Schritt 1: Neues Projekt

Mehr

Hivemind Ein leichtgewichteter Container

Hivemind Ein leichtgewichteter Container Hivemind Ein leichtgewichteter Container Manfred Wolff, wolff@manfred-wolff.de, www.manfred-wolff.de Container sind Laufzeitumgebungen für Objekte. Der mächtigste Container im Java-Umfeld der EJB Container

Mehr

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen

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

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/15 1 / 24 Singleton-Muster 2 / 24 Das Singleton Im einfachsten Fall wird ein Singleton über

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

2.2 Prozesse in Java

2.2 Prozesse in Java 2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.

Mehr

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS)

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS) Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Automatisierung, Betrieb, Middleware Einleitung Der Oracle Fusion Middleware Stack beinhaltet eine leistungsstarke

Mehr

IT in der Arztpraxis Technisches Handbuch zum Kodierassistenten

IT in der Arztpraxis Technisches Handbuch zum Kodierassistenten Technisches Handbuch zum Kodierassistenten [KBV_ITA_AHEX_Handbuch_Kodierassistent] Dezernat 6 Informationstechnik, Telematik und Telemedizin 10623 Berlin, Herbert-Lewin-Platz 2 Kassenärztliche Bundesvereinigung

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Secure Mail. Leitfaden für Kunden & Partner der Libera AG. Zürich, 11. November 2013

Secure Mail. Leitfaden für Kunden & Partner der Libera AG. Zürich, 11. November 2013 Secure Mail Leitfaden für Kunden & Partner der Libera AG Zürich, 11. November 2013 Aeschengraben 10 Postfach CH-4010 Basel Telefon +41 61 205 74 00 Telefax +41 61 205 74 99 Stockerstrasse 34 Postfach CH-8022

Mehr

FÜR GOOGLE ANDROID OPERATING SYSTEM. Dokumentation. Version 1.2013. 2013 NAM.IT Software-Entwicklung Alle Rechte vorbehalten.

FÜR GOOGLE ANDROID OPERATING SYSTEM. Dokumentation. Version 1.2013. 2013 NAM.IT Software-Entwicklung Alle Rechte vorbehalten. FÜR GOOGLE ANDROID OPERATING SYSTEM Dokumentation Version 1.2013 2013 NAM.IT Software-Entwicklung Alle Rechte vorbehalten. 1 Information Diese Dokumentation beschreibt die Funktionen der kostenpflichten

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Technische Dokumentation SilentStatistikTool

Technische Dokumentation SilentStatistikTool Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...

Mehr

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

Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook. 14. Januar 2015 Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook 14. Januar 2015 Überblick Modell- und Codegenerierung (M2C, C2M) Modellinterpretation vs. Modellübersetzung PIMAR Code-Generierung am Beispiel des

Mehr