Projektdokumentation. Erweiterte Realität am Fallbeispiel eines Smartphones

Größe: px
Ab Seite anzeigen:

Download "Projektdokumentation. Erweiterte Realität am Fallbeispiel eines Smartphones"

Transkript

1 Projektdokumentation Hochschule Fulda Wintersemester 2010/2011

2 Inhaltsverzeichnis 1. Einleitung 2 2. Vorbereitung Augmented Reality Einarbeitung in die Entwicklungsumgebung von Android Das Betriebssystem Android und dessen Entwicklungsumgebung Android SDK, Eclipse und ADT Debuggen mittels ADB, DDMS Augmented Reality beispielhafte Umsetzung für Android Erste Schritte Zugriff auf die Kamera OpenGL ES Objekte erstellen und einbinden Sensorwerte auslesen und benutzen GPS-Daten auslesen und benutzen OpenGL ES Objekte innerhalb des Kamerabildes anzeigen lassen Mit Hilfe der Sensorwerte, OpenGL ES Objekte dynamisch im Raum bewegen lassen Persönliches Fazit Anhang Seite 1 / 27

3 1. Einleitung Anhand dieses Projektes möchte ich einen Einblick in die Augmented Reality (dt. Erweiterte Realität) geben und anhand einer Beispielanwendung für ein Smartphone zeigen, wie man solch eine Anwendung umsetzen könnte. Die Idee zu diesem Projekt kam mir einerseits durch meine Interesse an Googles neuem mobilen Betriebssystem Android und andererseits durch den immer größeren werden Hype rund um das Thema Augmented Reality. In den verschiedensten Medien setzt man sich mit diesem Thema auseinander. Erste Anwendungen für verschiedene Smartphones und Spielekonsolen sind bereits entworfen wurden. Einige Marketing-Abteilungen setzen bereits auf Augmented Reality, um Kunden ein interessanteres und umfangreiches Angebot präsentieren zu können. Alle Anwendungen haben eins gemeinsam: sie verwenden Endgeräte und binden mit Hilfe von Sensoren und Kameras virtuelle Objekte in das Display des Endgerätes ein. Was nun genau mit Augmented Reality gemeint ist, möchte ich im nächsten Kapitel kurz erläutern. Für ein auf Android basierendes Smartphone soll eine solche Anwendung beispielhaft umgesetzt werden. Aufgrund des engen Zeitrahmens habe ich mich nur auf die wesentlichen Grundstrukturen für die Entwicklung einer Augmented Reality Anwendung begrenzt. Diese sollen aber einen guten Einstieg in die Entwicklung vermitteln und Anreiz bieten, weit aus komplexere Anwendungen zu gestalten. Voraussetzungen hierfür sind neben Kenntnissen in der Programmiersprache JAVA auch Geduld und genügend Zeit, die die Einarbeitungszeit für sich beanspruchen wird. Zunächst soll ein Einblick in die Entwicklungsumgebung von Android gegeben werden, welche die ersten Schritte bis hin zur ersten eigenen Anwendung erklärt. Da auch das Debuggen und die Fehlersuche immer hilfreich sein können, werde ich auch hierzu ein paar Worte schreiben Seite 2 / 27

4 Im Anschluss daran werden die Grundstrukturen einer Augmented Reality Anwendung für Android vorgestellt und gezeigt, wie diese umgesetzt werden können. 2. Vorbereitung 2.1 Augmented Reality Am Anfang meines Projektes stand für mich zunächst die Informationsbeschaffung und die Auseinandersetzung mit der Frage Was ist Augmented Reality eigentlich? an. Des Weiteren war es wichtig für mich, mich in die Entwicklungsumgebung von Android einzuarbeiten und mich mit der Programmierung einer Anwendung für ein auf Android basierendes Smartphone vertraut zu werden. Zum Thema Augmented Reality verfolgte ich neben diversen Blogeinträgen insbesondere im Social Network Twitter Beiträge zu diesem Thema, da hier relativ viele Informationen innerhalb des gesamten Zeitrahmens gefunden werden konnten. Man muss beachten, dass dieses Thema zur Zeit einen richtigen Ansturm erlebt und es eine Fülle an Informationen gibt. Unter all diesen Informationen fanden sich bereits Anwendungen, die das Konzept der Augmented Reality gut umsetzten. Das Konzept der Augmented Reality besteht darin, durch eine Kombination von virtueller Realität mit der Realität dem Benutzer zusätzliche Informationen im Form von Textnachrichten oder grafischen Objekten in Echtzeit anzubieten, die kontextabhängig dargestellt werden. Die Einblendung dieser Informationen geschieht meist über das Sichtfeld des Benutzers, beispielsweise über ein Display eines Smartphones oder einer Datenbrille. So wird das reale Sichtfeld eines Seite 3 / 27

5 Touristen beispielsweise durch auf seinem Smartphone-Display eingeblendete Hinweise und Erklärungen zum aktuellen Standort erweitert. Die Anwendung Layar sei hierfür als Beispiel genannt. Abb. 1: Layar: The first mobile augmented reality browser, SHAWN HONNICK, ;http://the-mobiler.com/layar-the-first-mobileaugmented-reality-browser; Stand: Im Bereich der Spieleindustrie hat die Augmented Reality ebenfalls erste Fortschritte gemacht. Als Beispiel sei hier Kinect genannt. Ein System zur Bewegungssteuerung auf der Xbox360. Lediglich über drei verschiedene Kameras wird der gesamte Körper des Spielers analysiert und Bewegungen entsprechend umgesetzt. Die Anwendungszwecke einer Augmented Reality Anwendung reichen also von Spielen, über die ins Sichtfeld projektierte Navigation bis hin zu Informationen über die unmittelbare Umgebung Seite 4 / 27

6 2.3 Einarbeitung in die Entwicklungsumgebung von Android Die Einarbeitung in die Entwicklungsumgebung von Android nahm ich mir anhand verschiedener Tutorials vor. Dazu verwendete ich neben neu erschienener Literatur, die sich mit diesem Thema auseinandersetzte, auch diverse Artikel aus Fachzeitschriften, die in die Programmierung einführten, Details und Struktur von Android erklärten und anhand von kleineren Anwendungsfällen ebenfalls erste Schritte zur eigenen Anwendungen führten. Sämtlich verwendete Literatur kann dem Literaturverzeichnis entnommen werden. 3. Das Betriebssystem Android und dessen Entwicklungsumgebung Bei Android handelt es sich um eine Linux-Plattform, die von der Open Handset Alliance (OHA) ständig weiterentwickelt und als Open-Source-Software zur Verfügung gestellt wird. Die OHA umfasst mittlerweile 79 Mitglieder, darunter zahlreiche bekannte Firmen der mobilen Welt. Android ist inzwischen nicht nur auf Smartphones im Einsatz, sondern auch auf Tablets, in Googles TV-Plattform und im Automobilbereich. Die Anwendungen für Android werden üblicherweise in Java geschrieben, die dann unter einer virtuellen Maschine namens Dalvik laufen (DVM). Dalvik ähnelt der Java Virtual Machine (JVM), denn beide führen letztendlich Byte-Code aus. Allerdings unterscheidet sich die Prozessorarchitektur: im Gegensatz zu einer JVM, die auf Stapelmaschinen aufbaut, baut DVM auf einer Registermaschine auf. Übersetzte Anwendungen enden daher auch nicht auf *.class sondern auf *.dex. Folgende Abbildungen soll dies verdeutlichen: Seite 5 / 27

7 Android App.java APK Android Java APIs Dalvik VM Native Bibliotheken Linux Kernel Abb. 2: vgl. Schichtung des Android-Systems, Markus Junginer; ix Androiden auf dem Vormarsch S. 18ff.class.jar xml Dateien Abb. 3: vgl. Wie ein Android Package entsteht, Markus Junginer; ix Androiden auf dem Vormarsch S. 18ff.dex Binär-XML Dateien Ausgeführte Android-Anwendungen werden als eigener Prozess ausgeführt, was zu einer erhöhten Sicherheit und Stabilität führt. Des Weiteren können mehrere Anwendungs-Prozesse aktiv zur gleichen Zeit laufen. Im Hintergrund laufende Anwendungen werden vom System automatisch nach einer bestimmten Zeit beendet, oder wenn Ressourcen zurückgeholt werden müssen. Das Besondere an Android-Anwendungen ist die Zuordnung von Aktivitäten (Activities), die letztendlich die Schnittstelle zum Benutzer darstellen. Es kann immer nur eine Aktivität einer Anwendung aktiv sein, mit der der Nutzer interagieren kann. Für die Entwicklung von Android-Anwendungen ist es essentiell, den Lebenszyklus von Aktivitäten und deren Zusammenspiel mit dem Anwendungsprozess zu verstehen. Folgende Abbildung soll einen vereinfachten Lebenszyklus einer Aktivität darstellen, die durch Aufruf der Callback-Methoden interagiert: Seite 6 / 27

8 Activity gestoppt, wird eventuell noch mal ausgeführt oncreate onresume Activity läuft Activity wird fortgesetzt onpause - mit Aufruf einer Aktivität, wird ein Activity-Objekt erstellt - Initialisierung folgt durch Aufruf von oncreate-methode - onresume-methode holt die Aktivität in den Vordergrund - wird die Aktivität verlassen, wird onpause-methode aufgerufen 1 (weitere weniger relevante Callback-Methoden sind der SDK-Dokumentation zu entnehmen) Für die Entwicklung von Android-Anwendungen in der Praxis empfiehlt sich der Einsatz von Eclipse mit installierten Android Development Tools (ADT). Alternativen wären Ant 2 oder IntelliJ IDEA Grundvoraussetzung ist die Installation des Android SDK und natürlich einer vorhandenen JVM. Im Folgenden möchte ich die Installation des Android SDK und die Einrichtung der Entwicklungsplattform Eclipse erläutern Seite 7 / 27

9 3.1 Android SDK, Eclipse und ADT Unter der Internetadresse finden sich Installationsanweisungen. Im Prinzip muss das entsprechende Paket heruntergeladen, ausgeführt und installiert werden. Anschließend wird in Eclipse über Help Install New Software Add Sites die Adresse https://dlssl.google.com/android/eclipse hinzugefügt und ein entsprechender Name vergeben. Per Update Funktion kann nun in Eclipse der Android Device Manager installiert und konfiguriert werden. Zum Schluss muss Eclipse nur noch der Pfad zum installierten Android SDK mitgeteilt werden. Dazu unter Windows Preferences öffnen, Android auswählen und den entsprechenden Pfad angeben Seite 8 / 27

10 Der Android Device Manager sollte nun in der Lager sein, alle zur Verfügung stehenden Android Plattformen herunterzuladen und einzurichten Seite 9 / 27

11 Wurde alles ordnungsgemäß eingerichtet, kann nun über File New Other Android Android Project ein Android Projekt erstellt werden: Seite 10 / 27

12 3.2 Debuggen mittels ADB, DDMS Bei der Entwicklung von Softwareprodukten ist es essentiell, die erstellte Software auf Fehler zu überprüfen oder ausgegebene Fehlermeldungen zu analysieren und zu beheben. Allerdings sind Fehler auf echten Android Geräten zur Laufzeit schwerer zu entdecken. Hinzu kommt, dass sich der Android Emulator von den echten mobilen Geräten im Verhalten unterscheidet. Mit Unterstützung der bereitgestellten Tools, Hilfsmittel und Techniken soll die Fehlersuche schneller von Statten gehen. Eines der vom Android SDK zur Verfügung gestelltes Programm ist die Android Debug Brigde (ADB), die eine Verbindung zwischen ADT und dem Emulator. Des Weiteren ermöglicht die ADB es, auf laufendem Programmcode des Emulator oder eines angeschlossenes Android-Smartphones zuzugreifen. Dabei stellt ADB neben Befehlen für Kopieren, Installieren von Dateien bzw. Anwendungen, Auslesen von System-Log-Einträgen auch eine Remote Shell zur Verfügung. In Eclipse ist die ADB bereits durch das Plugin ADT integriert. Mittels des Dalvik Debug Monitor Service (DDMS) lassen sich Anwendungsprozesse auf einem Android-Smartphone oder im Emulator überwachen. Der DDMS ähnelt den bereits bekannten Debuggen eines Java- Programms. Viele Funktionen der ADB lassen sich von hier aus bequem steuern, da diese integriert ist. Des Weiteren ist es möglich Screenshots aufzunehmen, eine Port-Weiterleitung einzurichten, SMS, GPS-Daten und Anrufe zu simulieren sowie thread- und heap-eigenschaften auszulesen. Um das Debugging auf einem Android-Smartphone zu starten, muss neben der Seite 11 / 27

13 korrekten USB-Treiberinstallation für das jeweilige Betriebssystem (wird normalerweise mit der Android SDK Installation vorgenommen, weitere Informationen findet man in der Dokumentation 4 ) auch der Debugger-Modus auf dem Android-Smartphone selbst eingestellt sein. Entsprechende Einstellung hierzu findet man unter Einstellungen Anwendungen Entwicklung Häkchen bei USB-Debugging. Der Punkt Falsche Standorte ermöglicht es, GPS-Daten zu simulieren. Abschließend muss noch ein Eintrag im Android-Manifest vorgenommen werden. Das <application>-tag muss um das Attribut android:debugable= true erweitert werden. Da sich das Betriebssystem Android seit seinem Erscheinen schnell weiterentwickelt hat, ist es für Entwickler erforderlich, sich stets über Aktualisierungen und Neuerungen zu informieren. Sind die grundlegenden Fakten, wie der Aktivitäten-Lebenszyklus verstanden, sollte die Entwicklung von Android-Anwendungen nicht schwer fallen. Dennoch bietet die API stets Neuigkeiten und Herausforderungen, allein die Gestaltung eines professionellen Userinterfaces erfordert viel Erfahrung. Die SDK Dokumentation bietet hier jedoch einen ersten Einstieg, auch wenn sie meines Erachtens noch recht mager ausfällt Seite 12 / 27

14 4. Augmented Reality beispielhafte Umsetzung für Android Es gibt unterschiedliche Ansätze für Augmented Reality auf mobilen Endgeräten. Neben Bilderkennung von QR-Codes (zweidimensionaler Strichcode), Abfrage von GPS-Daten und/oder Sensorwerten, ist auch eine komplette Überlagerung der Realität mit erweiterten virtuellen Objekten möglich. Ich möchte im Folgenden die Ansätze zur Realisierung einer Augmented Reality Anwendungen erläutern. Für die Realisierung verwende ich ein Android-Smartphone von Samsung, das Galaxy S i9000, mit der zur Zeit aktuellen Android Version 2.2 (Froyo). Leider ist es mir aufgrund eines Fehlverhaltens meines Smartphones nicht möglich, die sensorbasierende Bewegung von OpenGL ES Objekten zu realisieren. Ich werde die Grundzüge aber vorstellen. Alle Codeschnipsel sind in der Verzeichnisstruktur aufgeführt und befinden sich vollständig im Dateiverzeichnis dieser Ausarbeitung. 4.1 Erste Schritte Zunächst muss die Aktivität für die Anwendung angelegt werden. Diese wird für die späteren Abläufe benötigt. Mit Erstellung eines neuen Android-Projektes wird dies vorgenommen. Folgender Code-Ausschnitt sollte dies darstellen: public class ersteaktivitaet extends Activity { /** Called when the activity is first created. public void oncreate(bundle savedinstancestate) { super.oncreate (savedinstancestate); setcontentview(r.layout.main); Wie bereits erwähnt, wird für den Anwendungs-Prozesse eine Aktivität mittels der oncreate-methode erstellt. Der Aufruf von der setcontentview-methode kümmert sich um das Layout, welches aus den Ressourcen geladen werden kann. Das Seite 13 / 27

15 Layout kann auch im Android-Manifest festgelegt werden. Nähere Informationen sind der Dokumentation 5 zu entnehmen. Je nach Hardware-Zugriff muss im Android-Manifest eine entsprechende Regelung festgelegt werden sonst bleibt der Zugriff verwehrt. Entsprechende Einträge kann man ebenfalls der Dokumentation 6 entnehmen. 4.2 Zugriff auf die Kamera Um nun auf die Kamera zuzugreifen, muss die setcontentview-methode so angepasst werden, dass das Vorschaubild der Kamera direkt eingebunden wird. public class Kamerabenutzung extends Activity { /** Called when the activity is first created. public void oncreate(bundle savedinstancestate) { super.oncreate public void onresume () { super.onresume(); setcontentview(new PreviewCamera (this)); Mit Ausführung der Aktivität wird ein sogenannter SurfaceView der Klasse PreviewCamera als Layout definiert. Die Klasse PreviewCamera ist hierbei für das Kamerabild verantwortlich, welches sie entsprechend darstellt. Die Klasse PreviewCamera muss hier die Klassen SurfaceHolder und SurfaceView implementieren. Die entsprechenden zu überschreibenden Methoden würden wie folgt aussehen: Seite 14 / 27

16 Camera camera; public PreviewCamera (Context context)extends SurfaceView implements SurfaceHolder.Callback { super (context); // TODO Auto-generated constructor stub getholder ().addcallback (this); getholder ().settype (SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); Die Variable camera dient zum Ansprechen der Hardwarekamera. Um Änderungen (Bild, Frame) der Kamera abzufragen, muss ein SurfaceHolder implementiert werden, der über einen entsprechenden SurfaceListener abgefragt public void surfacecreated (SurfaceHolder holder) { // TODO Auto-generated method stub camera = Camera.open (); try { camera.setpreviewdisplay (this.getholder ()); catch (IOException e) { Log.e("Camera", "camera.setpreviewdisplay(holder);"); public void surfacedestroyed (SurfaceHolder holder) { // TODO Auto-generated method stub try { camera.stoppreview (); camera.release (); catch (Exception e) { Log.e("Camera", e.getmessage()); Seite 15 / 27

17 Nur so ist es möglich, stets das aktuelle Bild der Kamera auf dem Display auszugeben. 4.3 OpenGL ES Objekte erstellen und einbinden Möchte man lediglich ein graphisches Objekt auf dem Display anzeigen lassen, so muss ebenfalls ein SurfaceView festgelegt werden, der vom Typ als SURFACE_TYPE_GPU festgelegt wird. Um entsprechende Methoden für OpenGL ES Objekte verwenden zu können müssen einige Klassen importiert werden. Android bietet hierzu neben der Klasse android.opengl.glu auch OpenGL ES über entsprechende Klassenbibliotheken an. Für die Beispielanwendung habe ich das Listing zu OpenGL ES aus dem Buch Android Anwendungen für das Handybetriebssystem erfolgreich programmieren von Heiko Mosemann und Matthias Kose verwendet. Es ist ebenfalls im Dateiverzeichnis vorhanden (Listing 16.3, Listing 16.4, Listing 16.5, Listing 16.6). Die Darstellung eines OpenGL ES Objektes entspricht im größten Teil der bisher bekannten Art und Weise wie übliche OpenGL Objeke dargestellt werden. In der init-methode werden alle relevanten Dinge für OpenGL ES initialisiert, über die getegl-methode wird eine Instanz festgelegt, die über die eglgetdisplay- Methode eine Verbindung zur Render-Ausgabe herstellt. Mittels der eglinitialize- Methode wird der EGL-Kontext geschaffen Seite 16 / 27

18 Seite 17 / 27

19 4.4Sensorwerte auslesen und benutzen Android-Smartphones bieten in der Regel zahlreiche Sensoren an, die ausgelesen werden können. Neben Bewegungs-, Beschleunigungssensoren, gibt es unter anderem auch magnetische Sensoren und Lagesensoren. Die Implementierung gestaltet sich relativ einfach: public class Sensoren extends Activity implements SensorEventListener { SensorManager sensor = null; final String tag = "Sensor"; /** Called when the activity is first created. public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); sensor = (SensorManager) getsystemservice(sensor_service); public void onaccuracychanged(sensor sensor, int accuracy) { // TODO Auto-generated method public void onsensorchanged(sensorevent event) { // TODO Auto-generated method stub public void onaccuracychanged(int sensor, int accuracy) { // TODO Auto-generated method stub Log.d(tag,"onAccuracyChanged: " + sensor + ", accuracy: " + accuracy); public void onsensorchanged(int sensor, float[] values) { // TODO Auto-generated method stub Log.d(tag, "onsensorchanged: " + sensor + ", x: " + values[0] + ", y: " + values[1] + ", z: " + values[2]); Zunächst muss die Klasse Sensoren einen SensorEventListener implementieren, Seite 18 / 27

20 der auf Ereignisse reagiert. Die Variable sensor vom Typ Sensormanager wird ein Sensortyp zugewiesen. Wenn nicht bekannt ist, welche Sensoren zur Verfügung stehen oder alle Sensoren abgefragt werden sollen, kann dies über SENSOR_SERVICE getätigt werden. Spätere Abfragen, um welchen Sensore es sich handelt sind möglich. Bei Änderungen sollen jeweils Log-Einträge verfasst werden. 4.5GPS-Daten auslesen und benutzen Ähnlich wie die Sensoren lassen sich auch die GPS Daten relativ einfach auslesen. Aus Platzgründen werde ich nur die relevanten Methoden hier vorstellen. Der kompletten Quelltext kann im Dateiverzeichnis betrachtet werden. public class GPS extends Activity implements LocationListener { LocationManager standort; final String tag = "GPS"; /** Called when the activity is first created. public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); standort = (LocationManager) getsystemservice(location_service); Die Klasse GPS muss, um GPS-Daten abfragen zu können, die Klasse LocationListener implementieren. Dadurch ist es möglich, Standortänderungen wahrzunehmen, Abfragen zum GPS-Status zu stellen und ggf. die Aktualisierung vorübergehend zu deaktivieren um Batterie zu sparen, zum Beispiel wenn der Anwendungs-Prozesse in den Hintergrund gerät Seite 19 / 27

21 @Override protected void onresume() { standort.requestlocationupdates(locationmanager.gps_provider, 5000, 10f, this); protected void onpause() { standort.removeupdates(this); super.onresume(); Sobald die Anwendung ausgeführt wird, soll der aktuelle GPS-Standort erfragt werden. Hierzu wird die onresume-methode überschrieben und der Variablen standort ein LocationListener hinzugefügt, der alle 5 Sekunden oder 10 Meter aktualisiert werden soll. Bei Unterbrechungen (Hintergrundprozess) soll die Aktualisierung deaktiviert werden. Hierzu wird die onpause-methode entsprechend überschrieben. 4.6OpenGL ES Objekte innerhalb des Kamerabildes anzeigen lassen Wie im vorherigen Teil angesprochen, muss ein SurfaceView angelegt werden, um auf dem Display eine entsprechende Ausgabe von der Kamera oder einem OpenGL ES Objekt zu erhalten. Wenn man nun beide Aspekte miteinander verbinden will, bedeutet dies, dass man im Prinzip zwei SurfaceView miteinander verbinden muss. Um es besser zu verstehen, kann man dies sich als zwei Ebenen vorstellen, die übereinander gelegt werden. Hier muss man allerdings beachten, dass eine der Ebenen, vorzugsweise die, die für die OpenGL ES Objekte verantwortlich ist, nur einen Teilbereich des anderen SurfaceViews ausfüllt und transparent dargestellt wird. Ansonsten sieht man im wahrsten Sinne des Wortes nur schwarz Seite 20 / 27

22 @Override public void onresume () { super.onresume(); glview = new GLLayer(this); previewcam = new PreviewCamera(this, glview); setcontentview (glview); addcontentview(previewcam, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); Es werden hier zwei SurfaceViews angelegt, wovon das erste (glview) für die Darstellung des OpenGL ES Objektes zuständig ist und previewcam sich um die Darstellung des Kamerabildes kümmert. Die Variable previecam ist wie im Beispiel für die Kamera implementiert wurden, also vom Typ PrevieCam. Die Klasse PreviewCam wurde genauso implementiert wie im Beispiel für die Kamera angegeben. Lediglich eine zusätzliche Implementierung der Klasse PreviewCallback führt zu einer zusäzlichen public void onpreviewframe(byte[] arg0, Camera arg1) { if (callback!=null) callback.onpreviewframe(arg0, arg1); und um eine Zeile mehr in der surfacecreated-methode: Seite 21 / 27

23 @Override public void surfacecreated (SurfaceHolder holder) { // TODO Auto-generated method stub synchronized(this) { camera = Camera.open (); Parameters param = camera.getparameters (); param.setpreviewsize(240, 120); camera.setparameters(param); try { camera.setpreviewdisplay (this.getholder ()); catch (IOException e) { Log.e("Camera", "camera.setpreviewdisplay(holder);"); camera.startpreview(); camera.setpreviewcallback(this); setpreviewcallback ist hierbei hinzugekommen. Diese Methode wird aufgerufen, sobald eine neues Frame dargestellt wurde. Für die Darstellung des OpenGL ES Objektes kann ein beliebiges OpenGL ES Objekt nun verwendet werden. Da bereits in einem früheren Abschnitt OpenGL ES erklärt wurde, verzichte ich hier darauf. Es sei lediglich darauf hingewiesen, dass für die Darstellung des OpenGL ES Objektes folgende Vereinbarung im jeweiligen Konstruktur getroffen werden muss: public GLView (Context context) { super (context); // We want an 8888 pixel format because that's required for // a translucent window. // And we want a depth buffer. this.seteglconfigchooser(8, 8, 8, 8, 16, 0); this.setrenderer(this); this.getholder().setformat(pixelformat.translucent); Die Angabe von PixelFormat.TRANSLUCENT ist erforderlich, da sonst keine Seite 22 / 27

24 Überblendung mit dem Kamerabild stattfinden würde. 4.7Mit Hilfe der Sensorwerte, OpenGL ES Objekte dynamisch im Raum bewegen lassen Für diesen Abschnitt hatte ich mir eigentlich vorgenommen, die zuvor vorgestellten Konzepte miteinander zu kombinieren und so eine kleine Beispielanwendung für Augmented Reality zu entwerfen. Allerdings musste ich zu der Erkenntnis kommen, dass ich entweder einen Fehler in meiner Anwendung habe, oder die Herangehensweise völlig falsch war. Denn so recht funktionieren wollte es nicht. Die Überlagerung zweier SurfaceViews klappt soweit, sobald aber Sensorwerte mit abgefragt werden sollen, wird mir auf meinem Smartphone lediglich ein schwarzes Display angezeigt und die Anwendung stürzt ab. Auf der Suche nach der Fehlerquelle hatte ich Log-Einträge ausgelesen und im Debugger-Modus die Anwendung analysiert. Ich konnte keine Fehlerquelle ausfindig machen. 7 Auf der Suche nach Rat bin ich im Internet auf eine Beispielanwendung gestoßen, die mehrere Würfel im Display abhängig vom Beschleunigungssensoren und Orientierungssensor darstellen soll. Es gibt sogar eine Demo 8, die man sich auf seinen Smartphone installieren kann. Diese Demo hatte ich bei mir installiert und das Ergebnis war keine Freude: auch hier begrüßte die Anwendung mich mit einem schwarzen Display und stürzte kurz darauf ab. Ein Kommentar auf der Website weist darauf hin, dass die Anwendung nicht auf einem Samsung Galaxy S laufen würde. Ich hatte probiert, es über andere Möglichkeiten zu realisieren, bin jedoch in der restlichen Zeit zu keinem brauchbaren Ergebnis gekommen Seite 23 / 27

25 5. Persönliches Fazit Lehrveranstaltung Graphisch Interaktive Systeme WS 2010/2011 Trotz der aufgetretenen Probleme hat mir die Arbeit an diesem Projekt sehr viel Spaß gemacht. Die Zeit, in der ich Debug-Meldungen betrachte, auswertete und versuchte mögliche Fehlerquellen zu eliminieren werde ich wohl nicht so schnell vergessen. Ich werde mich dennoch weiterhin mit der Programmierung von Android Anwendungen auseinandersetzen. Allein nur um den Einblick, den ich durch diese praxisnahe Erfahrung gewonnen habe, weiter zu vertiefen. Die Vorlesung Graphisch Interaktive Systeme bietet meines Erachtens genau den richtigen Rahmen, um sich mit hoch interessanten und aktuellen Themen auseinandersetzen und so seine ersten persönlichen Erfahrungen mit einer neuen Technik sammeln zu können Seite 24 / 27

26 6. Anhang Softwareressourcen: Java(TM) SE Runtime Environment (build 1.6.0_22-b04), 32-bit und 64-bit Eclipse IDE for Java EE Developers (Eclipse Helios 3.6, 32-bit und 64-bit) ADT Plugin für Eclipse Android SDK (Linux i386) SDK Tools, r8 Hardwareressourcen: Typ Name Spezifikation Android OS, v2.2 (Froyo) ARM Cortex A8 1GHz Prozessor Smartphone Samsung i GB/16GB Datenspeicher, 512 MB Galaxy S RAM, 2GB ROM Desktop-PC Desktop-PC Eigenbau Medion Titanium 8080 weitere techn. Details 9 Windows 7 Professional x64 Ubuntu (maverick) x64 i860 Quad 2.80 GHz 4GB RAM 2x 500 GB Datenspeicher Windows XP Professional SP3 x86 Pentium GHz 2 GB RAM 160 GB Datenspeicher 9 00/GT-I9000HKDDBT/detail.aspx?atab=specifications Seite 25 / 27

27 Quellen: Becker, Arno (Hrsg.); PANT, Markus: Android 2 Grundlager der Programmierung. 2., aktualisierte und erw. Aufl. Heidelberg : dpunkt-verl., 2010 MOSEMANN, Heiko (Hrsg.); KOSE, Matthias: Android Anwendungen für das Handybetriebssystem erfolgreich programmieren. Akt Auflage. München : Hanser, 2009 Eisele, Markus: Entwicklen für Googles Android Jenseits von Hallo Welt In: ix 6/2009, S. 126 Lau, Oliver: Beep Beep Einführung in die Pogrammierung des Google- Handys In: c't 12/2011, S. 172 Becker, Arno: Die Systemarchitektur von Android Ein Blick ins Innere In: mobile developer android 4/2010, S. 28 Linke, Andreas: Apperitif Einführung in die Entwicklung von Android- Apps, Teil 1 In: c't 22/2010, S. 188 Linke, Andreas: A la carte Einführung in die Entwicklung von Android- Apps, Teil 2 In: c't 24/2010, S. 194 Linke, Andreas: Gut geschüttelt Einführung in die Entwicklung von Android-Apps, Teil 3 In: c't 1/2010, S. 172 Beier et ai., Andreas: Die eigene App Entwicklen für Android, iphone, WebOS, Symbian, Blackberry und Windows Mobile In: c't 16/2010, S. 90 Becker, Arno: Die ersten Schritte zur eigenen App Bitte Einsteigen In: mobile developer android 1/2011, S Seite 26 / 27

28 Becker, Arno: Debugging von Android Programmen Falsches flott finden In: mobile developer android 1/2011, S. 38 Junginger, Markus: Zeitgemäße App-Entwicklung für Googles mobiles Betriebssystem Androiden auf dem Vormarsch In: ix developer 1/2011, S. 11 Ableson, Frank: Das Android-OS als Brücke zwischen realer und digitaler Welt Sensoren, Sensoren In: mobile OS 1/2011, S. 70 diverse Android SDK Documentation, Website, Camera image as an OpenGL texture on top of the native camera viewfinder, Website, Simple AR example, Website, Android Anwendungen für das Handybetriebssystem erfolgreich programmieren.; MOSEMANN, Heiko (Hrsg.); KOSE, Matthias; Listing 16.3, Listing 16.4, Listing 16.5, Listing Seite 27 / 27

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

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

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

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

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

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework 1. Software-Plattform Android Android Was ist Android? Plattform und Betriebssystem für mobile Geräte (Smartphones, Mobiltelefone, Netbooks), Open-Source Linux-Kernel 2.6 Managed Code, Angepasste Java

Mehr

Einführung in Android. 9. Dezember 2014

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

Mehr

1. Software-Plattform Android Android. Was ist Android? Managed Code, Angepasste Java Virtual Machine

1. Software-Plattform Android Android. Was ist Android? Managed Code, Angepasste Java Virtual Machine 1. Software-Plattform Android Android Was ist Android? Plattform und Betriebssystem für mobile Geräte (Smartphones, Mobiltelefone, Netbooks), Open-Source Linux-Kernel ab 2.6, aktuell 3.8 Managed Code,

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

App-Entwicklung für Android

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

Mehr

Apps Programmierung von Android-Smartphones

Apps Programmierung von Android-Smartphones Apps Programmierung von Android-Smartphones 2/34 Android-Apps Gliederung: Warum? / Warum Android? Grundlagen Beispiel (sehr kurz) weitere Möglichkeiten Einsatz im Unterricht Diskussion / Fragen 3/34 Smartphone-Programmierung

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

Informatik Sommercamp 2012

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

Mehr

JDroidLib mit Eclipse (Mac/Linux/Windows)

JDroidLib mit Eclipse (Mac/Linux/Windows) JDroidLib mit Eclipse (Mac/Linux/Windows) Version 1.3, 25. März 2013 (Unter Windows besser die ADT-Bundle Version installieren, siehe entsprechende Anleitung) Vorbereitungen: 1. JDK SE neuste Version installieren,

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 Organisatorisches Anmelden im Web: ZIV Lehre Anmelden Anwesenheitsliste Anwesenheitsschein bei 75% Anwesenheit Allgemeine

Mehr

Mobile Application Development

Mobile Application Development Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann

Mehr

Datenhaltung für Android. Model First

Datenhaltung für Android. Model First Datenhaltung für Android Model First Frederik Götz, Johannes Tysiak 26.05.2011 Unser Ziel! 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 2 Agenda Android Quickstart Datenhaltung

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

Seminar Multimediale Werkzeuge Sommersemester 2011

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

Mehr

Apps-Entwicklung mit Eclipse

Apps-Entwicklung mit Eclipse JDroid mit Eclipse Seite 1 Apps-Entwicklung mit Eclipse Version 1.1, 30. April 2013 Vorbereitungen: 1. JDK installieren JDK SE neuste Version (64 oder 32 Bit) herunterladen und installieren (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

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

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

Apps-Entwicklung mit Netbeans

Apps-Entwicklung mit Netbeans JDroid mit Netbeans Seite 1 Apps-Entwicklung mit Netbeans Version 2.2, 30. April 2013 Vorbereitungen: 1. JDK SE neuste Version installieren, (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Mobile Application Plattforms

Mobile Application Plattforms Mobile Application Plattforms Trends in der Kommunikationstechnik DI Franz Geischläger Agenda Mobile Applications Allgemeine Betrachtung Mobile Betriebssysteme und Plattformen Die wichtigsten Vertreter

Mehr

Softwareentwicklungsprozess im Praktikum. 25. April 2013

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

Mehr

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

Walkabout: Location Based Services mit Android und dem Google Phone

Walkabout: Location Based Services mit Android und dem Google Phone Walkabout: Location Based Services mit Android und dem Google Phone Teilbereich 1: Die Android Plattform für mobile Geräte (Software) Von: Sebastian Schul Inhalt Einleitung Was ist Android Exkurs: Wie

Mehr

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Proseminar Objektorientiertes Programmieren mit.net und C# Florian Schulz Institut für Informatik Software & Systems Engineering Einführung Was hat Cross-Plattform

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

Geschäftsbereich Mobile Services Was ist Android?

Geschäftsbereich Mobile Services Was ist Android? Geschäftsbereich Mobile Services Was ist Android? Hinter Hoben 149 53129 Bonn www.visionera.de Ansprechpartner: Arno Becker arno.becker@visionera.de +49 228 555 1111 +49 160 98965856 Einleitung Android

Mehr

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

App Entwicklung für Android F O R T G E S C H R I T T E N E P R O G R A M M I E R U N G I N J A V A App Entwicklung für Android F O R T G E S C H R I T T E N E P R O G R A M M I E R U N G I N J A V A D O Z E N T : R E F E R E N T : P R O F. D R. K L I N K E R R I C O L O S C H W I T Z Aufbau der Präsentation

Mehr

Grundlagen der Informatik Übungen 1.Termin

Grundlagen der Informatik Übungen 1.Termin Grundlagen der Informatik Übungen 1.Termin Dr. Ing Natalia Currle-Linde Institut für Höchstleistungsrechnen 1 Kurzvorstellung Dr.-Ing. Natalia Currle-Linde linde@hlrs.de Institut für Höchstleistungsrechnen

Mehr

Quelle: Quelle: Stanford.edu

Quelle: Quelle: Stanford.edu Quelle: Quelle: Stanford.edu Freies Betriebssystem für mobile Geräte Smartphones Tablet PCs Netbooks Betriebssystem und Softwareplattform Entwickelt von der Open Handset Alliance Ein Konsortium von 80

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

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

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

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

Mehr

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dipl.-Ing. Andreas Riener Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz riener@pervasive.jku.at SWE 1 // Organisatorisches

Mehr

Google's Betriebssystem für mobile Plattformen. Vortrag von Michaela Rindt Universität Siegen

Google's Betriebssystem für mobile Plattformen. Vortrag von Michaela Rindt Universität Siegen Google's Betriebssystem für mobile Plattformen Vortrag von Michaela Rindt Universität Siegen Übersicht Einleitung Softwarearchitektur Softwareentwicklung für Android Unterschied zu anderen mobilen Plattformen

Mehr

LaVida. Mobile Endgeräte. Andreas Neupert

LaVida. Mobile Endgeräte. Andreas Neupert LaVida Mobile Endgeräte Andreas Neupert Einleitung 1 33 Was? 1) Android a. Hardware b. Entwickeln i. Tools ii. Architektur & Konzepte iii. Google App Inventor c. Benutzen versus 2) WP 7 a. Hardware b.

Mehr

Android. LUG-LD Christoph Maya 2011 http://demaya.de. Lizenz: http://creativecommons.org/licenses/by-nc/3.0/de/

Android. LUG-LD Christoph Maya 2011 http://demaya.de. Lizenz: http://creativecommons.org/licenses/by-nc/3.0/de/ Android LUG-LD Christoph Maya 2011 http://demaya.de Lizenz: http://creativecommons.org/licenses/by-nc/3.0/de/ Inhalt Inhalt: ein Mix für Einsteiger und Fortgeschrittene Was ist Android und wo kommts her?

Mehr

Entwickeln einer eigenen App

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

Mehr

APPS FÜR ANDROID ENTWICKELN

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

Mehr

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

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

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

Mehr

Plattformen mobiler Endgeräte Windows Phone, ios, Android

Plattformen mobiler Endgeräte Windows Phone, ios, Android Plattformen mobiler Endgeräte Windows Phone, ios, Android 13.12.2012 Inhaltsverzeichnis 1. Einführung 2. Ecosystem Smartphone OS 3. Mobile Software Platform 4. Android App Entwicklung 5. Zusammenfassung

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

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

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

Mehr

Kapitel 6. Vererbung

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

Mehr

Dr. Holger Eichelberger

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

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

4 Vererbung, Polymorphie

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

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 E-Mail: sales@softvision.de Web: www.softvision.de Inhaltsverzeichnis

Mehr

Kapitel 6. Vererbung

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

Mehr

AVR-Programmierung unter Mac OSX

AVR-Programmierung unter Mac OSX AVR-Programmierung unter Mac OSX im Studiengang BEL3 Lehrveranstaltung Embedded Systems Tutorial ausgeführt von: Jürgen Hausladen A-2460 Bruck/Leitha, Obere Neugasse 6 Wien 01.02.2011 Inhaltsverzeichnis

Mehr

Fork Leitfaden. BibApp Android

Fork Leitfaden. BibApp Android Fork Leitfaden BibApp Android letzte Aktualisierung: 24. April 2013 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 2 2 Eclipse Projekt 2 3 Abhängigkeiten 2 4 Konfiguration 3 4.0.1 Paketname...............................

Mehr

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr. Multimedia im Netz Wintersemester 2011/12 Übung 10 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 2 Gesundes neues Jahr 3 Blatt 08 Videoformate im

Mehr

Fachseminar Android. Tobias Braumann Wintersemester 2009/10 Matrikelnummer.: 353640

Fachseminar Android. Tobias Braumann Wintersemester 2009/10 Matrikelnummer.: 353640 Fachseminar Android Wintersemester 2009/10 Matrikelnummer.: 353640 Inhalt 0 Vorwort... 3 1 Allgemeines zu Android... 4 1.1 Einleitung... 4 1.2 Warum Android?... 4 1.3 Entwicklungshistorie... 5 1.4 Open

Mehr

Mobile Computing. Prof. Dr. Peter Barth. Hochschule RheinMain, Wiesbaden. Prof. Dr. Peter Barth, Mobile Computing

Mobile Computing. Prof. Dr. Peter Barth. Hochschule RheinMain, Wiesbaden. Prof. Dr. Peter Barth, Mobile Computing Mobile Computing Prof. Dr. Peter Barth Hochschule RheinMain, Wiesbaden 1 Mobile Computing Mobile Geräte/Smartphones flächendeckend weltweit verfügbar Einsatzgebiete und Anwendungsszenarios Hohe Bandbreite,

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

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

Arno Becker Marcus Pant. Android. Grundlagen und Programmierung. I dpunkt.verlag

Arno Becker Marcus Pant. Android. Grundlagen und Programmierung. I dpunkt.verlag Arno Becker Marcus Pant Android Grundlagen und Programmierung I dpunkt.verlag IX 1 Ein erstes Beispiel 3 1.1 Projekt anlegen 3 1.2 Die erste Activity 4 1.3 Layout definieren 5 1.4 Activities aufrufen 8

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

Android 2. Grundlagen und Programmierung. dpunkt.verlag. Arno Becker Marcus Pant. 2., aktualisierte und erweiterte Auflage

Android 2. Grundlagen und Programmierung. dpunkt.verlag. Arno Becker Marcus Pant. 2., aktualisierte und erweiterte Auflage Arno Becker Marcus Pant Android 2 Grundlagen und Programmierung 2., aktualisierte und erweiterte Auflage Unter Mitarbeit von David Müller dpunkt.verlag IX I Inhaltsverzeichnis I Einführung 1 1 Ein erstes

Mehr

Matthias Furtmüller, Stefan Haselböck. Android

Matthias Furtmüller, Stefan Haselböck. Android Matthias Furtmüller, Stefan Haselböck Android Grundlagen, Entwicklungsumgebung, wichtige Konzepte und Bibliotheken, Unit Testing unter Android, Simulator, Deployment Inhaltsverzeichnis 1 Entwicklungsumgebung,

Mehr

Java-Schulung Grundlagen

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

Mehr

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

Tourismus-Infos per Augmented Reality und mobiler Website www.easytourist.at

Tourismus-Infos per Augmented Reality und mobiler Website www.easytourist.at Tourismus-Infos per Augmented Reality und mobiler Website www.easytourist.at Tourismus-Infos per Augmented Reality und mobiler Website Die Zukunft ist mobil! In Österreich geht bereits jeder Zweite mobil

Mehr

Version 0.3. Installation von MinGW und Eclipse CDT

Version 0.3. Installation von MinGW und Eclipse CDT Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.

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

2. Auflage. Behandelt Android 4.3. O Reillys Taschenbibliothek. Android. Programmierung. kurz & gut O REILLY. Jörg Staudemeyer

2. Auflage. Behandelt Android 4.3. O Reillys Taschenbibliothek. Android. Programmierung. kurz & gut O REILLY. Jörg Staudemeyer O Reillys Taschenbibliothek 2. Auflage Behandelt Android 4.3 Android Programmierung kurz & gut O REILLY Jörg Staudemeyer Glossar Wenn man beginnt, sich mit der Anwendungsentwicklung unter Android zu beschäftigen,

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

Mobile App development mit Xamarin. Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG

Mobile App development mit Xamarin. Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG Mobile App development mit Xamarin Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG % der Bevölkerung mit Smartphone Smartphone Durchdringung >50% 34% 43% 54% DACH

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 Besprechung der Aufgaben 1) Legen Sie das Android-Projekt HelloWorldApp an so wie es in den vorherigen Folien beschrieben

Mehr

Mit Cloud Power werden Sie zum

Mit Cloud Power werden Sie zum Mit Cloud Power werden Sie zum Herzlich Willkommen! Christian Hassa Managing Partner TechTalk Software AG Agenda Mobile App Development mit Xamarin Pause Azure Mobile Services Q&A 9h00-10h30 10h30-10h50

Mehr

CADEMIA: Einrichtung Ihres Computers unter Linux mit Oracle-Java

CADEMIA: Einrichtung Ihres Computers unter Linux mit Oracle-Java CADEMIA: Einrichtung Ihres Computers unter Linux mit Oracle-Java Stand: 21.02.2015 Java-Plattform: Auf Ihrem Computer muss die Java-Plattform, Standard-Edition der Version 7 (Java SE 7) oder höher installiert

Mehr

SMARTPHONES. Möglichkeiten, Gefahren, Sicherheit Best Practice Peter Teufl

SMARTPHONES. Möglichkeiten, Gefahren, Sicherheit Best Practice Peter Teufl SMARTPHONES Möglichkeiten, Gefahren, Sicherheit Best Practice Peter Teufl A-SIT/Smartphones iphone security analysis (Q1 2010) Blackberry security analysis (Q1 2010) Qualifizierte Signaturen und Smartphones

Mehr

App-Entwicklung mit Titanium

App-Entwicklung mit Titanium Masterstudienarbeit Betreuung Prof. Dr. M. von Schwerin 1 Gliederung 1.Motivation 2.Aufgabenstellung 3.Projektbeschreibung 4.Projektstatusbericht 5.Fazit und Ausblick 2 1.Motivation Verbreitung von Smartphones

Mehr

Enigma2 Plugin Entwicklung mit Eclipse

Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse 1/15 Inhaltsverzeichnis 1 ÜBER... 3 2 INSTALLATION... 4 2.1 INSTALLATION VON ECLIPSE... 4 2.2 INSTALLATION VON PYDEV... 4 3

Mehr

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches Verwendung der bereitgestellten Virtuellen Maschinen»Einrichten einer Virtuellen Maschine mittels VirtualBox sowie Zugriff auf

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

App Entwicklung mit Hilfe von Phonegap. Web Advanced II - SS 2012 Jennifer Beckmann

App Entwicklung mit Hilfe von Phonegap. Web Advanced II - SS 2012 Jennifer Beckmann App Entwicklung mit Hilfe von Phonegap Web Advanced II - SS 2012 Jennifer Beckmann http://www.focus.de/digital/internet/netzoekonomie-blog/smartphone-googles-android-laeuft-konkurrenz-in-deutschland-davon_aid_723544.html

Mehr

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit

Mehr

Erste Erfahrungen mit Android

Erste Erfahrungen mit Android Java User Group München, 22. 9. 2008 Erste Erfahrungen mit Android 1 Was ist Android? Die erste vollständige, offene und freie Plattform für mobile Telefone Entwickelt von der Open Handset Alliance (Telecoms,

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

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

Mehr

Hello World in Java. Der Weg zum ersten Java-Programm

Hello World in Java. Der Weg zum ersten Java-Programm Vorwort Hello World in Java Der Weg zum ersten Java-Programm Diese Anleitung wurde unter Windows XP verfasst. Grundsätzlich sollte sie auch unter späteren Windows Versionen wie Windows Vista oder Windows

Mehr

C++ und mobile Plattformen

C++ und mobile Plattformen Dieser Artikel stammt aus dem Magazin von C++.de (http://magazin.c-plusplus.de) C++ und mobile Plattformen Mit diesem Artikel möchte ich euch einen kurzen Überblick über die verschiedenen Plattformen für

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

M 7102 Wenig aktiv im Verein Tätig in der Lehrerausbildung (Sts OU, Goethe-Uni)

M 7102 Wenig aktiv im Verein Tätig in der Lehrerausbildung (Sts OU, Goethe-Uni) J. Poloczek, 2012 M 7102 Wenig aktiv im Verein Tätig in der Lehrerausbildung (Sts OU, Goethe-Uni) www.informatik.uni-frankfurt.de/~poloczek Veranstaltungen (unten) AUGE RG 600 Betriebssystem Android auf

Mehr

JAVA. Ein kurzer Überblick. Thomas Karp

JAVA. Ein kurzer Überblick. Thomas Karp JAVA Ein kurzer Überblick Thomas Karp WAS IST JAVA? Java ist eine fast rein objektorientierte Sprache nicht JavaScript eine professionelle Sprache eine im Unterricht weit verbreitete Sprache für verschiedene

Mehr

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python. 1.3 Aufbau des Buchs lichkeiten offen. Auf die Unterschiede der beiden Versionen gehe ich besonders ein, sodass ein späterer Umstieg von der einen zur anderen Version leichtfällt. Erste Zusammenhänge werden

Mehr

Managed VPSv3 Was ist neu?

Managed VPSv3 Was ist neu? Managed VPSv3 Was ist neu? Copyright 2006 VERIO Europe Seite 1 1 EINFÜHRUNG 3 1.1 Inhalt 3 2 WAS IST NEU? 4 2.1 Speicherplatz 4 2.2 Betriebssystem 4 2.3 Dateisystem 4 2.4 Wichtige Services 5 2.5 Programme

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Erste Schritte zum lauffähigen Java Programm

Erste Schritte zum lauffähigen Java Programm Erste Schritte zum lauffähigen Java Programm Diese kleine Einführung ist eine Hilfe für Studenten der Vorlesung SWT I zur Meisterung der sich ergebenden Hürden bei der Erstellung eines ersten kleinen Java-Programms.

Mehr

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC-SDK unter Linux (mit Wine) Installationsanleitung Installation von Wine Einleitung Übersicht Titel Thema Datei DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC_Wine_Installation.doc

Mehr

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05.

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05. IT Engineering Continuous Delivery Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet Alexander Pacnik Karlsruhe, 20.05.2014 Einleitung... worum es in diesem Vortrag geht Ziele Continuous

Mehr

Maemo und das N900. Ingo Ebel. Spezielle Themen Mobile Kommunikation, WS 2009/10. Computer Science and Media Hochschule der Medien Stuttgart

Maemo und das N900. Ingo Ebel. Spezielle Themen Mobile Kommunikation, WS 2009/10. Computer Science and Media Hochschule der Medien Stuttgart Mobile Plattformen und 5 und N900 und das N900 Ingo Ebel Computer Science and Media Hochschule der Medien Stuttgart Spezielle Themen Mobile Kommunikation, WS 2009/10 Mobile Plattformen und 5 und N900 Letzte

Mehr