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

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

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

Samsung Galaxy S4 Buch

Templates für Joomla! 1.6

Audiospektrum- Analyse mit Mikrocontrollern

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

25 Import der Beispiele

Anleitung zur Webservice Entwicklung unter Eclipse

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Die Dateiablage Der Weg zur Dateiablage

SANDBOXIE konfigurieren

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Import, Export und Löschung von Zertifikaten mit dem Microsoft Internet Explorer

Dokumentenverwaltung. Copyright 2012 cobra computer s brainware GmbH

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

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

Outlook 2000 Thema - Archivierung

Hilfe zur Dokumentenverwaltung

WordPress lokal mit Xaamp installieren

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Anonym im Internet mit Tor und Tails

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Datensicherung. Beschreibung der Datensicherung

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Live Update (Auto Update)

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

FTP-Server einrichten mit automatischem Datenupload für

Updateseite_BuV-PlugIn-NERZ-Gesamt

Installation und Test von Android Apps in der Entwicklungs- und Testphase

Leitfaden zur Installation von Bitbyters.WinShutdown

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Dokumentation: Balanced Scorecard

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Der einfache Weg zum CFX-Demokonto

! " # $ " % & Nicki Wruck worldwidewruck

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Seminar Multimediale Werkzeuge Sommersemester 2011

Step by Step Webserver unter Windows Server von Christian Bartl

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

TeamSpeak3 Einrichten

Artikel Schnittstelle über CSV

Wie halte ich Ordnung auf meiner Festplatte?

Durchführung der Datenübernahme nach Reisekosten 2011

GeoPilot (Android) die App

Übung: Verwendung von Java-Threads

KNX BAOS Gadget. Installations- und Bedienanleitung. WEINZIERL ENGINEERING GmbH. DE Burgkirchen Web:

Wissenswertes über LiveUpdate

Auswertung erstellen: Liste mit -

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Umstellung VPSMail von Java-Web-Start auf Installer

Nie wieder eine Sitzung verpassen unser neuer Service für Sie!

Installation des edu- sharing Plug- Ins für Moodle

LEHRSTUHL FÜR DATENBANKEN

OS Anwendungsbeschreibung

WORKSHOP VEEAM ENDPOINT BACKUP FREE

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Der Kalender im ipad

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

Persönliches Adressbuch

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Anleitungen zum Publizieren Ihrer Homepage

Favoriten sichern. Sichern der eigenen Favoriten aus dem Webbrowser. zur Verfügung gestellt durch: ZID Dezentrale Systeme.

Content Management System (CMS) Manual

Kleines Handbuch zur Fotogalerie der Pixel AG

OP-LOG

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Anleitung ftp-zugang Horn Druck & Verlag GmbH Bruchsal

Anleitung Captain Logfex 2013

Handbuch B4000+ Preset Manager

1 Robert Klaßen: Photoshop Elements 8 für digitale Fotos

Eclipse 3.0 (Windows)

Installationsanleitung für Magento-Module

FrogSure Installation und Konfiguration

Newsletter. 1 Erzbistum Köln Newsletter

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

DOKUMENTATION VOGELZUCHT 2015 PLUS

Starten der Software unter Windows 7

Laden der beiden virtuellen Orgeln (36 bzw. 100 Register) unter Hauptwerk

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

PowerMover. Eine Zusatz-Anwendung für Outlook-PowerUser. Damit können eingehende s schneller verwaltet werden. Vasquez Systemlösungen

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Tutorial -

2 DAS BETRIEBSSYSTEM. 2.1 Wozu dient das Betriebssystem. 2.2 Die Bildschirmoberfläche (Desktop) Themen in diesem Kapitel: Das Betriebssystem

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

VB.net Programmierung und Beispielprogramm für GSV

Folgeanleitung für Klassenlehrer

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

TRIC DB Release 6.0. Refresh mit der Wiederherstellung der Produkte Siemens, Landis&Gyr und DEOS. für. Lizenznehmer der TRIC DB Version 6.0.

[ DROPBOX PER USB-STICK NUTZEEN ]

PDF-Erzeugung mit PDFCreator (nur für Windows, installiert universellen PDF-Druckertreiber) v11/01

1. Zuerst muss der Artikel angelegt werden, damit später die Produktvarianten hinzugefügt werden können.

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Transkript:

Professional Series Java für Android Native Android-Apps programmieren von Christian Bleske 1. Auflage Franzis-Verlag 2012 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 645 60110 8 schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

Christian Bleske Know-how ist blau. 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 Der Einstieg in die Mobile-Programmierung

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

Christian Bleske Java für Android Native Android-Apps programmieren Mit 191 Abbildungen

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. 2012 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. Lektorat: Anton Schmid Satz: DTP-Satz A. Kugge, München art & design: www.ideehoch2.de Druck: GGP Media GmbH, Pößneck Printed in Germany ISBN 978-3-645-60110-8

5 Vorwort Liebe Leserinnen und Leser, Vor ziemlich genau einem Jahr begann mein letztes Buch zum Thema App-Entwicklung (Windows Phone 7-Apps entwickeln) mit den Worten»Apps, Apps und nochmals Apps «. Jetzt nach einem Jahr (ich hätte es mir nicht träumen lassen), steht diese Aussage nach wie vor. Kein anderes Segment innerhalb der IT wächst im Moment so rasant wie der Bereich Smartphone und Tablet-Computer. Es liegt wohl daran, dass diese Geräte sehr portabel sind und überall problemlos eingesetzt werden können selbst wenn einmal keine Stromquelle vorhanden ist. Erstmals wurden im Jahr 2011 mehr Smartphones als PCs verkauft. In diesem Sinne ist die Beschäftigung mit diesem Thema also durchaus zukunftsweisend. 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 beinhaltet. Aber das wäre ein blöder Titel, und so heißt das Buch eben wie es heißt. Dieses Buch beinhaltet ü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 «. In diesem Buch sollte es ursprünglich auch drei Kapitel zum Thema Google App Inventor geben. Es handelt sich dabei um eine Entwicklungsumgebung mit welcher man (mit Einschränkungen) Apps für Android erstellen kann ohne»von Hand«zu programmieren. Die»Programmierung«mit diesem Werkzeug geschieht rein visuell. Das ist nun nicht der Fall. Wie kam es dazu? Ende letzten Jahres hat sich Google entschieden, einige Projekte einzustellen. Darunter war auch der App Inventor. Nun ist es sicherlich nicht zielführend, über eine Technologie zu schreiben, die nicht mehr weiterentwickelt wird. Aber gerade beim App Inventor ist das Problem noch schwerwiegender, da die Programmierungsumgebung webgestützt ist. Das bedeutet sie läuft oder besser gesagt lief auf Google-Servern und wurde im Browser ausgeführt. Ohne Google-Unterstützung kein App Inventor. So einfach ist das. Zwar hat sich mittlerweile eine neue Heimat für den App Inventor beim MIT gefunden, aber die Zukunft des Projekts ist doch sehr ungewiss. Aus diesem Grund habe ich mich entschieden, auf eine Beschreibung des App Inventor zu verzichten und stattdessen die Einführung in Java ausgebaut. Wenn Sie sich trotzdem mit dem App Inventor auseinandersetzen möchten, dann finden Sie diesen unter folgender URL: http://appinventor.mit.edu/. Menschen machen Fehler. Natürlich schließt das mich als Autor ein. Die Wahrscheinlichkeit ist also groß, dass Sie auf den einen oder anderen Fehler stoßen werden.

6 Vorwort 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. Auch für Kritik (Beim nächsten Mal wird alles besser!) oder Lob bin ich Ihnen dankbar. Schreiben Sie mir, ich werde versuchen jede Mail zu beantworten. Das Schreiben eines Buches ist Teamarbeit. Sicher zuerst ist da der Autor, der erst einmal allein vor sich hin wuselt und das Manuskript erstellt. Aber, damit aus dem Manuskript ein Buch wird, bedarf es noch einer ganzen Reihe von Personen, die direkt oder indirekt mit der Entstehung des Buches beschäftigt sind. Bei diesen Menschen möchte ich mich hiermit bedanken. Ein besonderer Dank geht an Herrn Anton Schmid vom Lektorat Professional Series beim Franzis-Verlag. Er hat das Buch in mühevoller Arbeit korrigieren müssen. Mein Dank gilt auch den vielen anderen Mitarbeiterinnen und Mitarbeitern des Franzis-Verlags, die ich nicht kenne. Ein besonders großer Dank geht an meine Frau Sanela. Sie ermöglicht es mir, dass ich Zeit zum Schreiben finde. Christian Bleske im März 2012

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... 19 1.6.1 Download und Installation... 20 1.6.2 Android SDK Manager... 21 1.6.3 Installation von Android-SDKs... 22 1.7 AVD Manager (Emulator)... 23 1.7.1 Das virtuelle Device verwenden... 26 1.7.2 Daten und Dateien zum virtuellen Device übertragen... 27 2 Eclipse & ADT-Plugin... 29 2.1 Download und Installation von Eclipse... 29 2.2 Eclipse kurze Einführung... 31 2.3 Download und Installation des ADT-Plugins... 35 2.4 Neues Android-Projekt mit Eclipse... 37 2.4.1 Projektübersicht mit Package Explorer & Start einer App... 41 2.4.2 Bestandteile eines Android-Projekts... 46 2.4.3 AndroidManifest.xml... 49 2.4.4 Strings.xml... 50 2.4.5 main.xml... 51 2.4.6 R.java... 52 2.4.7 Quellcode.java... 53 2.4.8 Der Quellcode-Editor... 54 2.4.9 Projekte in Eclipse verwalten... 57 2.5 Fehlersuche/Debugging... 58 2.5.1 Debug-Zertifikat mit debug.keystore... 59 2.5.2 Eclipse Debugger... 59 2.5.3 Breakpoints (Haltepunkte)... 59 2.5.4 LogCat... 62

8 Inhaltsverzeichnis 2.5.5 Konfiguration eines Phones für das Remote-Debugging... 64 2.5.6 Remote-Debugging auf dem Gerät... 66 2.6 Die Android-SDK-Online-Dokumentation... 66 3 Grundlagen der Programmierung mit Java... 67 3.1 Variablen und Zuweisungen... 67 3.2 Datentypen... 69 3.2.1 Zeichen und Zeichenketten... 70 3.2.2 Ganze Zahlen und Fließkommazahlen... 70 3.2.3 Wahrheitswerte... 71 3.2.4 Aufzählungen... 71 3.2.5 Konstanten... 72 3.3 Operatoren... 72 3.3.1 Boolesche Operatoren... 73 3.3.2 Arithmetische Operatoren... 74 3.4 Kontrollstrukturen... 75 3.4.1 Die Fallunterscheidung... 77 3.4.2 Mehrfachauswahl... 78 3.5 Schleifen... 79 3.5.1 Schleifen kopfgesteuert (while-schleife)... 79 3.5.2 Schleifen fußgesteuert... 80 3.5.3 Zählschleifen... 81 3.5.4 For(each)-Schleife... 82 3.6 Felder (Arrays)... 84 3.6.1 Initialisierung aus strings.xml... 85 3.6.2 Mehrdimensionale Felder... 86 3.7 Einfache und Referenztypen... 87 3.8 Typumwandlung... 88 3.9 Fehlerbehandlung mit Exceptions... 89 4 Objektorientierte Programmierung mit Java... 93 4.1 Grundlagen der Objektorientierung... 93 4.1.1 Was sind Objekte?... 93 4.1.2 Was sind Klassen?... 94 4.1.3 Sichtbarkeit steuern... 95 4.2 Methoden... 96 4.2.1 Parameter von Methoden... 97 4.2.2 Getter- und Setter-Methoden... 98 4.2.3 Das Schlüsselwort this... 100 4.2.4 Konstruktor... 101 4.3 Vererbung in Java... 102 4.3.1 Überschreiben von Methoden... 104

Inhaltsverzeichnis 9 4.3.2 Rückgriff mit Super... 106 4.3.3 Überladen von Methoden... 107 4.4 Schnittstellen... 108 4.5 Packages... 109 5 Android Building Blocks... 111 5.1 Activities... 111 5.2 Intents... 112 5.3 Services... 113 5.4 Content Providers... 114 5.5 Broadcast Receivers... 114 6 Activity & Co. im Detail... 115 6.1 Activities... 115 6.2 Intents zum Aktivieren von Activities verwenden... 120 6.3 Lebenszyklus einer Activity... 125 7 Oberfläche für die App... 127 7.1 Der GUI-Designer des ADT-Plugins... 127 7.2 GUI mit XML (XML-Editor)... 131 7.3 Layouts... 134 7.3.1 LinearLayout... 134 7.3.2 RelativeLayout... 137 7.3.3 FrameLayout... 139 7.3.4 TableLayout... 140 7.3.5 AbsoluteLayout... 141 7.4 Oberfläche mit Java... 143 8 Standard-Controls... 145 8.1 Deklaration und Zugriff auf ein TextView-Control in Java... 146 8.2 Button... 147 8.3 Checkbox... 149 8.4 Toggle-Button... 151 8.5 Radio-Button... 152 8.6 Radio-Group... 153 8.7 CheckedTextView... 156 8.8 Spinner... 157 8.9 Progress-Bar... 159 8.10 Seek-Bar... 160 8.11 QuickContactBadge... 162 8.12 Rating-Bar... 164 8.13 Edit-Text... 165

10 Inhaltsverzeichnis 8.14 AutoCompleteTextView... 166 8.15 MultiAutoCompleteTextView... 167 9 Listen und Container... 169 9.1 ListView-Control & CustomAdapter... 169 9.2 ExpandableListView... 181 9.3 Grid-View... 186 9.4 Scroll-View... 190 9.5 HorizontalScrollView... 191 9.6 Sliding-Drawer... 193 9.7 Tab-Host & Tab-Widget... 197 9.8 Web-View... 203 9.8.1 HTML-Code in Java einbetten und im Web-View anzeigen... 204 9.8.2 Komplettes HTML-Dokument in die App einbetten und im Web- View anzeigen... 205 10 Grafik und Multimedia... 209 10.1 Image-View... 209 10.2 Gallery... 211 10.3 Image-Button... 216 10.4 Media-Player... 218 10.5 Video-View... 220 11 Zeit und Datum... 223 11.1 Time-Picker... 223 11.2 Date-Picker... 225 11.3 Chronometer... 228 11.4 Analog-Clock... 230 11.5 Digital-Clock... 231 11.6 Calendar-View... 231 12 Transitions... 235 12.1 Image-Switcher... 235 12.2 Text-Switcher... 239 12.3 View-Animator... 242 12.4 View-Flipper... 244 12.5 View-Switcher... 247 13 Fortgeschritten... 251 13.1 requestfocus... 251 13.2 View... 252 13.3 View-Group... 257

Inhaltsverzeichnis 11 13.4 View-Stub... 262 13.5 GestureOverlayView... 264 14 Menüs & Bars... 271 14.1 Ein Menü erstellen... 271 14.1.1 Kontextmenüs... 279 14.1.2 Submenüs... 284 14.2 Action-Bar... 287 15 Rotation, Auflösung und Fragmente... 291 15.1 Rotation des Bildschirms... 291 15.2 Auflösungsunabhängig entwickeln... 296 15.3 Fragments... 300 15.3.1 App mit einfachem Fragment... 301 15.3.2 App mit komplexerem Fragment... 303 16 Zugriff auf (externe) Dateien... 311 16.1 App-Daten schreiben und lesen... 311 16.2 Daten wahlfrei schreiben und lesen... 315 16.3 Bilddateien einlesen... 318 17 Preferences (App-spezifische Konfiguration)... 321 18 Dialoge... 329 18.1 Alert-Dialog... 329 18.2 Progress-Dialog... 331 18.3 DatePicker-Dialog... 332 18.4 TimePicker-Dialog... 334 18.5 Custom-Dialog... 336 18.6 Toast Notification... 339 19 Threading mit Runnable... 341 19.1 Threading, Runnable und der Progress-Dialog... 341 20 Sensoren... 349 20.1 GPS... 349 20.2 Kamera... 353 20.3 Audiodaten... 355 20.4 Beschleunigungssensor... 359

12 Inhaltsverzeichnis 21 Google Maps... 363 21.1 Maps-Key erstellen... 363 21.2 MapView-Control... 367 21.3 Places Search API & JSON... 372 22 Kommunikation... 383 22.1 Telefon... 383 22.2 SMS... 384 22.3 E-Mail... 386 23 App veröffentlichen... 389 23.1 Registrierung bei Google Play... 389 23.2 App signieren... 391 23.3 Veröffentlichung der App bei Google Play... 395 Glossar... 401 Stichwortverzeichnis... 405

29 2 Eclipse & ADT-Plugin Im ersten Kapitel wurden mit der Installation des Java- und Android-SDK die Grundlagen für die Entwicklung von Android-Apps gelegt. Allein mit diesen beiden Frameworks ist eine Entwicklung von Apps zwar möglich, aber äußerst umständlich. Um schneller Ergebnisse erzielen zu können und auch um den Entwicklungsprozess zu vereinfachen, ist die Verwendung einer integrierten Entwicklungsumgebung unumgänglich. Dabei muss es nicht unbedingt Eclipse sein, auch die Verwendung von beispielsweise NetBeans als IDE (Integrated Development Environment) ist möglich. Für Eclipse spricht allerdings, dass Google für diese Entwicklungsumgebung eine Erweiterung (Plugin) mit dem Namen ADT-Plugin programmiert hat. Dieses ADT-Plugin sorgt dafür, dass aus der IDE Eclipse quasi eine Android-IDE wird. So steckt beispielsweise ein Designer für die Entwicklung von grafischen Benutzeroberflächen in der Erweiterung und es sind zusätzlich Werkzeuge für die Fehlersuche integriert. Auch gibt es nach der Installation Vorlagen für die Erstellung eines App-Projekts. In diesem Kapitel erfahren Sie nicht nur wie Eclipse und das ADT-Plugin installiert werden. Es werden auch die Bestandteile der IDE, die wichtigsten Werkzeuge (z. B. zur Fehlersuche) und die Struktur sowie die Bestandteile eines Android-Projekts erläutert. 2.1 Download und Installation von Eclipse Bei Eclipse handelt es sich um eine Entwicklungsumgebung, welche von der Open Source Community entwickelt wird. Eclipse kann natürlich nicht nur für die Entwicklung von Android-Apps verwendet werden. Hauptsächlich wird Eclipse sogar für die Entwicklung von Java-Anwendungen verwendet. Egal ob es sich dabei um Java-Anwendungen für den Desktop oder Web-Anwendungen handelt. Durch die besondere Architektur von Eclipse, welche auf Erweiterungen (Plugins) basiert, ist die IDE sehr flexibel konfigurierbar und somit in einer Vielzahl von unterschiedlichen Projekten zu gebrauchen. Mit Eclipse können darüber hinaus auch PHP- oder C- und C++-Anwendungen entwickelt werden. Neben den Möglichkeiten zur Erweiterung der IDE ist ein weiterer Vorteil der IDE, das diese für eine Vielzahl von Plattformen (von Windows über diverse Linux-Versionen bis hin zu Mac OS X) verfügbar ist. Die Verwaltung und Verteilung von Eclipse wird über die Webseite eclipse.org durchgeführt. Auf dieser Webseite hat man die Möglichkeit, die vielen verschiedenen Varianten der Entwicklungsumgebung herunterzuladen. Außerdem werden dort auch Neuigkeiten zu Änderungen und Erweiterungen von Eclipse vorgestellt. Die Downloads sind unter URL http://www.eclipse.org/downloads/ zu finden. Öffnet man diese Seite, so sind dort eine Vielzahl an unterschiedlichen Eclipse-Versionen aufgelistet.

30 Kapitel 2: Eclipse & ADT-Plugin Bild 2.1: Der Download von Eclipse Welche aber ist die richtige für die Entwicklung von Android-Apps? Von den aufgeführten Versionen eignen sich nicht alle Versionen für die Entwicklung von Android- Apps. Empfohlen wird die Verwendung von Eclipse Classic. Innerhalb dieser Variante von Eclipse lässt sich das ADT-Plugin installieren. Darauf achten sollte man allerdings, dass die Versionsnummer größer 3.5 ist. Mit der Version 3.7 (Codename Indigo) hat es in der Vergangenheit hin und wieder Probleme bei der Installation des Plugins gegeben. Mit Version 3.6 (Codename Helios) scheint das bisher eher weniger der Fall gewesen zu sein. Für die Android-Entwicklung spielt es keine Rolle, ob 3.6 oder 3.7 verwendet wird. Um Eclipse Helios herunterzuladen, muss man allerdings dem Link Other Downloads folgen. Erst dann kommt man zu einer Webseite, von der diese Variante geladen werden kann. Übrigens finden Sie hier auch den Download für die Mac-OS-X-Versionen. Nach dem Download, der durchaus einige Zeit in Anspruch nehmen kann, folgt die Installation. Diese fällt bei Eclipse sehr kurz aus und beschränkt sich auf das Entpacken des ZIP-Archivs und das Erstellen einer Verknüpfung zur Eclipse.exe für den Desktop von Windows. Im Anschluss kann Eclipse das erste Mal gestartet werden. Zuerst wird der Eclipse-Splash-Screen eingeblendet. Während des Ladens wird noch kurze Zeit ein Dialog (Workspace Launcher) angezeigt.

2.2 Eclipse kurze Einführung 31 Bild 2.2: Konfiguration des Workspace-Verzeichnisses Die Eclipse-IDE verwaltet alle Projekte in einem eigenen Ordner, der den Namen Workspace trägt. Direkt nach der Installation ist dieser Ordner natürlich noch nicht vorhanden. Aus diesem Grund muss der Anwender nun festlegen, wo der Ordner angelegt werden soll. Bewährt hat sich, den Workspace-Ordner unterhalb des Eclipse-Ordners anzulegen. Aber auch andere Konstellationen sind natürlich möglich. Damit man nicht nach jedem Start von Eclipse erneut gefragt wird, sollte die Option Use this as the default... aktiviert werden. 2.2 Eclipse kurze Einführung Nachdem Eclipse vollständig geladen wurde, wird der Welcome-Dialog angezeigt. Im Welcome-Dialog werden vier Optionen angeboten: Overview, Tutorials, Samples und What s New. Hier erhält man Informationen zur Eclipse-Plattform, Grundlagen zur Entwicklung von (u. a.) Java- und SWT-Anwendungen mit Eclipse, genauso wie einige Programmierbeispiele, und man erfährt, was es Neues über Eclipse zu wissen gibt. Alle diese Punkte helfen Ihnen, die Eclipse-Plattform und die Bedienung der IDE besser zu verstehen. Zur Entwicklung von Android-Apps ist dieses Wissen aber nicht zwingend erforderlich. Man kann den Dialog über das Schließen-Symbol (links oben) beruhigt verlassen. Erst wenn der Welcome-Dialog geschlossen wurde, zeigt sich die Entwicklungsumgebung.

32 Kapitel 2: Eclipse & ADT-Plugin Bild 2.3: Welcome-Dialog von Eclipse Bild 2.4: Die Eclipse-IDE

2.2 Eclipse kurze Einführung 33 Neben der Menü- und Buttonleiste werden vier»bereiche«angezeigt, mit welchen Sie später arbeiten werden. In Bild 2.4 wurden diese Bereiche durchnummeriert. Der Bereich mit der Nummer 1 ist der sogenannte Package Explorer. In diesem wird ein Projekt hierarchisch angezeigt. Dem Package Explorer ist in diesem Kapitel ein eigener Abschnitt (2.4.1) gewidmet. Daher später mehr hierzu. Im Bereich mit der Nummer 2 werden im Laufe der Entwicklung eines Projekts verschiedene Ansichten zu sehen sein. Beispielsweise wird in diesem Bereich später der Editor für den Java-Code angezeigt, aber auch die Anzeige des XML-Editors (mit diesem werden die Oberflächen von Android-Apps erstellt) ist hier zu finden. Auch der grafische Designer für Benutzeroberflächen wird hier eingeblendet. In den Bereichen 3 und 4 können unterschiedliche Fenster mit Statusinformationen angezeigt werden. Wenn Sie im Bereich 2 ein Objekt selektiert haben, so können im Bereich 3 oder 4 Detailinformationen zum ausgewählten Objekt angezeigt werden. Da die Fenster nicht fest»installiert«sind, können diese nach eigenem Geschmack verschoben und in einem der Bereiche wieder verankert werden. Sie können das ruhig ausprobieren. Die Register können via Drag & Drop aus einem Bereich in einen anderen verschoben werden. Werfen Sie nun einen Blick in die einzelnen Menüpunkte. Unterhalb des File-Menüs finden Sie Punkte um neue Projekte anzulegen (New) oder auch vorhandene Projekte zu importieren (Import...). Viele der Punkte sind selbsterklärend. Alle anderen werden bei Bedarf vorgestellt. Das Edit-Menü enthält die bekannten Funktionen zum Markieren, Kopieren, Einfügen und Suchen von (Text-)Objekten. Unter dem Punkt Navigate befinden sich Optionen zur Navigation in Projekten. Es folgt das Search-Menü und anschließend Project. Im Project-Menü finden Sie Punkte, um das aktuelle Projekt zu erstellen und zu bearbeiten. Im folgenden Run-Menü befinden sich Menüeinträge zur Fehlersuche und zum Ausführen von Projekten. Das Window-Menü erlaubt den Zugriff auf weitere Fenster bzw. Dialoge. Wichtig ist hier vor allem der Menüeintrag Show View, über welchen Sie weitere Fenster der Entwicklungsumgebung öffnen können. Beispielsweise können Sie via Show View das Problems-Register anzeigen lassen. Ein weiterer wichtiger Dialog wird über den Eintrag Preferences aufgerufen.

34 Kapitel 2: Eclipse & ADT-Plugin Bild 2.5: Konfiguration der Eclipse-IDE Im Preferences-Dialog wird die Konfiguration von Eclipse vorgenommen. Im Abschnitt General befinden sich Einstellungen, welche die Eclipse-IDE direkt betreffen. Hier kann man u. a. das Aussehen der Entwicklungsumgebung konfigurieren, aber auch Änderungen am Text-Editor lassen sich hier vornehmen. Erst nach der Installation des ADT- Plugins findet sich hier ein Punkt mit dem Namen Android. Über diesen können bestimmte Bereich des ADT-Plugins und somit der Android-Entwicklung geändert werden. Beispielsweise lässt sich hier einstellen, in welchem Verzeichnis sich die Android- Schlüsseldateien für das Debugging befinden. Anmerkung Android-Apps benötigen, um auf einem Android-Smartphone ausgeführt werden zu können, eine Signierung. Zur Erstellung dieser Signierung wird eine Schlüsseldatei Dateiname.keystore verwendet. Es gibt eine Schlüsseldatei mit welcher eine Debug- Signierung (debug.keystore) erzeugt werden kann, deren Laufzeit maximal ein Jahr beträgt. Ein Schlüssel zur Signierung für eine reguläre Veröffentlichung hat dagegen eine Laufzeit von mindestens 20 Jahren. Diese Schlüsseldateien werden noch an einigen Stellen im Buch thematisiert. Neben den Punkten General und Android findet man in diesem Bereich u. a. auch noch Konfigurationsmöglichkeiten zu den Themen Installation und Update, Java, Plugin-Entwicklung sowie XML.

2.3 Download und Installation des ADT-Plugins 35 Ein weiterer wichtiger Punkt ist im Menü Help zu finden. Dort gibt es die beiden Einträge Check for Updates und Install New Software.... Der Menüeintrag Check for Updates ist eigentlich selbsterklärend. Dieser aktiviert einen Dialog, welcher den Anwender darüber informiert, dass nach Updates gesucht wird. Diesen Punkt sollten Sie immer dann ausführen, wenn es mit Eclipse selbst ein Problem gibt. Es wird nicht nur nach Updates gesucht, auch zusätzliche Pakete werden automatisch erkannt und heruntergeladen. Im Moment aber wichtiger ist der Eintrag Install New Software..., dieser wird nämlich im folgenden Abschnitt benötigt, um das ADT-Plugin zu installieren. 2.3 Download und Installation des ADT-Plugins Eclipse alleine ist schon eine prima IDE aber leider für die Entwicklung von Android- Apps noch ungeeignet. Die fehlenden Bausteine müssen also in Form eines Plugins installiert werden. Dieses Plugin, ADT genannt, erhält man von der Android-Developer- Webseite unter folgender URL: http://developer.android.com/sdk/eclipse-adt.html. Allerdings muss man das Plugin nicht zwangsläufig herunterladen. Es gibt zwei Möglichkeiten der Installation. Die erste Variante ist, man lädt die Installationsdatei für das Plugin herunter und»sagt«eclipse anschließend, wo die Datei liegt und dass diese installiert werden soll. Wählt man den zweiten Weg, so führt Eclipse den Download und die anschließende Installation selbstständig durch. Variante zwei funktioniert allerdings nur, wenn man nicht hinter einer Firewall sitzt oder evtl. benötigte Ports gesperrt sind. Im Folgenden wird erst Variante zwei vorgestellt, da die meisten diesen Weg bevorzugen. Er ist einfach bequemer. Nachdem Start der Eclipse-IDE ruft man im Menü Help den Punkt Install New Software... auf.

36 Kapitel 2: Eclipse & ADT-Plugin Bild 2.6: Installation des ADT-Plugins vorbereiten In der rechten oberen Ecke befindet sich eine Schaltfläche mit dem Namen Add (siehe Bild 2.6), diese muss betätigt werden. Als Nächstes öffnet sich ein weiterer Dialog Add Repository. Bild 2.7: Der Add Repository-Dialog Im Add Repository-Dialog wird zuerst der Name (ADT-Plugin) des zu installierenden Plugins erfasst. Anschließend wird unter Location die Quelle der Installation eingetragen. Hier wird die folgende URL hinterlegt: https://dl-ssl.google.com/android/eclipse. Betätigt man anschließend den OK-Button, so wird mit dem Download begonnen. Die Installation wird im Anschluss an den Download durchgeführt. Im anschließend wieder angezeigten Install-Dialog muss man nun das im Fenster angezeigte Paket Developer Tools selektieren und zuletzt die Next-Schaltfläche betätigen.

2.4 Neues Android-Projekt mit Eclipse 37 Bild 2.8: Installation des ADT-Plugins Nun läuft die Installation des Plugins, dieser Vorgang kann ein wenig dauern. Zuletzt muss man noch den Lizenzbedingungen zustimmen und Eclipse neu starten. Alternative Installation Wenn man die Installation via HTTP nicht durchführen kann, z. B. wegen einer Firewall, dann muss man zunächst das komplette ADT-Plugin bzw. dessen Installationsdatei vollständig herunterladen. Das ADT-Setup-Paket ist ebenfalls unter http://developer. android.com/sdk/eclipse-adt.html verfügbar. Zur Installation geht man eigentlich genauso wie bei der HTTP-Variante vor. Im Add Repository-Dialog geben Sie allerdings unter Location keine URL an, sondern betätigen stattdessen den Archive-Button. Über den anschließend angezeigten Datei-Öffnen-Dialog selektiert man nun das zuvor heruntergeladene ZIP-Archiv und betätigt den Öffnen- Button. Natürlich muss man auch in diesem Fall einen Namen für das Plugin vergeben. Der Rest der Installation unterscheidet sich nicht von der HTTP-Variante. Gelegentlich können Sie über den Punkt Check for Updates prüfen, ob eine neue Version des ADT-Plugins vorliegt. 2.4 Neues Android-Projekt mit Eclipse Bisher haben Sie fast ausschließlich theoretisch mit der Entwicklung für Android beschäftigt. Zeit für eine kleine Fingerübung. An dieser Stelle könnte eine Hallo-Welt- App nicht schaden. Erstellen Sie also zuerst ein neues virtuelles Android-Phone. Zur Arbeitsweise mit einem via USB angeschlossenen Android-Handy kommen wird etwas später. Das virtuelle Phone wird automatisch mit dem Projekt gestartet, das bedeutet, es muss nicht vorher manuell aktiviert werden. Legen Sie also zunächst ein neues Projekt an. Im File-Menü wird New > Project... gewählt. Als Nächstes öffnet sich ein zusätzliches Untermenü, das die möglichen Projekttypen enthält. Hier wählen Sie unter Android den Eintrag Android Project aus. Anschließend wird der Dialog New Android Project geöffnet. Mit Hilfe des Dialogs wird ein neues Projekt angelegt und auch konfiguriert. Die Anlage des Projekts besteht aus mehreren Schritten. Im ersten Schritt wird der Projektname eingegeben (Feld Project Name). Außerdem sollte die Option Create new project in workspace ausgewählt bleiben (Voreinstellung). Eclipse wird also im Workspace-Ordner ein neues Verzeichnis erstel-

38 Kapitel 2: Eclipse & ADT-Plugin len und die zugehörigen Projektdateien dort hineinkopieren. Sobald der Projektname eingegeben wurde, kann die Next-Schaltfläche an der unteren Seite des Dialogs betätigt werden. Bild 2.9: Anlage eines neuen Android-Projekts Nachdem die Next-Schaltfläche betätigt wurde, muss im folgenden Arbeitsschritt festgelegt werden, welche Version des Android-SDKs verwendet werden soll.

2.4 Neues Android-Projekt mit Eclipse 39 Bild 2.10: Auswahl des Android-SDKs Die mögliche Auswahl ist natürlich abhängig davon, welche SDKs Sie auf Ihrem System installiert haben. Im Beispiel wurde das neueste SDK 4.0.3 gewählt. Das ist aber nicht zwingend erforderlich. Ein Hallo-Welt-Projekt läuft genauso gut unter Version 1.6 des API. Wichtig ist nur, dass Sie auch einen passenden Emulator angelegt haben. Wenn Sie sich also für das 1.6-API entscheiden, dann benötigen Sie auch einen Emulator, der Android 1.6 unterstützt. Die höhren SDKs benötigt man eigentlich nur, wenn man Funktionen verwendet, welche in den niedrigen Versionen nicht verfügbar sind. Ein älteres SDK bedeutet, dass die fertig gestellte App auch auf einer größeren Anzahl an Geräten läuft. Google unterstützt Sie bei der Auswahl eines geeigneten SDKs. Unter folgendem Link http://developer.android.com/resources/dashboard/platform-versions.html gibt es eine Übersicht, die 14-tägig aktualisiert wird. Auf diese Seite sollten Sie vor Beginn der Entwicklung immer einen Blick werfen, um zu entscheiden, ob es sich»lohnt«, eine bestimmte Funktion zu verwenden. Auch ein weiteres Detail kann wichtig sein. Je höher das verwendete SDK ist, desto mehr Ressourcen benötigt i.d.r. auch der passende Emulator. Das heißt, wenn Sie einen langsamen Rechner haben, kann es durchaus angenehmer sein, wenn Sie zu Beginn eine ältere SDK-Version verwenden (sofern die geplanten Funktionen vom SDK unterstützt werden). Nach Auswahl der Android-Version kann wieder die Next-Schaltfläche betätigt werden. Anschließend gelangen Sie zum dritten und letzten Schritt der Projektanlage.

40 Kapitel 2: Eclipse & ADT-Plugin Bild 2.11: Beenden der Neuanlage eines Projekts In diesem Arbeitsschritt (Application Info) legen Sie den Namen der Anwendung fest (Feld Application Name). Dieser muss nicht zwangsläufig mit dem Projektnamen übereinstimmen. Außerdem definieren Sie hier noch den Namen des Pakets (Feld Package Name). Mit einem Package wird der Programmcode, den Sie schreiben, in logische Bereiche aufgeteilt. Das bedeutet, Programmteile die zusammengehören, sollten natürlich auch immer im selben Package eingefügt werden. Stellen Sie sich ein Package am besten wie ein Verzeichnis auf der Festplatte vor, das ggf. weitere Verzeichnisse enthält. Der Verzeichnispfad Dokumente\Briefe\Anschreiben würde in Java wie folgt geschrieben werden: dokumente.briefe.anschreiben. Ein Brief, der im Ordner Anschreiben liegt, würde somit zum Package anschreiben gehören. Java-Packages strukturiert man eigentlich genauso, nur dass eine andere Schreibweise verwendet wird. Das de im Beispiel in Bild 2.11 ist übrigens die Abkürzung Deutschland. Oft findet man auch eine Package-Bezeichnung, welche den Firmennamen enthält z. B. de.firmenname.projektname. Wenn die Option Create Activity aktiv ist, wird bei der Anlage des Projekts automatisch ein Rumpfprogramm generiert, das den Projektnamen als Bestandteil enthält. Mehr zum Thema Activitys erfahren Sie in den Kapiteln 4, 5 und 6. Mit dem Punkt Minimum SDK legen Sie fest, welches API zumindest auf einem Gerät laufen muss, um die App ausführen zu können. Wird die Mindestanforderung unterschritten, so kann die App auf dem entsprechenden Gerät nicht ausgeführt werden. Wenn der letzte Punkt im Projekt Create a Test Project aktiviert wird, wird automatisch ein Rumpfprogramm generiert, welches zum Testen der App verwendet werden kann.