Android-Apps programmieren

Größe: px
Ab Seite anzeigen:

Download "Android-Apps programmieren"

Transkript

1 Professional Series Android-Apps programmieren von Dirk Koller 1. Auflage Franzis-Verlag 2012 Verlag C.H. Beck im Internet: ISBN schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

2 Dr. Dirk Koller Know-how ist blau. Android-Apps programmieren > So entwickeln Sie native Apps für Android > Vom Entwurf bis zum Einstellen bei Google Play und Co. > Entwickeln ist nicht genug: Apps richtig vermarkten Von der Idee bis in den Store!

3 Dr. Dirk Koller Android-Apps programmieren

4 Dr. Dirk Koller Android-Apps programmieren Mit 98 Abbildungen

5 Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte Daten sind im Internet über abrufbar. Alle Angaben in diesem Buch wurden vom Autor mit größter Sorgfalt erarbeitet bzw. zusammengestellt und unter Einschaltung wirksamer Kontrollmaßnahmen reproduziert. Trotzdem sind Fehler nicht ganz auszuschließen. Der Verlag und der Autor sehen sich deshalb gezwungen, darauf hinzuweisen, dass sie weder eine Garantie noch die juristische Verantwortung oder irgendeine Haftung für Folgen, die auf fehlerhafte Angaben zurückgehen, übernehmen können. Für die Mitteilung etwaiger Fehler sind Verlag und Autor jederzeit dankbar. Internetadressen oder Versionsnummern stellen den bei Redaktionsschluss verfügbaren Informationsstand dar. Verlag und Autor übernehmen keinerlei Verantwortung oder Haftung für Veränderungen, die sich aus nicht von ihnen zu vertretenden Umständen ergeben. Evtl. beigefügte oder zum Download angebotene Dateien und Informationen dienen ausschließlich der nicht gewerblichen Nutzung. Eine gewerbliche Nutzung ist nur mit Zustimmung des Lizenzinhabers möglich Franzis Verlag GmbH, Haar bei München Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Das Erstellen und Verbreiten von Kopien auf Papier, auf Datenträgern oder im Internet, insbesondere als PDF, ist nur mit ausdrücklicher Genehmigung des Verlags gestattet und wird widrigenfalls strafrechtlich verfolgt. Die meisten Produktbezeichnungen von Hard- und Software sowie Firmennamen und Firmenlogos, die in diesem Werk genannt werden, sind in der Regel gleichzeitig auch eingetragene Warenzeichen und sollten als solche betrachtet werden. Der Verlag folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller. Lektorat: Anton Schmid Satz: DTP-Satz A. Kugge, München art & design: Druck: GGP Media GmbH, Pößneck Printed in Germany ISBN

6 5 Inhaltsverzeichnis 1 Einleitung »2011: das Jahr, in dem Android explodiert!« Für wen ist dieses Buch gedacht? Die Beispielanwendung Was benötige ich zum Starten? Einen leistungsfähigen Rechner Einiges an Software Ein Android-fähiges Gerät Eine ordentliche Frustrationstoleranz Teil 1 Die Voraussetzungen Java für Androiden Herkunft der Sprache Pakete & Import Klassen Methoden Datentypen Interfaces Exceptions Installation Java-Plattform (JDK) Eclipse Android SDK ADT Plugin Entwicklungsumgebung Eclipse Workspace und Projekt... 37

7 6 Inhaltsverzeichnis 4.2 Perspektiven, Views und Editoren Package Explorer Editor Problems Console Debugging Debugger Android Debug Bridge Konsolenausgaben & LogCat Dalvik Debug Monitor Server Alternativen zu Eclipse Texteditor & Kommandozeile IntelliJ IDEA Teil 2 Das Grundgerüst der Zeiterfassung User Interface Design Das Gerät kennenlernen Aufbau von Android User Interfaces Status Bar Action Bar Tabs & View Pager Listen Menüs Application Definition Statement & Features Objektmodell Navigationsmodell & Skizzen Hauptmenü Leistungsliste Anzeige von Leistungsdetails Editieren von Leistungsdetails Projektstart Ein Android-Projekt anlegen Rundgang durch das Projekt ChronosActivity.java... 79

8 Inhaltsverzeichnis res/layout/main.xml res/values/strings.xml AndroidManifest.xml project.properties proguard.cfg R.java Anlegen eines Virtual Device Start im Emulator Start auf einem echten Gerät Activities Lebenszyklus Callback-Methoden oncreate() onstart() onresume() onpause() onstop() onrestart() ondestroy() Chronos: Anlegen einer Activity Views Ressource-ID Aufbau von Layout-Dateien Wichtige Layouts Chronos: Erste UI-Anpassungen Intents Starten von Activities Intents mit Rückgabewert IntentFilter Chronos: Vom Start-Screen zum Hauptmenü Listen ListView

9 8 Inhaltsverzeichnis Header & Footer ListAdapter Custom Adapter getview(int position, View convertview, ViewGroup parent) getcount() getitem (int position) getitemid (int position) ListActivity Klick auf Listenzellen Arbeiten mit SQLite Das Chronos-Datenmodell Umsetzung in SQL sqlite SQLiteOpenHelper SQLiteDatabase Cursor SimpleCursorAdapter ViewBinder Ein eigenes Listen-Layout Textkomponenten & Picker TextView EditText Spinner Checkbox Die Chronos-Detail-Views Die Chronos-Edit-Views Menüs Optionen-Menü Kontext-Menü Popup-Menü Hinzufügen von Einträgen in Chronos

10 Inhaltsverzeichnis 9 15 Dialoge AlertDialog: Löschen von Einträgen in Chronos ProgressDialog Date- und TimePickerDialog: Auswahl des Datums in Chronos Teil 3 Erweiterung der Zeiterfassung Location Based Services Woher weiß das Gerät, wo es ist? Mobilfunksender WiFi-Netzwerke GPS Location Services Koordinatenrechnereien Umwandlung einer Adresse in Koordinaten: (Forward-) Geocoding Umwandlung von Koordinaten in eine Adresse: Reverse- Geocoding Entfernungsberechnung Map View Erzeugung und Konfiguration des Map Views Nachinstallieren der Google APIs Anfordern des Google Maps Key MapActivity Overlays Zugriff aufs Adressbuch Auswählen von Kontakten Anzeigen und Editieren von Kontakten Manuelles Bearbeiten der Kontakte Das Internet Mails versenden Über Intents mit Benutzerinteraktion

11 10 Inhaltsverzeichnis 19.2 Mit Java Mail im Hintergrund WebView HttpUrlConnection AsyncTask Austauschformate: XML und JSON XML JSON File I/O Interner Speicher Externer Speicher (Zusatzspeicher) Preferences Shared Preferences Activity Preferences PreferenceActivity Preferences Listener Lokalisierung & Internationalisierung Welche Sprachen sind sinnvoll? Internationalisierung Strings Grafiken und andere Ressourcen Lokalisierung Locale Zahlen Datum Content Provider, Broadcast Receiver und Services Services Broadcast Receiver Content Provider

12 Inhaltsverzeichnis 11 Teil 4 Die Auslieferung Veröffentlichen der App Registrierung bei Google Play Letzte Vorbereitungen Erzeugen des apk apk-datei hochladen Eingeben der Produktdetails Geschäftsmodell Android Zahlen und Fakten Verdienstmöglichkeiten Die eigene App verkaufen Werbung Apps für Dritte Marketing Präsentation in Google Play oder Amazon Appstore Blogs und Review-Seiten Pressemitteilungen Lite, Freemium und In-app Billing Nachwort Stichwortverzeichnis

13

14 13 Danksagung Meiner Frau Lisa möchte ich für das Anfertigen der tollen Skizzen danken. Ein ganz besonderer Dank gebührt den Herren Marc Reichelt (www.marcreichelt.de) und Markus Gursch (www.swordiapps.com) für die fachliche Durchsicht. Zu guter Letzt möchte ich Herrn Anton Schmid vom Franzis Verlag für die guten Tipps und Anregungen sowie die freundliche Zusammenarbeit danken.

15

16 15 1 Einleitung Willkommen, lieber Leser. Womöglich möchten Sie gleich loslegen und haben keine Lust auf eine Vorrede, das kann ich gut verstehen. Trotzdem sollten ein paar einleitende Worte sein. Im Wesentlichen geht es darum, was die Android-Plattform so interessant macht, welche Unterschiede zur»herkömmlichen«java-entwicklung bestehen, für wen dieses Buch gedacht ist und was Sie mitbringen sollten, um mit der Programmierung zu beginnen. 1.1»2011: das Jahr, in dem Android explodiert!«so zumindest eine Schlagzeile aus dem Blog TechCrunch vom Wohl keine Technologie aus dem Java-Bereich wird den Alltag so durchdringen wie das von Google und der Open Handset Alliance geschaffene Android. Wer Ende der Neunziger einst auszog, um mit der damals neuen Sprache Java Staubsauger und Kühlschrank zu programmieren, ist bei der Vielzahl der Android-basierten Geräte diesem Ziel jetzt näher denn je. Im Moment befinden wir uns immer noch am Anfang dieser Entwicklung. Android hat sich, dem technologischen Vorsprung der ios-geräte dicht folgend, zu einer ausgereiften Plattform für Mobilfunkgeräte, Tablet-Rechner, Fernseh-Set-Top- Boxen und sicherlich demnächst noch viele weitere Anwendungsfälle (Car-Infotainment, Haussteuerung) entwickelt. Dabei unterstützt das mobile Betriebssystem moderne Konzepte wie Touch-Steuerung, Spracherkennung oder kabellose Updates. Ebenso wichtig wie die technische Qualität der Plattform ist die Vehemenz, mit der diese am Markt platziert wird. Ein ganzer Industriezweig springt (angesichts der Gefahr, den Anschluss im boomenden Smartphone- und Tablet-Markt zu verlieren) auf den Android-Zug auf. Die Plattform scheint für viele altgediente Handy-Anbieter der letzte Rettungsanker zu sein, der die Unternehmen vor dem Untergang bewahrt. Verzweifelt versuchen einstige Marktführer Alternativen zu dem plötzlich dominierenden Gespann ios/android zu installieren, bisher ohne Erfolg. Im Moment ist Googles Mobile OS die einzige Plattform, die Apple die Stirn bieten kann. Java-Puristen mögen nun bemängeln, dass es sich bei Android um kein reines Java handelt, dass die Bibliotheken den langwierigen Community-Testprozess nicht durchlaufen haben. Aber seien wir ehrlich wen juckt s? Nichts und niemand wird Google in seinem Bestreben stoppen, ein Bein in den Milliardenmarkt mobile Werbung zu bekommen. Wenn dabei ein durchaus zunehmend bedrohlich wirkender Mitstreiter Konkurrenz bekommt und dadurch das Angebot womöglich vielfältiger und preisgünstiger wird,

17 16 Kapitel 1: Einleitung dann darf man getrost auch mal auf die Weihen der schwerfälligen Community verzichten. Wer Spaß an Java hat, sollte froh sein, dass sich Google für diese Sprache entschieden hat (ob zertifiziert oder nicht) und der Java-Entwicklergemeinde neben JEE eine zukunftsfähige Technologie zum»spielen«, aber auch zum Bestreiten des Lebensunterhalts beschert hat. 1.2 Für wen ist dieses Buch gedacht? Dieses Buch richtet sich an erfahrene Entwickler, die mit der Android-Entwicklung beginnen möchten oder schon begonnen haben. Erfahrene Entwickler meint hier solche, die mit den Konzepten und der Syntax einer objektorientierten, C-ähnlichen Programmiersprache wie C++, C# oder optimalerweise Java (die Sprache, in der Android- Anwendungen»nativ«geschrieben werden) vertraut sind. Anfänger in der Kunst der Programmierung sind willkommen, benötigen aber auf jeden Fall weiteres Material. Das ist bei Java zum Glück kein Problem. Zu kaum einer anderen Programmiersprache existieren derart viele Bücher, Sie werden bei Bedarf sicher fündig werden. Meine Empfehlungen für den Einstieg in die Java-Programmierung sind Thinking in Java von Bruce Eckel [ECK06] und (danach) Effective Java von Joshua Bloch [BLO08]. Das Kapitel 2 des vorliegenden Werks ist eine Art Schnellkurs für Programmier-Cracks und daher definitiv keine Einführung. 1.3 Die Beispielanwendung Dieses Buch verfolgt einen sehr praxisnahen Ansatz. Wir (also Sie und ich) begleiten ein»echtes«projekt vom ersten Konzept über die Implementierung bis zur Auslieferung in den Google Play Store (ehemals Android Market). Diese Vorgehensweise bringt es mit sich, dass in unserer App nicht benötigte API-Bestandteile (wie etwa OpenGL oder Media) auch nicht beschrieben werden. Das Buch ist also keine ausführliche Referenz der Android-Programmierschnittstelle, sondern beschreibt eher, wie man die kleinen Codestücke aus einer Referenz zu einer echten Anwendung zusammenfügt und anschließend in den Verkauf bringt. Eine echte Anwendung ist im Gegensatz zu vielen kleinen losgelösten Beispielen eine komplexe Sache. Das Nachverfolgen der Entstehung ist um einiges schwieriger, und der Einstieg ist nicht in jedem Kapitel möglich. Dennoch wird im vorliegenden Buch dieser Ansatz verfolgt, weil nur so der»klebstoff«zwischen den losgelösten Beispielen vermittelt werden kann. Letztlich ist genau dieser Code der kleine, aber entscheidende Unterschied zwischen einem»hello World«zu jedem Thema und einer richtigen Anwendung.

18 1.4 Was benötige ich zum Starten? 17 Als Beispielanwendung dient wieder die Zeiterfassung Chronos, die sich im Schwesterbuch»iPhone-Apps entwickeln«als roter Faden durch das Buch bewährt hat. Die fertige App wird im Google Play Store erhältlich sein. Der Quellcode kann von den Lesern des Buches auf geladen werden. Da nicht immer jede Zeile vorgestellt werden kann, sollte von dieser Möglichkeit unbedingt Gebrauch gemacht werden. Die Idee, ein Projekt von Anfang bis zum Ende zu begleiten, hat Auswirkungen darauf, wie das Buch gelesen werden sollte: ebenfalls vom Anfang bis zum Ende. Und zwar möglichst vor dem Rechner mit geöffneter Entwicklungsumgebung. Versuchen Sie, während des Lesens die Beispielanwendung (oder zumindest etwas Ähnliches) nachzubauen. Es kann aus Platzgründen nicht jede Zeile erklärt werden. Wenn Sie nicht weiterwissen, werfen Sie einen Blick in den (hoffentlich) heruntergeladenen Quellcode. 1.4 Was benötige ich zum Starten? Einen leistungsfähigen Rechner Als Entwicklungsrechner wird ein halbwegs aktuelles Gerät mit möglichst viel Speicher benötigt. Auf genaue technische Angaben wird hier bewusst verzichtet, weil diese ohnehin in kürzester Zeit veraltet wären. Als Betriebssystem stehen die drei großen Alternativen (Windows, Linux, und Mac OS) zur Verfügung. Im Buch wird Mac OS benutzt, die Unterschiede sind allerdings so gering, dass auch Windows- oder Linux-Benutzer keine Probleme mit dem Verständnis des Texts haben werden. Die für die professionelle Java- Entwicklung verwendeten Entwicklungsumgebungen wie Eclipse, NetBeans, IntelliJ IDEA oder JDeveloper verfügen alle über eine Vielzahl von Fenstern und Views, die man möglichst gleichzeitig sehen sollte. Eine nicht allzu kleine Bildschirmauflösung und ein entsprechender Monitor sind deshalb auf jeden Fall hilfreich Einiges an Software Vor dem Start muss einiges an Software geladen und installiert werden. Im Einzelnen handelt es sich um das Java Development Kit (JDK), die Entwicklungsumgebung Eclipse, ein Plug-In für Eclipse sowie das Android SDK. Glücklicherweise sind all diese Werkzeuge kostenlos im Internet erhältlich. Details zum Download und zur Installation finden sich in Kapitel Ein Android-fähiges Gerät Das Android SDK enthält einen Emulator, der das Ausführen der selbst erstellten Apps erlaubt. Somit ist ein echtes Android-Gerät für die ersten Schritte nicht zwingend

19 18 Kapitel 1: Einleitung notwendig. Allerdings ist der Emulator nicht als vollwertiger Ersatz für ein echtes Gerät geeignet. Falls Sie wirklich professionelle Apps programmieren möchten, kommen Sie früher oder später um das Testen auf einem Android-fähigen Smartphone oder Tablet nicht herum. Der Markt für Android-basierte Geräte explodiert geradezu. Wöchentlich erscheinen neue Geräte in allen Preisklassen. Eine dezidierte Kaufempfehlung kann hier sicher nicht gegeben werden. Die Geräte der Nexus-Reihe von Google haben den Vorteil, dass der Suchmaschinenbetreiber, im Gegensatz zu allen anderen Herstellern, das jeweils aktuelle SDK sehr zeitnah für die eigenen Geräte anbietet. Das aufwendige und umstrittene Anpassen des Betriebssystems (»Branding«), das viele Unternehmen betreiben, entfällt bei den Google-Geräten. Für die Entwicklung kann es natürlich von Vorteil sein, wenn das frisch erschienene SDK nicht nur auf dem Emulator, sondern auch auf dem echten Gerät ausprobiert werden kann Eine ordentliche Frustrationstoleranz Android-Programmierung macht Spaß. Furchtbar viel Spaß. Aber bis es so weit ist, haben Sie einen sehr steinigen Weg vor sich. Ihr Weg wird gepflastert sein mit Rückschlägen und Frust. Das ist ganz normal und liegt nicht an Ihnen. Jeder Fehler muss einmal begangen und verstanden werden, um ihn beim nächsten Mal zu vermeiden. Aber der Weg lohnt sich! Software zu entwickeln ist eine tolle Sache. Aus Ihrer Idee wird nach und nach ein echtes Programm, das nach Ihren Vorstellungen funktioniert. Sie erschaffen eigene Welten, bestimmen die Gesetze und erfreuen sich an der Schönheit einer Problemlösung. Eine tolle Mischung aus Kreativität und mathematischer Exaktheit. Bleiben Sie dran und lesen Sie viel, viel Code. Das ist der beste Weg, um den Einstieg zu finden. Im nächsten Kapitel bietet sich gleich Gelegenheit dazu...

20 19 Teil 1 Die Voraussetzungen Im ersten Teil des Buches werden die Voraussetzungen geschaffen, um mit der Android- Entwicklung beginnen zu können. Dieser Teil ist naturgemäß etwas theorielastig. Auch wenn Sie lieber gerne direkt mit der Entwicklung beginnen möchten, sollten Sie sich unbedingt die Zeit nehmen, um die Kapitel zu studieren.

21

22 21 2 Java für Androiden Eine komplexe, objektorientierte Programmiersprache in einem vorangestellten Kapitel zu erläutern, ist eigentlich nicht möglich. Dennoch werden hier die wichtigsten Eigenschaften der Sprache aufgeführt. Weniger für die Programmiereinsteiger (die werden auf jeden Fall weiteres Material benötigen), sondern eher für Entwickler, die mit den aufgeführten Konzepten aus anderen C-ähnlichen Sprachen (wie etwa C#, C++ oder Objective-C) bereits vertraut sind und nur die Java-Besonderheiten kennenlernen wollen. Die Diskussion der Sprache ist also beileibe nicht vollständig und behandelt ganz bewusst nur Themen, die für das Verständnis des Quellcodes im weiteren Verlauf eine Rolle spielen. Für Leser, die gerade erst ganz frisch ihre Liebe zur Softwareentwicklung entdeckt haben, ist nun der richtige Moment, einige Wochen mit den in der Einleitung empfohlenen Büchern zu verbringen. Wir warten auf Sie, versprochen! 2.1 Herkunft der Sprache Java wurde Anfang der 90er Jahre für Sun Microsystems von einem Entwickler-Team um James Gossling entwickelt. Ursprünglich konzipiert zur Steuerung von Haushaltsgeräten wie Kaffeemaschinen oder Staubsaugern, entwickelte sich die aus Smalltalk- Ideen hervorgegangene Sprache beständig weiter und avancierte zur erfolgreichsten Programmiersprache der letzten Jahre. Neben der gegenüber C++ vereinfachten Syntax trug sicherlich das breite Einsatzspektrum zu diesem Erfolg bei. Java-Programme finden sich auf Mobiltelefonen (Java Micro Edition, JME), auf dem Desktop (Java Standard Edition, JSE) und auf Servern (Java Enterprise Edition, JEE). Durch die Übernahme von Sun durch Oracle im Jahr 2010 gingen die mit Java verbundenen Rechte und Lizenzen an den bekannten Datenbankhersteller über. 2.2 Pakete & Import Java-Klassen werden in Paketen (Packages) organisiert. Sie dienen der Zusammenfassung von mehreren Klassen zu einem größeren Modul und verhindern, ähnlich wie Prefixe in C, Probleme mit gleichnamigen Klassen. Für die Vergabe des Paketnamens wird wegen der Eindeutigkeit der umgedrehte Domainname verwendet. Für ein Unternehmen mit der Webadresse das ein Projekt namens Projekt durchführt,

23 22 Kapitel 2: Java für Androiden wäre der oberste Paketname also de.firma.projekt. Dahinter folgen weitere Unterpakete für bestimmte Module wie zum Beispiel de.firma.projekt.rechnung. Im Dateisystem finden die Pakete in Ordnern mit Unterordnern ihre Entsprechung. Das folgende Codefragment zeigt, wie die Klasse Chronos mit Hilfe der package-anweisung dem Paket de.dirkkoller.chronos zugeordnet wird: package de.dirkkoller.chronos;... public class Chronos extends Activity { Im Dateisystem findet man die Klasse im Sourcecode-Ordner unter de/dirkkoller/ chronos. In der Praxis tritt oft die Frage auf, wie die Klassen am besten zu Paketen gruppiert werden sollten. Grundsätzlich ist eine technische gegen eine fachliche Aufteilung abzuwägen. Bei der technischen Aufteilung landen alle Klassen gleichen Typs (beispielsweise alle Exceptions) in einem Paket. Allerdings widerspricht diese Aufteilung der in Java vorgesehenen Form der Zugriffsbeschränkung. Alle Klassen eines Pakets können ohne weitere Vorkehrungen automatisch aufeinander zugreifen (package-access). Eine Exception wird aber in den seltensten Fällen Zugriff auf eine andere Exception benötigen und deshalb von der gleichen Paketzugehörigkeit nicht profitieren. Sinnvoller ist die fachliche Aufteilung. Alle Klassen (View, Controller, Exception, usw.), die beispielsweise zur Erstellung einer Rechnung benötigt werden, landen in einem Paket. Da diese Klassen stark miteinander verwoben sind, wird der Zugriff durch die Package-Rechte erleichtert. Möchte man in einer Klasse Klassen aus anderen Paketen als dem eigenen nutzen, müssen diese importiert werden. Dies geschieht mit Hilfe des Schlüsselworts import, gefolgt von der zu importierenden Klasse. An Stelle des Klassennamens kann auch ein Asterisk (*) stehen, in diesem Fall werden dann alle Klassen des Pakets importiert: package de.dirkkoller.chronos; import android.app.activity; import android.content.intent; import android.os.bundle; import android.util.*; public class Chronos extends Activity {

24 2.3 Klassen Klassen Eine Klasse ist quasi die Bauanleitung für Objekte (Instanzen) eines Typs. In der Klasse werden Variablen (Instanzvariablen) und Methoden aufgeführt. In Java erfolgt keine Trennung von Header und Implementierung wie in C. Eine oder auch mehrere Klassen werden in einer Datei mit der Endung.java gespeichert. Die Klasse wird nach den Importen durch das Schlüsselwort class gefolgt vom Klassennamen eingeläutet. Der Klassenname beginnt mit einem großen Buchstaben. Ist er aus mehreren Worten zusammengesetzt, wird jedes Wort wieder groß begonnen (CamelCase-Schreibweise). Der Rumpf der Klasse steht in geschweiften Klammern: import android.view.view; public class MenuActivity extends Activity { // Variablen und Methoden } Pro Java-Datei darf nur eine Klasse den Zugriffsspezifizierer public verwenden. Falls weitere Klassen in der Datei enthalten sind, fällt der Modifier weg (man spricht dann von package-private-access). Erbt die Klasse von einer Superklasse, so wird diese hinter dem Schlüsselwort extends aufgeführt. In Java darf nur von einer Superklasse geerbt werden. Wird keine Superklasse angegeben, erben alle Klassen automatisch von der Mutter aller Klassen, java.lang.object. Eine Instanz einer Klasse wird mit dem new-operator erzeugt. Die folgende Zeile deklariert eine Variable namens paint vom Typ Paint, erzeugt ein Objekt vom Typ Paint und weist es der Variablen zu. Paint paint = new Paint(); Beim Anlegen des Objekts wird eine besondere Methode, der Konstruktor, aufgerufen. Im Gegensatz zu anderen Methoden heißt der Konstruktor genau wie die Klasse und hat keinen Rückgabewert (er gibt ja das neue Objekt zurück): public class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(Context ctx) { super(ctx, "chronos.db", null, 3); } Verzichtet der Entwickler auf das Erstellen des Konstruktors (was oft der Fall ist), wird ein Default-Konstruktor aufgerufen.

25 24 Kapitel 2: Java für Androiden Der Speicher für nicht mehr referenzierte Objekte wird in Java auch unter Android automatisch durch einen Garbage Collector freigegeben. Der Entwickler braucht sich also darum nicht zu kümmern. Nicht immer ist es sinnvoll, konkrete Instanzen einer Klasse zu erzeugen. Oft soll durch eine Basisklasse nur definiert werden, welche Methoden eine Subklasse enthalten muss. Die Verwendung ähnelt dann den weiter unten besprochenen Interfaces. In dem Fall wird die Klasse mit Hilfe des Schlüsselworts abstract gekennzeichnet. 2.4 Methoden Methoden können in Java nur innerhalb einer Klasse definiert werden, es gibt also keine freien Methoden. Das folgende Codestück zeigt ein Beispiel: public class MenuActivity extends Activity { public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); this.setcontentview(r.layout.main); } } Nach dem Zugriffsmodifier (public, private oder protected) wird der Typ des Rückgabewerts aufgeführt. Gibt die Methode keinen Wert zurück, findet sich hier das Schlüsselwort void. Anschließend folgt der Methodenname, diesmal beginnend mit einem Kleinbuchstaben. Zu guter Letzt folgen die übergebenen Parameter in runden Klammern (Typ und Name, unter dem der Parameter in der Methode ansprechbar ist). Bekommt die Methode mehrere Parameter übergeben, werden diese durch Kommata getrennt aufgelistet. Seit Java 5 sind auch Varargs, also Methoden mit variabler Argumentanzahl, möglich. Die Kennzeichnung erfolgt durch drei aufeinander folgende Punkte hinter dem Typ: protected String doinbackground(string... params) { Intern erzeugt der Kompiler ein Feld mit den übergebenen Werten und als solches ist params auch innerhalb der Methode zu behandeln. Der Rumpf der Methode steht in geschweiften Klammern. Einzelne Anweisungen im Rumpf werden durch Semikolon getrennt. Im Beispiel oben wird durch die Verwendung des Schlüsselworts super die Methode oncreate() in der Superklasse (also Activity) aufgerufen. Mit this kann dagegen die Instanz der eigenen Klasse referenziert werden und es können dort zum Beispiel Methoden aufgerufen werden.

26 2.5 Datentypen 25 Normalerweise wird für das Aufrufen der Methode eine Instanz der entsprechenden Klasse benötigt. Steht bei der Deklaration der Methode das Schlüsselwort static vor dem Rückgabewert, spricht man von einer Klassenmethode: public static SQLiteDatabase getwritabledatabase() { return openhelper.getwritabledatabase(); } Für den Aufruf einer solchen Methode wird kein Objekt benötigt, er kann direkt über den Klassennamen erfolgen: Chronos.getWritableDatabase(); 2.5 Datentypen Java kennt die folgenden von C bekannten primitiven Datentypen. Sie haben folgende Größen und Wertebereiche: boolean true und false byte 8 Bit, -2^7.. 2^7-1 short 16 Bit, -2^15.. 2^15-1 int 32 Bit, -2^31.. 2^31-1 long 64 Bit, -2^63.. 2^63-1 float 32 Bit, Gleitkommazahlen double 64 Bit, Gleitkommazahlen char Ein Unicodezeichen (UTF-16) Für alle primitiven Datentypen gibt es Wrapper-Klassen, die Objekt-Repräsentationen derselben darstellen (Boolean, Byte, Short, Integer, Long, Float, Double, Character). Zeichenketten werden in Java durch die Klasse String abgebildet. Bei ihrer Erzeugung kann auf den new-operator verzichtet werden: String title = "Kundenliste"; Strings sind immutable, also unveränderlich. Wenn ein String nach und nach aufgebaut werden soll, muss stattdessen ein StringBuffer verwendet werden. Mit dem Plus(+)- Operator können Strings konkatiniert (aneinandergehängt) werden. Dabei entstehen allerdings neue String-Objekte.

27 26 Kapitel 2: Java für Androiden Konstanten werden in Java als static final deklariert und der Name komplett groß geschrieben: private static final String TAG = "Chronos"; 2.6 Interfaces In Interfaces lassen sich Methoden deklarieren, die in der das Interface implementierenden Klasse ausprogrammiert werden müssen. Am besten lässt sich das an einem Beispiel verstehen. Das Interface LocationListener aus dem Paket android.location beinhaltet mehrere Methodendeklarationen, die bei der Ortsbestimmung eine Rolle spielen: public abstract interface android.location.locationlistener { public abstract void onlocationchanged(android.location.location arg0); public abstract void onstatuschanged(java.lang.string arg0, int arg1, android.os.bundle arg2); public abstract void onproviderenabled(java.lang.string arg0); } public abstract void onproviderdisabled(java.lang.string arg0); Soll die im Interface beschriebene Funktionalität nun zur Verfügung gestellt werden, dann muss die dafür vorgesehene Klasse das Interface implementieren. Dies geschieht durch Aufführen des Interfaces hinter dem Schlüsselwort implements in der Deklaration der Klasse. Zudem müssen die im Interface enthaltenen Methoden ausprogrammiert werden: public class MyLocationManager extends Activity implements LocationListener { public void onlocationchanged(location location) { Log.i(TAG, location.tostring()); } } Die das Interface implementierende Klasse ist (im Sinne der Zuordnungssicherheit) dadurch vom Typ des Interfaces. MyLocationManager aus dem Beispiel oben ist also ein LocationListener und kann überall dort verwendet werden, wo dieser Typ benötigt wird.

Android-Apps. programmieren. Know-how ist blau. Von der Idee bis in den Store! Dr. Dirk Koller

Android-Apps. programmieren. Know-how ist blau. Von der Idee bis in den Store! Dr. Dirk Koller Dr. Dirk Koller Know-how ist blau. Android-Apps programmieren > So entwickeln Sie native Apps für Android > Vom Entwurf bis zum Einstellen bei Google Play und Co. > Entwickeln ist nicht genug: Apps richtig

Mehr

Scholz (Hrsg.) / Krämer / Schollmayer / Völcker. Android-Apps. Konzeption, Programmierung und Vermarktung

Scholz (Hrsg.) / Krämer / Schollmayer / Völcker. Android-Apps. Konzeption, Programmierung und Vermarktung Scholz (Hrsg.) / Krämer / Schollmayer / Völcker Android-Apps entwickeln Konzeption, Programmierung und Vermarktung Vom Entwurf bis zum Einstellen bei Google Play und Co. So entwickeln Sie native Apps für

Mehr

Anonym im Internet mit Tor und Tails

Anonym im Internet mit Tor und Tails Hacking mit Franzis Ohne Vorkenntnisse Schritt für Schritt zum sicheren Linux auf dem USB-Stick Peter Loshin Anonym im Internet mit Tor und Tails Nutze die Methoden von Snowden und hinterlasse keine Spuren

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

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

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

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

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

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

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

Übungen zur Android Entwicklung

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

Mehr

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

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

Mehr

Modellierung einer Android-App. 2. Mai 2013

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

Mehr

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

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

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

Einführung in Android. 22. Oktober 2014

Einführung in Android. 22. Oktober 2014 Einführung in Android 22. Oktober 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

Objective-C CheatSheet

Objective-C CheatSheet App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController

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

Übungen Informatik I. JAVA - Eclipse. elga Gabler, Holger Vogelsang, Christian Pape. Übungen Informatik 1 1

Übungen Informatik I. JAVA - Eclipse. elga Gabler, Holger Vogelsang, Christian Pape. Übungen Informatik 1 1 Übungen Informatik I JAVA - Eclipse Übungen Informatik 1 1 Integrierte Entwicklungsumgebungen Integrierte Entwicklungsumgebung (IDE): vereint Editor, Compiler, Debugger und andere Entwicklungswerkzeuge

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

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

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

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

Mehr

Java-Vorkurs 2015. Wintersemester 15/16

Java-Vorkurs 2015. Wintersemester 15/16 Java-Vorkurs 2015 Wintersemester 15/16 Herzlich Willkommen! package de.unistuttgart.47.01.javavorkurs; public class WelcomeErstis { public static void main(string[] args){ System.out.println( Herzlich

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

Entwicklungswerkzeuge & - methoden

Entwicklungswerkzeuge & - methoden Entwicklungswerkzeuge & - methoden Debugging und Logging von mobile Apps Jürgen Menge Sales Consultant, Oracle Deutschland E-Mail: juergen.menge@oracle.com +++ Bitte nutzen Sie die bevorzugte Telefonnummer

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

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

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

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

Mehr

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

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

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java Grundlagen von Java Aufgabe 1: Typen und Zuweisungen in Java Welche der folgenden Java-Anweisungen sind fehlerhaft? Handelt es sich um einen Compiler- oder einen Laufzeitfehler? Anmerkung: Folgefehler

Mehr

Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems

Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Android Persistenz Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 3 besprechen (inkl. Repetition) Die wichtigsten

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

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

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

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

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

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

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

Android 5. Programmieren für Smartphones und Tablets - Grundlagen und fortgeschrittene Techniken. von Arno Becker, Marcus Pant. 4., akt. u. erw.

Android 5. Programmieren für Smartphones und Tablets - Grundlagen und fortgeschrittene Techniken. von Arno Becker, Marcus Pant. 4., akt. u. erw. Android 5 Programmieren für Smartphones und Tablets - Grundlagen und fortgeschrittene Techniken von Arno Becker, Marcus Pant 4., akt. u. erw. Aufl dpunkt.verlag 2015 Verlag C.H. Beck im Internet: www.beck.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

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

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

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

Einführung in die Cross-Plattform Entwicklung Das Intel XDK

Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK vertraut. Es wird Schritt für Schritt die erste eigene Hybrid-App entwickelt

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

Vorkurs C++ Programmierung

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

Mehr

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

Programmieren für iphone und ipad

Programmieren für iphone und ipad Markus Stäuble Programmieren für iphone und ipad Einstieg in die App-Entwicklung für das ios 4 3., aktualisierte und erweiterte Auflage dpunkt.verlag 1 Einleitung 1 1.1 Begriffe 2 1.2 Was behandelt dieses

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

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. Der Einstieg in Java

1. Der Einstieg in Java 1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen

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

Erste Schritte mit Eclipse

Erste Schritte mit Eclipse Erste Schritte mit Eclipse März 2008, KLK 1) Java Development Kit (JDK) und Eclipse installieren In den PC-Pools der HAW sind der JDK und Eclipse schon installiert und können mit dem Application Launcher

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

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

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

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

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

Java Einführung Methoden in Klassen

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

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

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

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

Java für Computerlinguisten

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

Mehr

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

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

Mehr

C# im Vergleich zu Java

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

Mehr

Beuth Hochschule JDK und TextPad WS14/15, S. 1

Beuth Hochschule JDK und TextPad WS14/15, S. 1 Beuth Hochschule JDK und TextPad WS14/15, S. 1 JDK und TextPad Der TextPad ist ein ziemlich ausgereifter Text-Editor, den man auch als einfache ("noch durchschaubare") Entwicklungsumgebung z.b. für Java-Programme

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

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Android Kurs Online Kurs Entwicklung auf Android-Handys

Android Kurs Online Kurs Entwicklung auf Android-Handys Android Kurs Online Kurs Entwicklung auf Android-Handys Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses Modul Eins - Programmierung J2ee 1) Grundlegende Java - Programmierung : Grundlegende

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

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

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

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

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

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

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

Mehr

Primitive Datentypen

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

Mehr

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java

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

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Android Processes & Services

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

Mehr

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

Einführung in Betriebssysteme

Einführung in Betriebssysteme Einführung in Betriebssysteme APPLE ios Entwicklung von ios Entwickelt auf der Basis von MacOS X UNIX Vorgestellt am 9.1.2007 Zusammen mit iphone Markenname von Cisco Internetwork Operating System Für

Mehr

Eclipse und Java Einheit 01: Einführung in Eclipse

Eclipse und Java Einheit 01: Einführung in Eclipse Eclipse und Java Einheit 01: Einführung in Eclipse Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing Inhaltsverzeichnis 1 Hintergrundwissen

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

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

4. Software-Komponenten in Android

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

Mehr

Einführung in die Programmierung mit BlueJ

Einführung in die Programmierung mit BlueJ Einführung in die Programmierung mit BlueJ Thema 1 Grundlagen der Programmierung mit BlueJ Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2013/14 Java 1991-92 Java (1995) Anwendungsgebiet:

Mehr

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013 Programmiervorkurs Wintersemester 2012/2013 Organisation: Steffen Gebert, Alexander Wolff Tutoren: Jürgen Zöller, Jonathan Stoll Kontakt (für Organisatorisches, Fehler auf Folien...): Steffen Gebert steffen.gebert@informatik.uni-wuerzburg.de

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

Objektorientierte Softwareentwicklung SoSe 15

Objektorientierte Softwareentwicklung SoSe 15 Objektorientierte Softwareentwicklung SoSe 15 Heinz Faßbender Raum E148 Tel. 0241/6009 51913 Email: fassbender@fh-aachen.de www.fassbender.fh-aachen.de FH AACHEN UNIVERSITY OF APPLIED SCIENCES FACHBEREICH

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

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

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

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

Mehr

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

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr