Dirk Louis, Peter Müller
Android
Der schnelle und einfache Einstieg in die Programmierung und Entwicklungsumgebung
Inhalt
6
Vorwort
16
Teil I: Einführung
20
1 Der Rechner wird vorbereitet
22
1.1 Die nötigen Hilfsmittel
22
1.2 Installation des JDK
23
1.3 Installation von Android Studio
24
1.3.1 Erster Start
26
1.4 Der Android-SDK-Manager
28
1.4.1 Die Android-Versionen
28
1.4.2 APIs/SDKs und anderes nachinstallieren
29
1.4.3 Dokumentation und API-Referenz
31
1.5 Wo Sie weitere Hilfe finden
33
1.6 Nächste Schritte
34
1.7 Frage und Antworten
34
1.8 Übungen
34
2 Auf die Plätze, fertig .?.?. App!
36
2.1 Die Ruhe vor dem Sturm
36
2.2 Das Projekt
37
2.3 Das vorgegebene Codegerüst
45
2.3.1 Die package-Anweisung
47
2.3.2 Die import-Anweisungen
47
2.3.3 Die Klassendefinition
48
2.4 Layout und Ressourcen
50
2.4.1 XML-Layouts
50
2.4.2 Ressourcen
53
2.5 Die App bauen (Build)
56
2.6 Die App im Emulator testen
57
2.6.1 AVD für Emulator anlegen
57
2.6.2 Die App testen
60
2.7 Die App auf Smartphone oder Tablet testen
64
2.8 Nächste Schritte
66
2.9 Fragen und Antworten
66
2.10 Übungen
67
3 Was wann wofür
68
3.1 Was ist zu tun? – Die drei Pfeiler der App-Erstellung
68
3.2 Wer hilft uns? – Bausteine und Klassen
69
3.2.1 Bausteine für den App-Aufbau
69
3.2.2 Klassen zur Adressierung spezieller Aufgaben
73
3.3 Wo wird was gespeichert? – Dateitypen, die Sie kennen sollten
74
3.3.1 Quelldateien
75
3.3.2 Die Datei R.java
75
3.3.3 Assets
76
3.3.4 Die Ressourcendateien
76
3.3.5 Die Manifestdatei AndroidManifest.xml
77
3.3.6 Die APK-Datei
78
3.4 Frage und Antworten
78
3.5 Übung
79
Teil II: Grundlagen
80
4 Code
82
4.1 Der Editor
82
4.1.1 Syntaxhervorhebung
83
4.1.2 Code Folding (Code-Gliederung)
84
4.1.3 Code Completion (Code-Vervollständigung)
86
4.1.4 Syntaxfehler beheben
88
4.1.5 Informationen über Klassen und Methoden
90
4.1.6 Klammerpaare identifizieren
93
4.1.7 Zeilennummern einblenden
93
4.1.8 Code generieren
94
4.1.9 Refactoring (Code umstrukturieren)
97
4.1.10 Dateiverlauf (Local History)
100
4.2 Neue Klassen anlegen
100
4.3 Fragen und Antworten
103
4.4 Übungen
103
5 Benutzeroberfläche und Layout
104
5.1 Einführung
104
5.2 Der Layout-Designer
105
5.2.1 Die Text-Ansicht (XML-Code)
107
5.2.2 Die Design-Ansicht
111
5.3 Layouts (ViewGroups)
114
5.3.1 Die allgemeinen Layoutparameter
115
5.3.2 ViewGroups
118
5.3.3 Hintergrundfarbe (oder -bild)
128
5.3.4 Der Hierarchy Viewer
131
5.4 UI-Elemente
133
5.5 Richtlinien für das Design von Benutzeroberflächen
137
5.6 Praxisbeispiel: eine Quiz-Oberfläche
140
5.7 Hoch- und Querformat
145
5.8 Das App-Symbol
146
5.9 Views im Code verwenden
147
5.9.1 Layouts laden
147
5.9.2 Zugriff auf UI-Elemente
148
5.10 Fragen und Antworten
150
5.11 Übung
150
6 Ressourcen
152
6.1 Der grundlegende Umgang
152
6.1.1 Ressourcen anlegen
153
6.1.2 Ressourcen verwenden
155
6.1.3 Ressourcen aus dem Projekt entfernen
159
6.2 Welche Arten von Ressourcen gibt es?
159
6.2.1 Größenangaben
159
6.2.2 Farben
160
6.2.3 Strings
161
6.2.4 Strings in mehreren Sprachen (Lokalisierung)
163
6.2.5 Bilder
164
6.2.6 Layouts
165
6.2.7 Menüs
166
6.2.8 Roh- und Multimediadaten
166
6.2.9 Stile
167
6.3 Alternative Ressourcen vorsehen
171
6.3.1 Das Grundprinzip
171
6.3.2 Wie stellt man konfigurationsspezifische Ressourcen bereit?
172
6.4 Fragen und Antworten
174
6.5 Übungen
175
7 Mit dem Anwender interagieren
176
7.1 Das Grundprinzip
176
7.1.1 Auf ein Ereignis reagieren
177
7.1.2 Welche Ereignisse gibt es?
180
7.1.3 Hintergrund der Ereignisverarbeitung
181
7.2 Vereinfachte Ereignisbehandlung
183
7.2.1 Ereignisbehandlung mit anonymen Listener-Klassen
184
7.2.2 Ereignisbehandlung mit anonymen Listener-Objekten
185
7.2.3 Ereignisbehandlung mithilfe der Activity-Klasse
185
7.3 Eine Behandlungsmethode für mehrere Views
186
7.4 Auf Tipp- und Wischereignisse reagieren
187
7.4.1 Tippereignisse
187
7.4.2 Wischereignisse
189
7.5 Multi-Touch und Gesten erkennen
191
7.5.1 Multi-Touch
191
7.5.2 Gestenerkennung
193
7.6 Frage und Antworten
195
7.7 Übung
195
8 App-Grundlagen und Lebenszyklus
196
8.1 Die Android-Architektur
196
8.2 Der App-Lebenszyklus
198
8.3 Der Activity-Lebenszyklus
200
8.4 Lebenszyklusdemo
202
8.5 Fragen und Antworten
206
8.6 Übung
206
Teil III: Weiterführende Themen
208
9 In Views zeichnen
210
9.1 Das Grundprinzip
210
9.1.1 Die Leinwand
210
9.1.2 Das Atelier
210
9.1.3 Die Zeichenmethoden und -werkzeuge
211
9.1.4 Wie alles zusammenwirkt
211
9.2 Grafikprimitive zeichnen
215
9.3 Bilder laden
219
9.4 In Bilder hineinzeichnen
220
9.5 Bilder bewegen
222
9.6 Verbesserungen
227
9.7 Fragen und Antworten
228
9.8 Übung
228
10 Menüs, Fragmente und Dialoge
230
10.1 Menüs
230
10.1.1 Menüverwirrungen
231
10.1.2 Menüressourcen
232
10.1.3 Menüeinträge in der ActionBar (AppBar)
234
10.1.4 Das Optionen-Menü
235
10.1.5 Das Kontextmenü
236
10.1.6 Popup-Menü
238
10.1.7 Untermenüs
239
10.1.8 Auf die Auswahl eines Menüeintrags reagieren
240
10.2 Fragmente
242
10.2.1 Was ist ein Fragment?
242
10.2.2 Ein Fragment erzeugen
243
10.2.3 Fragment zur Activity hinzufügen
244
10.2.4 Ein Fragmentbeispiel
245
10.2.5 Definition der Fragment-Klassen
248
10.2.6 Die Activity
250
10.3 Dialoge
252
10.3.1 Dialoge erzeugen
253
10.3.2 Dialoge anzeigen
254
10.3.3 Standarddialoge mit AlertDialog
254
10.3.4 Dialoge für Datums- und Zeitauswahl
256
10.3.5 Der Fortschrittsdialog
259
10.3.6 Eigene Dialoge definieren
261
10.4 Benachrichtigungen mit Toasts
263
10.4.1 Toasts im Hintergrund-Thread
263
10.5 Fragen und Antworten
264
10.6 Übungen
265
11 Mehrseitige Apps
266
11.1 Intents
266
11.1.1 Was sind Intents?
267
11.1.2 Explizite und implizite Intents
268
11.1.3 Intent-Filter
268
11.2 Activities starten mit Intents
269
11.2.1 Intent-Objekte erzeugen
270
11.3 Intents empfangen
272
11.4 Ein Demo-Beispiel
272
11.5 Ergebnisse zurücksenden
275
11.6 Fragen und Antworten
276
11.7 Übung
276
12 Daten speichern
278
12.1 Preferences
278
12.2 Dateizugriffe
279
12.2.1 Zugriff auf internen Speicher
280
12.2.2 Externer Speicher (SD-Karte)
283
12.3 Die Reaktions-App
286
12.4 Fragen und Antworten
291
12.5 Übungen
291
13 Quiz-Apps
292
13.1 Aufbau und Benutzeroberfläche
292
13.2 Die Activity (QuizActivity.java)
293
13.3 Die Fragen (Frage.java)
295
13.4 Die Spielsteuerung (SpielLogik.java)
296
13.5 Verbesserungen
298
13.6 Frage und Antwort
299
13.7 Übung
299
14 Multimedia
300
14.1 Audioressourcen
300
14.2 Soundeffekte mit SoundPool
301
14.3 Das Universalgenie: MediaPlayer
303
14.3.1 Audioressourcen abspielen
303
14.3.2 Audiodateien vom Dateisystem abspielen
304
14.3.3 Audiodateien aus dem Internet abspielen
304
14.3.4 Auf das Abspielende reagieren
305
14.3.5 MediaPlayer-Objekte wiederverwenden
306
14.3.6 Ressourcen freigeben
308
14.3.7 Audiodateien wiederholt abspielen
309
14.4 Piepen und andere Töne
309
14.5 Bilddateien anzeigen
311
14.6 Videos abspielen
312
14.7 Fotos und Videos aufnehmen
314
14.8 Fragen und Antworten
317
14.9 Übungen
317
15 Sensoren
318
15.1 Zugriff
318
15.1.1 Was Sie benötigen
319
15.1.2 Welche Sensoren sind verfügbar?
319
15.1.3 Anmeldung beim Sensor
321
15.2 Sensordaten auslesen
322
15.2.1 Beschleunigungswerte ermitteln
324
15.2.2 Lagedaten ermitteln
328
15.3 Fragen und Antworten
331
15.4 Übung
332
16 Einsatz der Datenbank SQLite
334
16.1 Was ist eine relationale Datenbank?
334
16.2 Datenbank anlegen/öffnen
335
16.2.1 onCreate()
336
16.2.2 onUpgrade()
338
16.2.3 close()
338
16.2.4 Datenbanken als Ressourcen mitgeben
338
16.3 Datenzugriffe
339
16.4 Datenbankinhalte mit ListView anzeigen
344
16.5 Fragen und Antworten
348
16.6 Übung
349
17 Geolokation
350
17.1 Zugriff
350
17.1.1 Verfügbarkeit feststellen
350
17.1.2 Daten empfangen
351
17.1.3 Empfänger abmelden
352
17.2 Geokoordinaten
353
17.2.1 Sexagesimale und dezimale Darstellung
353
17.2.2 Das Location-Objekt
353
17.3 Eine GPS-Tracker-App
355
17.4 Fragen und Antworten
359
17.5 Übung
359
18 Brettspiel-Apps (TicTacToe)
360
18.1 Aufbau und Benutzeroberfläche
360
18.2 Die Start-Activity (MainActivity)
362
18.3 Spielfeld und Logik (TicTacToeView)
363
18.3.1 Vorbereitungen
363
18.3.2 Spielfeld zeichnen
364
18.3.3 Spielerzug durchführen
366
18.3.4 Computerzug mit AsyncTask durchführen
367
18.4 Verbesserungen
370
18.5 Frage und Antwort
370
18.6 Übung
371
19 Tipps und Tricks
372
19.1 Das Smartphone vibrieren lassen
372
19.2 UI-Code periodisch ausführen lassen
373
19.3 Bildergalerien mit GridView und BaseAdapter
376
19.3.1 Die Bildressourcen
377
19.3.2 Die Adapter-Klasse
377
19.3.3 Die GridView
380
19.3.4 Angeklickte Bilder als Vollbild anzeigen
381
19.4 Spinner verwenden (Listenfelder)
383
19.4.1 Den Spinner mit Daten füllen
384
19.4.2 Ereignisbehandlung
385
19.5 Mehrsprachige Apps
386
19.6 Schlussbemerkung
389
Teil IV: Anhänge
390
Anhang A: Apps veröffentlichen oder weitergeben
392
A.1 Die App vorbereiten
392
A.2 Digitales Signieren
394
A.3 Die App exportieren und signieren
395
A.4 Bei Google Play registrieren
397
A.4.1 Steuerliche Aspekte bei App-Verkauf
398
A.5 App hochladen
399
A.6 Weitergabe an Bekannte
399
Anhang B: Android Studio
402
B.1 Android-Projekt anlegen
402
B.2 Projekt bauen (Build)
402
B.3 Projekte löschen
404
B.4 Eclipse-ADT-Projekt importieren
404
B.5 Run-Konfigurationen anpassen
404
B.6 Fenster zurücksetzen
405
B.7 Apps exportieren
405
B.8 Kleines Android Studio-Wörterbuch
405
Anhang C: Emulator, ADM & Debugger
408
C.1 Der Emulator
408
C.1.1 AVD-Dateien
409
C.1.2 Emulator starten
412
C.1.3 Die Emulator-Bedienung
414
C.1.4 Apps installieren und deinstallieren
415
C.2 Android Device Monitor (ADM)
415
C.3 Der Debugger
420
C.3.1 Debug-Lauf starten
420
C.3.2 Debug-Möglichkeiten
421
C.4 Debugging-Beispiel
423
Anhang D: Das Material zum Buch
428
Anhang E: Lösungen
430
Anhang F: Glossar
446
Index
456
© 2009-2024 ciando GmbH