für Android Native Android-Apps programmieren



Ähnliche Dokumente
Windows 8 Apps entwickeln

Handbuch SEBLOD. Mehr als nur das Standard-Joomla!: Das Content Construction Kit SEBLOD in der Praxis. Axel Tüting

Android- Handbuch. 4., aktualisierte und erweiterte Auflage

FRANZIS COMPUTERBUCH. Wissen pur für den Computeralltag

Irmtraut Meister / Lukas Salzburger AVR- Mikrocontroller-Kochbuch Entwurf und Programmierung praktischer Anwendungen

Workshop-Buch Windows 7

ELEKTRONIK SCHNELLEINSTIEG AUCH FÜR SCHÜLER GEEIGNET

Ulrich E. Stempel FRANZIS EXPERIMENTE. Freier Energie. NeueExperimente mit

Android. Hacking. Android Hacking. Android. Hacking. Ihr Smartphone kann mehr, als Sie denken: Hacken Sie Ihr Gerät, bevor es andere tun.

RC-Helikopter. richtig fliegen. Schritt für Schritt zum Flugerfolg. Mit exklusiven Videos auf DVD: Die Flugschule. Kunstflieger.

Excel. Besser im Job mit FORMELN, FUNKTIONEN UND DIAGRAMME, DAMIT SIE IHRE ZAHLEN PRÄZISE, NACHVOLLZIEHBAR UND EINDRUCKSVOLL PRÄSENTIEREN

Roboter. Der kleine Hacker. konstruieren und programmieren 10+ ALTER. Inklusive DVD-Material als Download: einfach hier klicken!

Christian Haasz. Das Buch für alle, die gute Fotos mögen. DIGITAL fotografieren. tiv. an ans Mo

Zusatzinformationen zum Produkt

Joomla!- Templates. Design und Implementierung. Know-how ist blau. in Farbe. Überzeugende Vorlagen für das Open-Source-CMS FRANZIS.

Hacking Handbuch. Hacking Handbuch. Penetrationstests planen und durchführen. Aus dem Inhalt:

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

Inhaltsverzeichnis. Heiko Mosemann, Matthias Kose. Android. Anwendungen für das Handy-Betriebssystem erfolgreich programmieren ISBN:

Samsung Galaxy S4 Buch

Audiospektrum- Analyse mit Mikrocontrollern

Heiko Mosemann Matthias Kose. Android. Anwendungen für das Handy-Betriebssystem erfolgreich programmieren HANSER

Website. zur eigenen. Ihr Weg ins Web: Domain, Hoster, Installation, Verwaltung, Pflege und IT-Recht. Websites. erstellen

Windows 8. Tipps & Tricks. Das Franzis Praxisbuch. 288 Seiten Windows-8- Insiderwissen. Christian Immler. Schnelle Lösungen für Windows-8-Probleme

URBEX Fotografie Geballtes Know-how für das perfekte Urbex-Shooting.

Inhaltsverzeichnis. Apps für Android entwickeln

APP USABILITY SCHNELLEINSTIEG 35 CHECK- LISTEN FÜR DIE PRAXIS 160 SEITEN PLATTFORMÜBERGREIFENDES DESIGN: ANDROID, APPLE IOS UND WINDOWS PHONE

Arduino. und C. Powerprojekte mit. Powerprojekte mit Arduino und C. Aus dem Inhalt: Friedrich und Andreas Plötzeneder F. und A.

Anonym im Internet mit Tor und Tails

RC-Helikopter richtig einstellen und tunen Schritt für Schritt zum perfekten Flugvergnügen

Templates für Joomla! 1.6

Pdf Invoice Center Eine detaillierte Anleitung

für Android Native Android-Apps programmieren

Einleitung... 9 Aufbau des Buchs Benötigte Software Webseite zum Buch... 13

FRANZIS PC & ELEKTRONIK. Herbert Bernstein. Das. PCB-Designer. Handbuch 3. überarbeitete Auflage. Mit 348 Abbildungen

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

APPS FÜR ANDROID ENTWICKELN

KOMPENDIUM. Access-VBA

Android GUI Entwicklung

rechenstarker Prozessor berührungsempfindliches Farbdisplay mit hoher Auflösung, der Touchscreen

App Entwicklung für Android Devices

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

- Anleitung. Update der Unfallmelde-App

Positive und negative Zahlen

ios-apps programmieren mit Swift

APPS FÜR ANDROID ENTWICKELN

Objektorientierte Programmierung in Java

Professional Series. Java für Android. Native Android-Apps programmieren. von Christian Bleske. 1. Auflage. Franzis-Verlag 2012

Rocweb Das neue Highlight in Rocrail

»Wie mach ich das«titelei_inhalt.indd :44:28

Android Freund oder Feind

Apps in ArcGIS: Neuerungen. 18. Juni 2015

Technische Hochschule Georg Agricola WORKSHOP TEIL 1 INSTALLATION VON ANDROIDSTUDIO

Vorwort Warum JavaScript? Welche Kosten hast du? Für wen ist dieses Buch?... 13

Java. Von den Grundlagen bis zu Threads und Netzen von Prof. Dr. Ernst-Wolfgang Dieterich Fachhochschule Ulm

- Was ist neu? - Wie fange ich an? - Noch Fragen?

Seminar Multimediale Werkzeuge Sommersemester 2011

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

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Native Android-Apps programmieren

sirados -Datenaustausch AVANTI 2014

P O R T R ÄT FOTOGRAFIE

ANDROID ANWENDUNGEN FÜR DAS HANDY- BETRIEBSSYSTEM ERFOLGREICH PROGRAMMIEREN

Anmelden und geben dann die Apple-ID an, mit der Sie die Server-App erwerben möchten. Möglicherweise müssen Sie erneut Ihre Apple-ID eingeben.

EIBPORT 3 VPN SSL Nutzung mit OpenVPN-Client

Das eigene Web mit HTML, CSS und JavaScript

Das Einsteigerseminar Objektorientierte Programmierung in Java

Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes

Kurzanleitung für das Bezahlen mit dem Kartenlesegerät von REINERSCT girocard im Internet

Dieses Produkt nutzt die EasyFlip -Anzeigetechnologie von PFU. PFU LIMITED In dieser Anleitung verwendete Abkürzungen für Betriebssysteme

Upgrade G Data AntiVirus Business v6 auf v11

Android Entwicklung. MobileDevCamp Munich Markus Junginger. greenrobot_de

Raspberry Pi. Raspberry Pi SERVERBUCH SERVER. Über die Autoren:

Einführung in Android. 9. Dezember 2014

Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH

C++ Einführung und professionelle Programmierung. von Ulrich Breymann. 8., erweiterte Auflage. Hanser München 2005

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

Farbkopierer Plotter Großformatdrucker Scanner Laserdrucker Faltmaschinen Software

bla bla -Clients verwenden Benutzeranleitung

Das Praxisbuch Android-Handy

Paragon System Upgrade Utilities Leitfaden: System aus einem zuvor erstellten Sicherungsarchiv virtualisieren

Walkabout: Location Based Services mit Android und dem Google Phone

map.apps 4 Bundles PIONEER / Systemvoraussetzungen

Richtig einsteigen: Access 2010 VBA-Programmierung

Benutzerhandbuch DMD Configurator

Android Apps entwickeln

Plattformen mobiler Endgeräte Windows Phone, ios, Android

Das Tablet mit Android 6.x. Kommunikation & Organisation Fotos, Videos & Medien. Markus Krimm. 1. Ausgabe, Juli 2016 ISBN

ISBN (print); (PDF); (epub)

Dokumentation Schedulingverfahren

Benutzerhandbuch. USB 2.0 zu IDE und SATA Adapterkabel. Modell: DA-70202

Inhaltsverzeichnis. Lokale Installation SQL-Server Voraussetzungen Einrichten des SQL-Servers Arbeitsplatz Installation...

Einführung in die Android-Entwicklung

Inhalt. Vorwort Erste Grundlagen... 15

Dipl.-Inform. Arno Becker ist bei der visionera GmbH verantwortlich für den Bereich»Mobile Lösungen«. Nach langjähriger Erfahrung mit Java ME

Vorwort Die Geschichte der Apps 19

Pisafit Mathematik Klammern. Inhaltsverzeichnis

Bitte lesen Sie dieses Dokument erst komplett durch, bevor Sie mit dem Installieren anfangen.

Transkript:

2. aktualisierte und erweiterte Auflage Christian Bleske Java für Android Native Android-Apps programmieren So entwickeln Sie Android-Apps mit Java und Eclipse Klassen und Methoden für Android kennenlernen und nutzen So verkaufen Sie Ihre Apps bei Google Play

Christian Bleske Java für Android Native Android-Apps programmieren

Christian Bleske Java für Android Native Android-Apps programmieren So entwickeln Sie Android-Apps mit Java und Eclipse Klassen und Methoden für Android kennenlernen und nutzen So verkaufen Sie Ihre Apps bei Google Play

Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte Daten sind im Internet über http://dnb.ddb.de 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. 2013 Franzis Verlag GmbH, 85540 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. Satz: DTP-Satz A. Kugge, München art & design: www.ideehoch2.de Druck: C.H. Beck, Nördlingen Printed in Germany ISBN 978-3-645-60254-9

5 Vorwort Liebe Leserinnen und Leser, egal welche Studie man sich derzeit ansieht, ein Trend ist klar erkennbar. Die Nutzung von mobilen Geräten nimmt weiter rasant zu. Ein Gewinner steht dabei ganz klar fest: Googles Android. Das (mobile) Betriebssystem hat in Deutschland derzeit einen Marktanteil von über 60 und weltweit von ca. 75 Prozent. Tendenz weiter steigend. In diesem Sinne ist die Beschäftigung mit dem Thema also weiterhin zukunftsweisend. Vor ca. einem Jahr erschien die erste Auflage von»java für Android«. An dieser Stelle darf ich Sie zur zweiten, überarbeiteten Auflage begrüßen. Obwohl es nur einen kleinen Versionssprung von 4.0 auf 4.2 gab, hat sich für die Entwickler einiges getan. Gerade im Bereich der Entwicklung von Apps für Android wurde mit der Veröffentlichung der neuen ADT-Werkzeuge der Komfort deutlich erhöht. Der Einstieg in die Thematik dürfte somit noch einfacher fallen. Eigentlich müsste dieses Buch»Java & XML für Android«heißen. Warum? Nun, wenn Sie dieses Buch lesen, dann werden Sie feststellen, dass die Entwicklung einer Android- App neben Java auch viel XML erfordert. Aber das wäre ein blöder Titel, und so heißt das Buch eben, wie es heißt. Dieses Buch enthält über 50 Apps (Download unter www.buch.cd). Jedes Thema wurde als eigenständige App umgesetzt, die auf ein Android-Smartphone übertragen und dort ausgeführt werden kann. Nutzen Sie diesen Fundus. Wenn Sie eine Idee für eine App haben, dann schauen Sie doch einmal unter den Beispielen, ob Sie nicht eines als Basis für Ihre eigene App verwenden können. Wie sagt man so schön:»bitte bedienen Sie sich!«. Zusätzlich zu den bereits aus der ersten Auflage bekannten Kapiteln habe ich in Kapitel 24 auch ein neues Beispiel zur App-Programmierrung hinzugefügt, welches dazu dienen soll, Ihnen die Entwicklung einer App vom Beginn bis zum Ende an einem einfachen Beispiel komplett zu demonstrieren. Komplett deshalb, weil es nicht nur der Demonstration einer bestimmten Technik (also beispielsweise eines Controls) dient, sondern selbst etwas Logik beinhaltet. Es handelt sich um ein Zahlenratespiel. Wenn Ihnen nach dem Lesen des Buches noch Ideen zur eigenen App fehlen oder Sie ein größeres Beispiel suchen, dann öffnen Sie doch einmal den Google Play Store und betrachten Sie die»wuppertal App«. Diese App ist übrigens zur selben Zeit entstanden wie die erste Auflage des Buchs. Menschen machen Fehler. Natürlich schließt das mich als Autor ein. Die Wahrscheinlichkeit ist also groß, dass Sie auch in der zweiten Auflage auf den einen oder anderen Fehler stoßen werden. Behalten Sie ihn! Nein, natürlich nicht! Wenn Sie einen Fehler finden oder sich eine andere Unklarheit in Bezug auf das Buch ergibt, so bin ich unter cb.2000@hotmail.de für Sie erreichbar.

6 Vorwort Auch für Kritik (Beim nächsten Mal wird alles noch besser!) oder Lob bin ich Ihnen dankbar. Schreiben Sie mir, ich werde versuchen, jede Mail zu beantworten. Herzlich bedanken möchte ich mich bei den Mitarbeiterinnen und Mitarbeitern des Franzis Verlags und hier im Besonderen bei Herrn Markus Stäuble (Programmleitung Web- und Smartphoneprogrammierung). Ein besonders großer Dank geht an meine Frau Sanela. Sie ermöglicht es mir, dass ich Zeit zum Schreiben finde. Christian Bleske im Januar 2013

7 Inhaltsverzeichnis 1 Einleitung... 13 1.1 Android, das meistverkaufte Smartphone-OS... 13 1.2 Für wen ist dieses Buch gedacht?... 14 1.3 Benötigte Hard- und Software... 15 1.3.1 Mögliche Plattformen für die Entwicklung... 15 1.4 Welches Android-Phone zur Entwicklung?... 16 1.5 Java-SDK... 17 1.5.1 Download und Installation... 17 1.6 Android-SDK... 20 1.6.1 Download und Installation... 20 1.6.2 Android SDK Manager... 22 1.6.3 Installation von Android-SDKs... 23 1.7 AVD Manager (Emulator)... 24 1.7.1 Das virtuelle Device verwenden... 27 1.7.2 Daten und Dateien zum virtuellen Device übertragen... 28 1.7.3 Das ADT Bundle... 30 2 Eclipse & ADT-Plugin... 33 2.1 Download und Installation von Eclipse... 33 2.2 Eclipse kurze Einführung... 36 2.3 Download und Installation des ADT-Plugins... 39 2.4 Neues Android-Projekt mit Eclipse... 41 2.4.1 Projektübersicht mit Package Explorer & Start einer App... 49 2.4.2 Bestandteile eines Android-Projekts... 54 2.4.3 AndroidManifest.xml... 58 2.4.4 Strings.xml... 59 2.4.5 main.xml... 60 2.4.6 R.java... 61 2.4.7 Quellcode.java... 62 2.4.8 Der Quellcode-Editor... 64 2.4.9 Projekte in Eclipse verwalten... 67 2.5 Fehlersuche/Debugging... 68 2.5.1 Debug-Zertifikat mit debug.keystore... 68 2.5.2 Eclipse Debugger... 69 2.5.3 Breakpoints (Haltepunkte)... 69

8 Inhaltsverzeichnis 2.5.4 LogCat... 71 2.5.5 Konfiguration eines Phones für das Remote-Debugging... 73 2.5.6 Remote-Debugging auf dem Gerät... 76 2.6 Die Android-SDK-Online-Dokumentation... 76 2.7 Hinweis zum Import... 76 3 Grundlagen der Programmierung mit Java... 79 3.1 Variablen und Zuweisungen... 79 3.2 Datentypen... 81 3.2.1 Zeichen und Zeichenketten... 82 3.2.2 Ganze Zahlen und Fließkommazahlen... 82 3.2.3 Wahrheitswerte... 83 3.2.4 Aufzählungen... 83 3.2.5 Konstanten... 84 3.3 Operatoren... 84 3.3.1 Boolesche Operatoren... 85 3.3.2 Arithmetische Operatoren... 86 3.4 Kontrollstrukturen... 87 3.4.1 Die Fallunterscheidung... 89 3.4.2 Mehrfachauswahl... 90 3.5 Schleifen... 91 3.5.1 Schleifen kopfgesteuert (while-schleife)... 91 3.5.2 Schleifen fußgesteuert... 92 3.5.3 Zählschleifen... 93 3.5.4 For(each)-Schleife... 94 3.6 Felder (Arrays)... 96 3.6.1 Initialisierung aus strings.xml... 97 3.6.2 Mehrdimensionale Felder... 98 3.7 Einfache und Referenztypen... 99 3.8 Typumwandlung... 100 3.9 Fehlerbehandlung mit Exceptions... 101 4 Objektorientierte Programmierung mit Java... 105 4.1 Grundlagen der Objektorientierung... 105 4.1.1 Was sind Objekte?... 105 4.1.2 Was sind Klassen?... 106 4.1.3 Sichtbarkeit steuern... 107 4.2 Methoden... 108 4.2.1 Parameter von Methoden... 109 4.2.2 Getter- und Setter-Methoden... 110 4.2.3 Das Schlüsselwort this... 112 4.2.4 Konstruktor... 113

Inhaltsverzeichnis 9 4.3 Vererbung in Java... 114 4.3.1 Überschreiben von Methoden... 116 4.3.2 Rückgriff mit Super... 118 4.3.3 Überladen von Methoden... 119 4.4 Schnittstellen... 120 4.5 Packages... 121 5 Android Building Blocks... 123 5.1 Activities... 123 5.2 Intents... 124 5.3 Services... 125 5.4 Content Providers... 126 5.5 Broadcast Receivers... 126 6 Activity & Co. im Detail... 127 6.1 Activities... 127 6.2 Intents zum Aktivieren von Activities verwenden... 132 6.3 Lebenszyklus einer Activity... 137 7 Oberfläche für die App... 141 7.1 Der GUI-Designer des ADT-Plugins... 141 7.2 GUI mit XML (XML-Editor)... 145 7.3 Layouts... 148 7.3.1 LinearLayout... 149 7.3.2 RelativeLayout... 151 7.3.3 FrameLayout... 154 7.3.4 TableLayout... 155 7.3.5 AbsoluteLayout... 156 7.3.6 GridLayout... 157 7.4 Oberfläche mit Java... 159 8 Standard-Controls... 161 8.1 Deklaration und Zugriff auf ein TextView-Control in Java... 162 8.2 Button... 163 8.3 Checkbox... 165 8.4 Toggle-Button... 167 8.5 Radio-Button... 168 8.6 Radio-Group... 169 8.7 CheckedTextView... 172 8.8 Spinner... 173 8.9 Progress-Bar... 175 8.10 Seek-Bar... 176

10 Inhaltsverzeichnis 8.11 QuickContactBadge... 178 8.12 Rating-Bar... 180 8.13 Edit-Text... 181 8.14 AutoCompleteTextView... 182 8.15 MultiAutoCompleteTextView... 183 9 Listen und Container... 185 9.1 ListView-Control & CustomAdapter... 185 9.2 ExpandableListView... 197 9.3 Grid-View... 202 9.4 Scroll-View... 206 9.5 HorizontalScrollView... 207 9.6 Sliding-Drawer... 209 9.7 Tab-Host & Tab-Widget... 213 9.8 Web-View... 219 9.8.1 HTML-Code in Java einbetten und im Web-View anzeigen... 220 9.8.2 Komplettes HTML-Dokument in die App einbetten und im Web- View anzeigen... 221 10 Grafik und Multimedia... 225 10.1 Image-View... 225 10.2 Gallery... 227 10.3 Image-Button... 232 10.4 Media-Player... 233 10.5 Video-View... 235 11 Zeit und Datum... 237 11.1 Time-Picker... 237 11.2 Date-Picker... 239 11.3 Chronometer... 242 11.4 Analog-Clock... 244 11.5 Digital-Clock... 245 11.6 Calendar-View... 245 12 Transitions... 249 12.1 Image-Switcher... 249 12.2 Text-Switcher... 253 12.3 View-Animator... 256 12.4 View-Flipper... 258 12.5 View-Switcher... 261

Inhaltsverzeichnis 11 13 Fortgeschritten... 265 13.1 requestfocus... 265 13.2 View... 266 13.3 View-Group... 271 13.4 View-Stub... 276 13.5 GestureOverlayView... 278 14 Menüs & Bars... 285 14.1 Ein Menü erstellen... 285 14.1.1 Kontextmenüs... 293 14.1.2 Submenüs... 298 14.2 Action-Bar... 301 15 Rotation, Auflösung und Fragmente... 305 15.1 Rotation des Bildschirms... 305 15.2 Auflösungsunabhängig entwickeln... 310 15.3 Fragments... 314 15.3.1 App mit einfachem Fragment... 315 15.3.2 App mit komplexerem Fragment... 317 16 Zugriff auf (externe) Dateien... 325 16.1 App-Daten schreiben und lesen... 325 16.2 Daten wahlfrei schreiben und lesen... 329 16.3 Bilddateien einlesen... 332 17 Preferences (App-spezifische Konfiguration)... 335 18 Dialoge... 343 18.1 Alert-Dialog... 343 18.2 Progress-Dialog... 345 18.3 DatePicker-Dialog... 346 18.4 TimePicker-Dialog... 348 18.5 Custom-Dialog... 350 18.6 Toast Notification... 353 19 Threading mit Runnable... 355 19.1 Threading, Runnable und der Progress-Dialog... 355 20 Sensoren... 363 20.1 GPS... 363 20.2 Kamera... 367

12 Inhaltsverzeichnis 20.3 Audiodaten... 369 20.4 Beschleunigungssensor... 373 21 Google Maps... 377 21.1 Maps-Key erstellen... 377 21.2 MapView-Control... 381 21.3 Places Search API & JSON... 386 22 Kommunikation... 397 22.1 Telefon... 397 22.2 SMS... 398 22.3 E-Mail... 400 23 App veröffentlichen... 403 23.1 Registrierung bei Google Play... 403 23.2 App signieren... 405 23.3 Veröffentlichung der App bei Google Play... 409 24 Die Zahlenraten-App... 415 24.1 Vorüberlegungen... 415 24.2 Anlegen des Projekts... 416 24.3 Konfiguration des Layouts... 417 24.4 Einfügen der Controls... 418 24.5 Programmierung... 421 24.6 Icons hinzufügen... 424 Glossar... 427 Stichwortverzeichnis... 431

13 1 Einleitung Java und Android sind ein Gespann. Google hat quasi mit wenigen Ausnahmen (Android NDK) die komplette App-Entwicklung auf Java ausgerichtet. Gut so, zumal Java keine besonders schwere Programmiersprache, sondern relativ einfach zu erlernen ist. Auch die von Google zur Verfügung gestellten Werkzeuge (z. B. das ADT-Plugin für Eclipse) sind auf die Entwicklung mit Java ausgerichtet. Bevor man mit der Entwicklung beginnen kann, müssen allerdings ein paar Voraussetzungen erfüllt werden. Zunächst muss das Java-SDK auf dem Entwicklungsrechner installiert werden, zum anderen natürlich auch das Android-SDK. Dann muss ein Android-Emulator eingerichtet werden. Zur professionellen Entwicklung empfiehlt es sich, ein Android-Smartphone für echte Tests zu verwenden. Das ist eine ganze Reihe an Punkten, die, wie gesagt, etwas Vorbereitung erfordern. In diesem Kapitel wird Ihnen Schritt für Schritt demonstriert, wie die beschriebenen Punkte umgesetzt werden können. 1.1 Android, das meistverkaufte Smartphone-OS Egal welche Statistik man sich zurzeit anschaut Smartphones, die Android als Betriebssystem verwenden, liegen vorn. Im Moment geht man von einem Marktanteil aus, der über 60 Prozent beträgt. Selbst Apple wurde überholt. Aber woran liegt das? An einer guten Versorgung mit Updates für ältere Geräte jedenfalls nicht. Hier hat Google kein glückliches Händchen gehabt, den Herstellern die Auslieferung von Updates zu überlassen oder, besser gesagt, nicht zu überlassen. Denn diese haben oft kein Interesse daran, ein Smartphone längere Zeit mit neuen Betriebssystemversionen zu versorgen. Ein bekanntes (und ärgerliches) Beispiel hierfür ist das Galaxy S von Samsung. Obwohl das Smartphone von der Hardware her durchaus in der Lage ist, Android 4.0 zu stemmen, verweigert Samsung das Update mit Hinweis auf die Hardware. Diese ist in Verbindung mit der Samsung eigenen GUI-Erweiterung TouchWiz (angeblich) nicht mehr schnell genug! Es gibt also zumindest einen Punkt, der nicht gerade für Android spricht. Auf der anderen Seite überwiegen aber sicherlich die Pro-Argumente, als da wären: das offene System und der Preis. Aufgrund der Offenheit des Systems gibt es auch entsprechend viele unterschiedliche Handys. Vom preiswerten Einstiegsmodell unter 100 Euro bis zum schicken, mit allen Extras ausgestatteten, mehrere Hundert Euro teuren Spitzenmodell. Für jeden Geschmack in Form, Farbe und Ausstattung sowie natürlich jeden Geldbeutel ist etwas dabei.

14 Kapitel 1: Einleitung Diese Vielfalt an Geräten mit unterschiedlicher Hardwareausstattung hat ihren Preis, und diesen bezahlen letzten Endes die Entwickler! Warum? Weil sie es sind, die dafür sorgen müssen, dass ihre App auf möglichst vielen (wenn nicht allen) Gerätetypen läuft, und das kann mitunter eine Sisyphusarbeit sein. Zwei Faktoren erschweren also die Entwicklung: die Form von Geräten (unterschiedliche Bildschirmgrößen) und die unterschiedlichen Betriebssystemversionen. Hinzu kommt dann noch das eine oder andere Problem mit den Entwicklungswerkzeugen. Natürlich handelt es sich bei diesen Werkzeugen um Software, und jeder, der selbst einmal programmiert hat, weiß, dass es fehlerfreie Software nicht gibt. Trotz dieser (Problem-)Faktoren, der Einstieg in die Entwicklung von Apps ist auf keiner Plattform so einfach wie auf Android. Der erste Grund: Es kostet wirklich nichts (mit Ausnahme des Handys selbst)! Während bei anderen Plattformen (Apple und Microsoft) vom Entwickler eine jährliche Gebühr zu entrichten ist, um Apps veröffentlichen zu können, ist das bei Android nicht der Fall. Selbst die einmal zu zahlenden 25 US-Dollar für einen Account bei Google Play kann man sich sparen, wenn man eine App beispielsweise über die eigene Webseite vertreibt oder alternativ einen anderen App-Store (z. B. Amazon) benutzt. Der zweite Punkt hängt mit dem ersten zusammen. Nur wenn man sich bei Apple oder Microsoft registriert, ist man überhaupt in der Lage, eine App auf ein Gerät zu übertragen. Bei Android ist das nicht der Fall. Man kauft sich ein Handy, schließt es an einen Computer an (egal ob Windows-PC, Linux oder Mac) und kann die App (nach kurzer Konfiguration) auf das eigene Handy aufspielen. Insofern spricht einiges dafür, mit der Entwicklung von Apps unter Android zu beginnen. 1.2 Für wen ist dieses Buch gedacht? Dieses Buch richtet sich in erster Linie an Leser, die über keine oder wenige Kenntnisse in der Programmierung verfügen. Sollten Sie mit Begriffen wie Klasse, Objekt, Instanz, Eigenschaft oder Methode nicht viel anfangen können, dann sind Sie hier richtig. In den Kapiteln 3 und 4 werden die Grundlagen erläutert. So ganz bei null können Sie allerdings nicht starten. Sie sollten wissen, was eine grafische Benutzeroberfläche ist. Das bedeutet, Sie sollten wissen, was ein Button, eine TextBox oder eine ComboBox sind. Zwar geht das Kapitel 8 auch auf diese Steuerelemente (Controls) ein, aber an der einen oder anderen Stelle werden diese Begriffe schon zuvor verwendet, ohne sie zu grundsätzlich zu erläutern. Allerdings können Sie das eine oder andere»fremdwort«auch im Glossar nachschlagen. Auch die Begriffe HTML oder XML sollten Sie schon einmal gehört haben und wissen, was sich dahinter verbirgt. Es wird auch nicht auf die Bedienung eines Android-Handys eingegangen. Auch dieser Punkt wird als bekannt vorausgesetzt.

1.3 Benötigte Hard- und Software 15 Wenn Sie also noch absoluter EDV-Neuling sind, dann sollten Sie auf ein anderes Buch ausweichen. Ein Wort noch an die Profis unter Ihnen. Dieses Buch hat primär Einsteiger im Fokus, aus diesem Grund auch die üppige Anzahl an Beispielen, die nicht nur in Form dieses Buches, sondern auch als Software vorliegen. Was die Beispiele und deren Komplexität angeht, so kann man es nicht so gestalten, dass die Bedürfnisse aller Zielgruppen hundertprozentig abgedeckt werden. Gehen Sie also davon aus, dass im Zweifel die Gruppe der Einsteiger mehr berücksichtigt wird als die Gruppe der Fortgeschrittenen. Tipp: Die Listings und Links im Buch müssen Sie nicht mühsam abtippen! Sie finden sie in Form eines Downloads unter www.buch.cd. 1.3 Benötigte Hard- und Software Neben einem Smartphone mit Android (ab Version 1.6) benötigen Sie natürlich einen PC mit Windows oder Linux oder einen Intel-Mac mit OS X 10.7 oder 10.8. Der Rechner, der zur Entwicklung verwendet wird, sollte über eine Dual-Core-CPU mit mindestens zwei Gigahertz Taktfrequenz verfügen. Zwei Gigabyte Hauptspeicher sind unter Windows Vista, 7 und 8 zu empfehlen. Übrigens: Wenn Sie noch Windows XP auf Ihrem PC installiert haben, so können Sie es vorerst noch dabei belassen. Android benötigt weder Vista noch Windows 7 (und schon gar nicht Windows 8). Sofern Sie einen Mac verwenden möchten, genügt durchaus ein Mac Mini. An Software benötigt man ein aktuelles Java-SDK (6 oder 7), das Android SDK, Eclipse und das ADT-Plugin für Eclipse. Oder man entscheidet sich für das Komplettpaket bestehend aus SDK, Eclipse und Plugin, später mehr zu diesem Thema. Wo Sie diese Software downloaden können und was dabei beachtet werden muss, wird auf den kommenden Seiten beschrieben. Java und das Android-SDK sowie Eclipse benötigen zusammen etwa ein bis zwei Gigabyte auf der Festplatte. Das ist auch abhängig davon, wieviel Dokumentation lokal auf der Festplatte installiert wird. 1.3.1 Mögliche Plattformen für die Entwicklung Alle Windows-Versionen ab XP sind nutzbar. Was Linux betrifft, so sollte die Installation beispielsweise unter einer aktuellen Debian- oder Ubuntu-Version kein Problem darstellen. Mac OS X wird ab Version 10.4.8 (nur x86) unterstützt. Die Beispiele im Buch wurden übrigens sowohl unter Windows als auch unter Mac OS X geschrieben. Beschrieben wird im Buch die Installation unter Windows. Warum? Einfach weil dieses Betriebssystem (zurzeit) die größte Installationsbasis hat.