Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG. Dirk Louis»Android«Jetzt bei. EXTRA: Mit kostenlosem E-Book

Ähnliche Dokumente
Inhaltsverzeichnis. Android

ISBN Print; PDF; epub

Jetzt lerne ich Android

APPS FÜR ANDROID ENTWICKELN

ISBN Print; PDF; epub

Bleiben Sie auf dem Laufenden!

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

Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG. Dirk Louis»Android«Jetzt bei. EXTRA: Mit kostenlosem E-Book

WIRTSCHAFTS- INFORMATIK

WIRTSCHAFTS- INFORMATIK

Spritzgießwerkzeuge kompakt

Inhaltsverzeichnis. Apps für Android entwickeln

ENTWICKELN. APPS FÜR ios AM BEISPIEL EINER REALEN APP. jan TITTEL jochen BAUMANN

DIN EN ISO 9001 : 2015 UMSETZEN. Pocket Power ANNI KOUBEK. Herausgegeben von Gerd F. Kamiske

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

Auf einen Blick. Elementare Anwendungsbausteine. Telefonfunktionen nutzen. Dateien und Datenbanken. Organizer und Multimedia

Fit für die Prüfung Elektrotechnik Effektives Lernen mit Beispielen und ausführlichen Lösungen

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

Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG. EXTRA: E-Book inside. dirk LOUIS peter MÜLLER. 2.

Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG. Dirk Louis»Android«Jetzt bei. EXTRA: Mit kostenlosem E-Book

TECHNISCHES SCHREIBEN

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

APPS FÜR ANDROID ENTWICKELN

Peter Kröner. Einstieg in CSS3. Standards und Struktur. 1. Auflage. Open Source Press

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

STRATEGISCHES PROZESS - MANAGEMENT

Objektorientiertes Programmieren für Ingenieure

wettbewerbsfähig gestalten

Management globaler Produktionsnetzwerke

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

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

Dipl.-Inform. Arno Becker Dipl.-Inform. Marcus Pant

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

Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH

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

Easy ISO 9001 für kleine Unternehmen

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

Apps für ios entwickeln

Seminar Multimediale Werkzeuge Sommersemester 2011

Copyright (C) Open Source Press

Konfigurationsmanagement mit Subversion, Maven und Redmine

LASER CUTTING. Eigene Designs erstellen, schneiden und gravieren. Anika Kehrer Teja Philipp Sven Rens

Windows 8 Apps entwickeln

Technisches Zeichnen mit CATIA V5

Medientechnik. Basiswissen Nachrichtentechnik, Begriffe, Funktionen, Anwendungen. Ulrich Freyer

Sichere Lagerung gefährlicher Stoffe

(1)Einführung in Eclipse

Onshape kurz und bündig

Arbeitsbuch Mathematik

Prüfprozesseignung nach VDA 5 und ISO

Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Mobile Anwendungen mit Android

Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG. EXTRA: E-Book inside. dirk LOUIS peter MÜLLER. 2.

Video-Marketing mit YouTube

Klientenzentrierte Gesprächsführung in der Physiotherapie:

Vermögenseinlagen stiller Gesellschafter, Genußrechtskapital und nachrangige Verbindlichkeiten als haftendes Eigenkapital von Kreditinstituten

Paul Chlebek. Praxis der User Interface-Entwicklung

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN

Change Management. Das Praxisbuch für Führungskräfte. Claudia Kostka

/.../ ein absolut lohnenswertes Buch. Prof. Dr. Stephan Kleuker, FH Nordakademie

ios-apps programmieren mit Swift

Apple ios EXTRAblatt iphone Update. DIE einfache ANLEITUNG. Update. Die Themen

Android- Handbuch. 4., aktualisierte und erweiterte Auflage

Android Apps entwickeln

Elektrotechnik 3. Grundgebiete der. Aufgaben. Arnold Führer Klaus Heidemann Wolfgang Nerreter. 3., neu bearbeitete Auflage

Das Grundlagenbuch zu FileMaker Pro 7- Datenbanken erfolgreich anlegen und verwalten

Am Puls wirtschaftlicher Entwicklung

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

Was bringt dieses Buch (und was nicht)

Corporate Design Packager

POCKET POWER. Wissensmanagement. 4. Auflage

Leseprobe. Thomas Hummel, Christian Malorny. Total Quality Management. Tipps für die Einführung. ISBN (Buch):

grep kurz & gut John Bambenek and Agnieszka Klus

>> Hallo mobile Welt << Einstieg in die Android-App-Programmierung

FRANZIS COMPUTERBUCH. Wissen pur für den Computeralltag

CATIA V5 downloaded from by on January 20, For personal use only.

Informatik. Christian Kuhn. Web 2.0. Auswirkungen auf internetbasierte Geschäftsmodelle. Diplomarbeit

Kennzahlenbasiertes Prozeßcontrolling für den Produktionsbereich in einem Unternehmen der Investitionsgüterindustrie

Stephan Thesmann. Einführung in das Design multimedialer Webanwendungen

Kapitalbedarfs- und Liquiditätsplanung bei einer Existenzgründung

Design for Six Sigma. Kompaktes Wissen Konkrete Umsetzung Praktische Arbeitshilfen. Stephan Back Hermann Weigel

Auf einen Blick. 1 Apps programmieren wie geht das? Das App-Werkzeug: LiveCode Grundbausteine einer App... 43

Apps-Entwicklung mit Eclipse

Risikomanagement. Praxisleitfaden zur integrativen Umsetzung. Sabine Illetschko Roman Käfer Klaus Spatzierer

Praxiswissen Online-Marketing

X.systems.press ist eine praxisorientierte Reihe zur Entwicklung und Administration von Betriebssystemen, Netzwerken und Datenbanken.

Hans-Georg Kemper Henning Baars. Business Intelligence Arbeits- und Übungsbuch

Apps Programmierung von Android-Smartphones

Yoga - die Kunst, Körper, Geist und Seele zu formen

Smartphone Entwicklung mit Android und Java

Spätes Bietverhalten bei ebay-auktionen

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Praxisleitfaden Projektmanagement

Die Balanced Scorecard als Instrument des strategischen Managements aus Sicht eines mittelständischen Logistikunternehmens

SPD als lernende Organisation

Die Kunst des Fragens 4. Auflage

Bibliografische Information der Deutschen Nationalbibliothek:

Transkript:

dirk LOUIS peter MÜLLER Dirk Louis»Android«Jetzt bei Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG EXTRA: Mit kostenlosem E-Book Auf DVD: Beispiele, Tutorials, JRE und Android-Bundle Inklusive: Java-Tutorium für Ein- und Umsteiger

Louis/Müller Android Hinweis: Zu diesem Buch gehört eine DVD. Sollte diese DVD nicht beiliegen, können Sie sie unter fachbuch@hanser.de kostenlos anfordern. Bleiben Sie auf dem Laufenden! Unser Computerbuch-Newsletter informiert Sie monatlich über neue Bücher und Termine. Profitieren Sie auch von Gewinnspielen und exklusiven Leseproben. Gleich anmelden unter www.hanser-fachbuch.de/newsletter Hanser Update ist der IT-Blog des Hanser Verlags mit Beiträgen und Praxistipps von unseren Autoren rund um die Themen Online Marketing, Webentwicklung, Programmierung, Softwareentwicklung sowie IT- und Projekt management. Lesen Sie mit und abonnieren Sie unsere News unter www.hanser-fachbuch.de/update

Dirk Louis Peter Müller Android Der schnelle und einfache Einstieg in die Programmierung und Entwicklungsumgebung

Die Autoren: Dirk Louis, Saarbrücken, autoren@carpelibrum.de Peter Müller, Saarbrücken, leserfragen@gmx.de Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen oder Teilen davon entsteht. Ebenso übernehmen Autoren und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Waren be zeich nungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und MarkenschutzGesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Der Android-Roboter ist eine Erfindung von Google und darf nur gemäß der Creative Commons 3.0 Attribution Licence verwendet und verbreitet werden. Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbiblio grafie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) auch nicht für Zwecke der Unterrichtsgestaltung reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. 2014 Carl Hanser Verlag München, www.hanser-fachbuch.de Lektorat: Brigitte Bauer-Schiewek Copy editing: Petra Kienle, Fürstenfeldbruck Herstellung: Irene Weilhart Umschlagdesign: Marc Müller-Bremer, www.rebranding.de, München Umschlagrealisation: Stephan Rönigk Gesamtherstellung: Kösel, Krugzell Printed in Germany Print-ISBN: 978-3-446-43823-1 E-Book-ISBN: 978-3-446-43831-6

Inhalt Vorwort.................................................... XV Teil I: Einführung............................................ 1 1 Der Rechner wird vorbereitet............................... 3 1.1 Die nötigen Hilfsmittel................................................ 3 1.2 Installation des Android-ADT-Bundle.................................... 4 1.3 Eclipse............................................................. 6 1.3.1 Erster Start................................................... 6 1.3.2 Desktop-Verknüpfung anlegen................................... 8 1.4 Die JRE für Java...................................................... 8 1.5 Der Android-SDK-Manager............................................. 9 1.5.1 Die Android-Versionen.......................................... 9 1.5.2 APIs und SDKs nachinstallieren.................................. 10 1.5.3 Dokumentation und API-Referenz................................ 12 1.6 Wo Sie weitere Hilfe finden............................................ 14 1.7 Nächste Schritte..................................................... 14 1.8 Fragen und Antworten................................................ 15 1.9 Übungen............................................................ 15 2 Auf die Plätze, fertig... App!............................... 17 2.1 Die Ruhe vor dem Sturm.............................................. 17 2.2 Das Projekt.......................................................... 18 2.3 Das vorgegebene Codegerüst........................................... 27 2.3.1 Die package-anweisung......................................... 28 2.3.2 Die import-anweisungen........................................ 29 2.3.3 Die Klassendefinition........................................... 30 2.4 Layout und Ressourcen................................................ 31 2.4.1 XML-Layouts.................................................. 32 2.4.2 Ressourcen................................................... 34

VI Inhalt 2.5 Die App erstellen (Build).............................................. 36 2.6 Die App im Emulator testen............................................ 37 2.6.1 AVD für Emulator anlegen....................................... 37 2.6.2 App testen.................................................... 40 2.7 Die App auf dem Smartphone oder Tablet-PC testen........................ 42 2.8 Nächste Schritte..................................................... 45 2.9 Fragen und Antworten................................................ 45 2.10 Übungen............................................................ 46 3 Was wann wofür......................................... 47 3.1 Was ist zu tun? Die drei Pfeiler der App-Erstellung........................ 47 3.2 Wer hilft uns? Bausteine und Klassen.................................. 48 3.2.1 Bausteine für den App-Aufbau................................... 48 3.2.2 Klassen zur Adressierung spezieller Aufgaben..................... 52 3.3 Wo wird was gespeichert? Dateitypen, die Sie kennen sollten.............. 53 3.3.1 Quelldateien.................................................. 53 3.3.2 Automatisch generierte Dateien.................................. 54 3.3.3 Die Android-Bibliothek......................................... 55 3.3.4 assets........................................................ 56 3.3.5 Die Ressourcendateien.......................................... 56 3.3.6 Die Manifestdatei.............................................. 56 3.3.7 Die Properties-Datei............................................ 58 3.3.8 Die APK-Datei................................................. 59 3.4 Fragen und Antworten................................................ 59 3.5 Übung.............................................................. 60 Teil II: Grundlagen........................................... 61 4 Code................................................... 63 4.1 Unterstützung durch den Eclipse-Editor.................................. 63 4.1.1 Syntaxhervorhebung........................................... 64 4.1.2 Gliederung (Folding)........................................... 64 4.1.3 QuickFix..................................................... 66 4.1.4 QuickInfo statt API-Dokumentation............................... 70 4.1.5 Klammerpaare identifizieren.................................... 73 4.1.6 Zeilennummern einblenden..................................... 73 4.1.7 Alle Vorkommen markieren..................................... 74 4.1.8 Definitionen finden............................................ 74 4.1.9 Code erweitern................................................ 75 4.1.10 Refactoring (Code umstrukturieren).............................. 77 4.2 Klassen in eigene Quelldateien auslagern................................. 79 4.2.1 Die Tuschstaffel-App........................................... 79 4.2.2 Quelldateien hinzufügen........................................ 83

Inhalt VII 4.3 Fragen und Antworten................................................ 85 4.4 Übung.............................................................. 85 5 Die Benutzeroberfläche (Layout)........................... 87 5.1 Ein paar einführende Gedanken zum Design von Benutzeroberflächen........ 87 5.2 Die zwei Gesichter der Layoutdateien: XML kontra Designer................ 90 5.2.1 Der XML-Code................................................. 91 5.2.2 Der Designer.................................................. 96 5.3 Layout-Views........................................................ 99 5.3.1 Die allgemeinen Layoutparameter................................ 100 5.3.2 Die Layout-Views.............................................. 103 5.3.3 Hintergrundfarbe (oder -bild).................................... 111 5.3.4 Hierarchy Viewer.............................................. 114 5.4 Widgets............................................................. 115 5.5 Praxisbeispiel: eine Quiz-Oberfläche..................................... 119 5.6 Hoch- und Querformat................................................ 123 5.7 App-Symbol......................................................... 125 5.8 Views im Code verwenden............................................. 126 5.8.1 Layouts laden................................................. 126 5.8.2 Zugriff auf UI-Elemente......................................... 127 5.9 Fragen und Antworten................................................ 128 5.10 Übung.............................................................. 129 6 Ressourcen............................................. 131 6.1 Der grundlegende Umgang............................................ 131 6.1.1 Ressourcen anlegen............................................ 132 6.1.2 Ressourcen verwenden......................................... 135 6.1.3 Ressourcen aus dem Projekt entfernen............................ 138 6.2 Welche Arten von Ressourcen gibt es?................................... 139 6.2.1 Größenangaben............................................... 139 6.2.2 Farben....................................................... 140 6.2.3 Strings....................................................... 141 6.2.4 String-Arrays (Texte)........................................... 142 6.2.5 Bilder........................................................ 145 6.2.6 Layouts...................................................... 146 6.2.7 Menüs....................................................... 146 6.2.8 Roh- und Multimediadaten...................................... 147 6.2.9 Stile......................................................... 148 6.3 Alternative Ressourcen vorsehen....................................... 152 6.3.1 Das Grundprinzip.............................................. 152 6.3.2 Wie stellt man konfigurationsspezifische Ressourcen bereit?.......... 154 6.4 Fragen und Antworten................................................ 155 6.5 Übungen............................................................ 156

VIII Inhalt 7 Mit dem Anwender interagieren............................ 157 7.1 Das Grundprinzip.................................................... 157 7.1.1 Auf ein Ereignis reagieren...................................... 158 7.1.2 Welche Ereignisse gibt es?...................................... 161 7.1.3 Hintergrund der Ereignisverarbeitung............................ 162 7.2 Vereinfachte Ereignisbehandlung....................................... 164 7.2.1 Ereignisbehandlung mit anonymen Listener-Klassen................ 164 7.2.2 Ereignisbehandlung mit anonymen Listener-Objekten............... 165 7.2.3 Ereignisbehandlung mithilfe der Activity-Klasse.................... 166 7.3 Eine Behandlungsmethode für mehrere Views............................ 166 7.4 Auf Tipp- und Wischereignisse reagieren................................ 168 7.4.1 Tippereignisse................................................ 168 7.4.2 Wischereignisse............................................... 169 7.5 Auf Tastendrücke reagieren............................................ 171 7.6 Ereignisverarbeitung in selbst geschriebenen View-Klassen................. 172 7.7 Fragen und Antworten................................................ 173 7.8 Übungen............................................................ 174 8 App-Grundlagen und Lebenszyklus......................... 175 8.1 Die Android-Architektur............................................... 175 8.2 Der App-Lebenszyklus................................................ 177 8.3 Der Activity-Lebenszyklus............................................. 179 8.4 Lebenszyklusdemo................................................... 181 8.5 Fragen und Antworten................................................ 185 8.6 Übung.............................................................. 186 Teil III: Weiterführende Themen................................ 187 9 In Views zeichnen........................................ 189 9.1 Das Grundprinzip.................................................... 189 9.1.1 Die Leinwand................................................. 189 9.1.2 Das Atelier.................................................... 189 9.1.3 Die Zeichenmethoden und -werkzeuge............................ 190 9.1.4 Wie alles zusammenwirkt....................................... 190 9.2 Grafikprimitive zeichnen.............................................. 194 9.3 Bilder bewegen...................................................... 197 9.4 Verbesserungen...................................................... 202 9.5 Fragen und Antworten................................................ 203 9.6 Übung.............................................................. 203 10 Menüs und Dialoge....................................... 205 10.1 Menüs.............................................................. 205

Inhalt IX 10.1.1 Menüverwirrungen............................................ 206 10.1.2 Menüressourcen............................................... 207 10.1.3 Menüeinträge in der ActionBar.................................. 210 10.1.4 Das Optionen-Menü............................................ 211 10.1.5 Das Kontextmenü.............................................. 212 10.1.6 Popup-Menü.................................................. 214 10.1.7 Untermenüs.................................................. 214 10.1.8 Auf die Auswahl eines Menüeintrags reagieren..................... 215 10.2 Dialoge............................................................. 217 10.2.1 Dialoge erzeugen.............................................. 218 10.2.2 Dialoge anzeigen.............................................. 218 10.2.3 Standarddialoge mit AlertDialog................................. 219 10.2.4 Dialoge für Datum- und Zeitauswahl.............................. 221 10.2.5 Der Fortschrittsdialog.......................................... 223 10.2.6 Eigene Dialoge definieren....................................... 225 10.3 Benachrichtigungen mit Toasts......................................... 227 10.3.1 Toasts im Hintergrund-Thread................................... 227 10.4 Fragen und Antworten................................................ 228 10.5 Übungen............................................................ 229 11 Mehrseitige Apps........................................ 231 11.1 Intents............................................................. 231 11.1.1 Was sind Intents?.............................................. 232 11.1.2 Explizite und implizite Intents................................... 233 11.1.3 Intent-Filter................................................... 233 11.2 Activities starten mit Intents........................................... 234 11.2.1 Intent-Objekte erzeugen........................................ 235 11.3 Intents empfangen................................................... 237 11.4 Ein Demo-Beispiel.................................................... 237 11.5 Ergebnisse zurücksenden............................................. 240 11.6 Fragen und Antworten................................................ 241 11.7 Übung.............................................................. 241 12 Daten speichern......................................... 243 12.1 Preferences......................................................... 243 12.2 Dateizugriffe........................................................ 244 12.2.1 In Dateien schreiben........................................... 244 12.2.2 Aus Dateien lesen.............................................. 245 12.2.3 Textdateien................................................... 246 12.2.4 Welche Dateien sind vorhanden?................................. 247 12.2.5 Dateien als Ressourcen verwalten................................ 248 12.3 Zugriff auf die SD-Karte............................................... 248 12.4 Die Reaktions-App.................................................... 250

X Inhalt 12.5 Fragen und Antworten............................................... 255 12.6 Übungen.......................................................... 255 13 Quiz-Apps.............................................. 257 13.1 Aufbau und Benutzeroberfläche....................................... 257 13.2 Die Activity (QuizActivity.java)........................................ 258 13.3 Die Fragen (Frage.java).............................................. 260 13.4 Die Spielsteuerung (Spiellogik.java).................................... 261 13.5 Verbesserungen.................................................... 263 13.6 Fragen und Antworten............................................... 264 13.7 Übung............................................................ 264 14 Multimedia............................................ 265 14.1 Audioressourcen.................................................... 265 14.2 Soundeffekte mit SoundPool.......................................... 266 14.3 Das Universalgenie: MediaPlayer...................................... 268 14.3.1 Audioressourcen abspielen.................................... 268 14.3.2 Audiodateien vom Dateisystem abspielen........................ 269 14.3.3 Audiodateien aus dem Internet abspielen........................ 269 14.3.4 Auf das Abspielende reagieren................................. 270 14.3.5 MediaPlayer-Objekte wiederverwenden......................... 271 14.3.6 Ressourcen freigeben........................................ 273 14.3.7 Audiodateien wiederholt abspielen............................. 274 14.4 Piepen und andere Töne............................................. 274 14.5 Bilddateien anzeigen................................................ 276 14.6 Videos abspielen.................................................... 277 14.7 Videos aufnehmen.................................................. 278 14.8 Fotos aufnehmen und speichern....................................... 279 14.9 Fragen und Antworten............................................... 284 14.10 Übungen.......................................................... 284 15 Sensoren.............................................. 285 15.1 Zugriff............................................................ 285 15.1.1 Was Sie benötigen........................................... 286 15.1.2 Welche Sensoren sind verfügbar?.............................. 286 15.1.3 Anmeldung beim Sensor...................................... 287 15.2 Sensordaten auslesen................................................ 289 15.2.1 Beschleunigungswerte ermitteln............................... 291 15.2.2 Lagedaten ermitteln.......................................... 294 15.3 Fragen und Antworten............................................... 298 15.4 Übung............................................................ 299

Inhalt XI 16 Einsatz der Datenbank SQLite............................ 301 16.1 Was ist eine relationale Datenbank?.................................... 301 16.2 Datenbank anlegen/öffnen........................................... 302 16.2.1 oncreate().................................................. 303 16.2.2 onupgrade()................................................ 305 16.2.3 close()..................................................... 305 16.2.4 Datenbanken als Ressourcen mitgeben.......................... 305 16.3 Datenzugriffe....................................................... 306 16.4 Datenbankinhalte mit ListView anzeigen............................... 311 16.5 Fragen und Antworten............................................... 315 16.6 Übung............................................................ 315 17 Geolokation............................................ 317 17.1 Zugriff............................................................ 317 17.1.1 Verfügbarkeit feststellen...................................... 317 17.1.2 Daten empfangen............................................ 318 17.1.3 Empfänger abmelden......................................... 319 17.2 Geokoordinaten..................................................... 320 17.2.1 Sexagesimale und dezimale Darstellung......................... 320 17.2.2 Das Location-Objekt.......................................... 320 17.3 Die Demo-App...................................................... 322 17.4 Fragen und Antworten............................................... 326 17.5 Übung............................................................ 326 18 Brettspiel-Apps (TicTacToe)............................... 327 18.1 Aufbau und Benutzeroberfläche....................................... 327 18.2 Die Start-Activity (TicTacToeActivity)................................... 329 18.3 Spielfeld und Logik (TicTacToeView)................................... 330 18.3.1 Vorbereitungen.............................................. 330 18.3.2 Spielfeld zeichnen........................................... 331 18.3.3 Spielerzug durchführen....................................... 333 18.3.4 Computerzug mit AsyncTask durchführen....................... 334 18.4 Verbesserungen.................................................... 336 18.5 Fragen und Antworten............................................... 337 18.6 Übung............................................................ 337 19 Tablet-Unterstützung mit Fragmenten...................... 339 19.1 19.2 19.3 19.4 Was ist ein Fragment?............................................... 339 Ein Fragment erzeugen.............................................. 340 Fragment zur Activity hinzufügen..................................... 340 Ein Fragmentbeispiel................................................ 342 19.4.1 Das Layout der Activity....................................... 343

XII Inhalt 19.4.2 Definition der Fragment-Klassen............................... 344 19.4.3 Die Activity................................................. 346 19.5 Fragmente für Dialoge............................................... 349 19.6 Fragen und Antworten............................................... 350 19.7 Übung............................................................ 351 20 Tipps und Tricks........................................ 353 20.1 Mehrere AVDs und Emulator- Konfigurationen einrichten.................. 353 20.2 Das Smartphone vibrieren lassen...................................... 356 20.3 UI-Code periodisch ausführen lassen................................... 357 20.4 Bildergalerien mit GridView und BaseAdapter........................... 360 20.4.1 Die Bildressourcen........................................... 361 20.4.2 Die Adapter-Klasse........................................... 361 20.4.3 Die GridView............................................... 364 20.4.4 Angeklickte Bilder als Vollbild anzeigen......................... 365 20.5 Spinner verwenden (Listenfelder)...................................... 367 20.5.1 Den Spinner mit Daten füllen.................................. 368 20.5.2 Ereignisbehandlung.......................................... 369 20.6 Mehrsprachige Apps................................................ 370 20.7 Fragen und Antworten............................................... 372 20.8 Übung............................................................ 373 Anhang A: Apps veröffentlichen oder weitergeben................ 375 A.1 A.2 A.3 A.4 A.5 A.6 Die App vorbereiten................................................. 375 Digitales Signieren.................................................. 377 Die App exportieren und signieren..................................... 377 Bei Google Play registrieren.......................................... 380 A.4.1 Steuerliche Aspekte bei App-Verkauf............................ 381 App hochladen..................................................... 382 Weitergabe an Bekannte............................................. 382 Anhang B: Eclipse............................................ 385 B.1 Android-Projekt anlegen............................................. 385 B.2 Projekte erstellen................................................... 385 B.3 Projekte deaktivieren................................................ 387 B.4 Projekte löschen.................................................... 387 B.5 Neuen Workspace einrichten.......................................... 388 B.6 Bestehendes Projekt in Workspace a ufnehmen (Import)................... 389 B.7 Launch-Konfigurationen anpassen oder einrichten....................... 390 B.8 Properties-Fenster anzeigen.......................................... 391 B.9 Formatierung von XML-Layoutdateien.................................. 392

Inhalt XIII B.10 Apps exportieren................................................... 393 B.11 Kleines Eclipse-Wörterbuch........................................... 393 Anhang C: Emulator, DDMS & Debugger......................... 395 C.1 Der Emulator....................................................... 395 C.1.1 AVD-Dateien................................................ 396 C.1.2 Emulator starten............................................ 398 C.1.3 Die Emulator-Bedienung...................................... 403 C.1.4 Apps installieren und deinstallieren............................ 404 C.2 Das DDMS......................................................... 404 C.3 Der Debugger...................................................... 409 C.3.1 Debug-Lauf starten........................................... 409 C.3.2 Debug-Möglichkeiten......................................... 411 C.4 Debugging-Beispiel.................................................. 414 Anhang D: Die DVD zum Buch.................................. 419 Anhang E: Lösungen......................................... 423 Anhang F: Glossar........................................... 439 Index...................................................... 449

Vorwort Willkommen in der Android-Welt! Seitdem sich der Touchscreen als Standardoberfläche von Mobilfunktelefonen etabliert hat und vor kurzem noch völlig unbekannte Features wie GPS-Empfänger und Lagesensor zur Standardausstattung gehören, gibt es kein Halten mehr: Jede Woche erscheinen neue Android-basierte Geräte und die Zahl der verfügbaren Apps im Android Market explodiert geradezu. Wenn auch Sie dazugehören wollen, wenn Sie nicht bloß Anwender sein möchten, sondern daran interessiert sind, eigene Ideen in Apps umzusetzen sei es zum Spaß oder auch vielleicht als Einstieg in eine Existenz als selbstständiger Software-Entwickler, dann kann Ihnen dieses Buch einen guten Einstieg (und ein bisschen mehr) in die Welt der App-Programmierung für Android-Systeme bieten. Vorkenntnisse und Anforderungen Wir wollen nichts beschönigen. Die Anforderungen an Android-Programmierer sind hoch. Doch mithilfe dieses Buchs und ein wenig Ausdauer und Mitdenken sollten Sie die größten Hürden meistern können. Sehen wir uns dazu einmal an, welche Fähigkeiten ein Android-Programmierer besitzen muss und inwieweit Ihnen dieses Buch helfen kann, diese Fähigkeiten zu entwickeln. Gute Kenntnisse der Programmiersprache Java Sie erfüllen diesen Punkt nicht? Kein Grund zur Panik, aber lesen Sie unbedingt den nachfolgenden Abschnitt zum idealen Leser. Umgang mit der integrierten Entwicklungsumgebung Eclipse Alles, was Sie zum Umgang mit Eclipse im Allgemeinen wie auch im Hinblick auf die Er stellung von Android-Apps wissen müssen, lesen Sie in diesem Buch. Zusätzlich finden Sie am Ende des Buchs einen eigenen Anhang zu Eclipse, wo die wichtigsten Aufgaben noch einmal zusammengefasst sind (inklusive eines kleinen Eclipse-Wörterbuchs, das Lesern, die im Englischen nicht so versiert sind, die Eingewöhnung in die durchweg englische Benutzeroberfläche erleichtern soll). Einsatz verschiedener Hilfsprogramme wie HierarchyViewer, Debugger und Emulator. Insbesondere der Emulator ist für die Entwicklung von Apps unerlässlich, da Sie mit seiner Hilfe unterschiedlich ausgestattete Android-Geräte simulieren ( emulieren ) können.

XVI Vorwort Unnötig zu erwähnen, dass wir Ihnen die wichtigsten Hilfsprogramme in diesem Buch vorstellen und Sie in die Arbeit mit ihnen einführen. Wissen um den Aufbau von Apps und Kenntnis der Android-Klassenbibliothek Dies ist das eigentliche Thema dieses Buchs. Nach dem erfolgreichen Durcharbeiten dieses Buchs werden Sie sicher noch kein ProfiAndroid-Entwickler sein. Das können und wollen wir Ihnen gar nicht versprechen, denn der Umfang an Material wäre so groß, dass kein Platz mehr für ausführliche Erläuterungen bliebe. Sie werden aber eine sehr fundierte Grundlage erhalten, in viele fortgeschrittene Bereiche blicken und alles Notwendige lernen, um tolle Apps erstellen und sich selbstständig weiterbilden zu können. Der ideale Leser, Java-Kenntnisse und das Java-Tutorium auf der Buch-DVD Da es den idealen Leser im Grunde gar nicht gibt, sollten wir uns lieber fragen, welche Lesergruppen in welchem Umfang von dem vorliegenden Buch profitieren können: Leser mit guten Java-Kenntnissen, die sicher objektorientiert programmieren können und bereits Erfahrung mit Konzepten wie Überschreibung, Interface-Implementierung, Ereignis-Listener und Threads haben, bilden eine der drei Hauptzielgruppen, für die dieses Buch geschrieben wurde. Sollten Sie zu dieser Gruppe zählen, legen Sie einfach los. Leser mit grundlegenden Java-Kenntnissen bilden die zweite Hauptzielgruppe und sollten mit diesem Buch ebenfalls gut und schnell vorankommen. Sollten Sie zu dieser Gruppe gehören, achten Sie auf die im Buchtext eingestreuten Hinweise zu den Exkursen des JavaTutoriums auf der Buch-DVD. Mithilfe dieser Exkurse können Sie etwaige Wissenslücken zur Java-Programmierung schließen. Umsteiger von anderen Programmiersprachen bilden die dritte Hauptzielgruppe. Doch Obacht! Es liegt viel Arbeit vor Ihnen, denn Sie müssen sich parallel auch noch mithilfe des Java-Tutoriums auf der Buch-DVD in Java einarbeiten. Sofern Sie allerdings bereits über gute Programmierkenntnisse in einer anderen objektorientierten Sprache (wie z. B. C++ oder C#) verfügen, dürfte dies für Sie keine große Schwierigkeit sein. Sie können das Tutorium vorab oder parallel zu diesem Buch lesen (die ersten Kapitel enthalten zu diesem Zweck Hinweise, wann Sie welche Teile des Tutoriums lesen sollten). Bleibt die Gruppe der Leser, die über keine oder nur wenig Programmiererfahrung verfügen. Angehörigen dieser Gruppe können wir eigentlich nur empfehlen, sich zuerst einmal in die Java-Programmierung einzuarbeiten (beispielsweise mit unserem Java-Titel bei Hanser). Sie können es aber natürlich auch mit dem Java-Tutorium auf der Buch-DVD versuchen. Es geht zwar relativ flott voran, ist aber recht gut verständlich und beinhaltet sogar eine allgemeine Einführung in die grundlegenden Programmierkonzepte.

Inhalt XVII Aufbau des Buchs Das Buch ist in drei Teile plus Anhang gegliedert. Der erste Teil behandelt die Installation der notwendigen Entwicklerwerkzeuge und die Grundlagen der App-Erstellung. Der zweite Teil vertieft die im ersten Teil angesprochenen Grundthemen: Code, Benutzeroberfläche, Arbeiten mit Ressourcen und App-Lebenszyklus. Der dritte Teil behandelt zahlreiche fortgeschrittene Aspekte wie z. B. Grafik, Menüs, Sensoren, Spiele, Datenbanken oder Geolokation. Er unterscheidet sich nicht nur inhaltlich, sondern auch konzeptionell von den beiden vorangehenden Teilen und ist eher im Stile eines Fortgeschrittenenbuchs geschrieben. Abgerundet wird das Buch mit Anhängen zur Veröffentlichung von Apps, zu Eclipse, Emulator, DDMS und Debugger, einem Glossar und einem ausführlichen Index. Die Website zum Buch Wir haben dieses Buch mit großer Sorgfalt erstellt. Falls Sie auf Probleme oder Fehler stoßen, sollten Sie nicht zögern, uns eine E-Mail unter Angabe von Buchtitel und Auflage zu senden. Schauen Sie auch einmal auf der Hanser-Website http://downloads.hanser.de/ oder auf unserer Buch-Website www.carpelibrum.de nach. Neben zusätzlichem Material, den Lösungsprojekten zu den Übungen, Aktualisierungen und Errata finden Sie dort auch weitere Bücher zum Thema Programmieren in Java, C++, C# u. a. Viel Spaß in der Android-Welt wünschen Ihnen Dirk Louis (autoren@carpelibrum.de) Peter Müller (leserfragen@gmx.de)