Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
15
Teil I Grundlagen
19
1 Android – eine offene, mobile Plattform
21
1.1 Entstehung
21
1.1.1 Open Handset Alliance
22
1.1.2 Android, Inc.
22
1.1.3 Evolution einer Plattform
23
1.2 Systemarchitektur
27
1.2.1 Überblick
27
1.2.2 Application Framework
31
1.2.3 AndroidX und Jetpack
32
1.3 Entwicklungswerkzeuge
33
1.3.1 Android Studio und Android SDK installieren
34
1.3.2 Die ersten Schritte mit Android Studio
35
1.3.3 Das erste Projekt
40
1.4 Zusammenfassung
47
2 Hallo Android!
49
2.1 Android-Projekte
49
2.1.1 Projekte anlegen
50
2.1.2 Projektstruktur
55
2.1.3 Bibliotheken
60
2.2 Benutzeroberfläche
61
2.2.1 Grafiken
61
2.2.2 Texte
64
2.2.3 Views
67
2.2.4 Oberflächenbeschreibungen
68
2.3 Programmlogik und -ablauf
71
2.3.1 Activities
71
2.3.2 Benutzereingaben
75
2.3.3 Der letzte Schliff
77
2.4 Zusammenfassung
81
3 Von der Idee zur Veröffentlichung
83
3.1 Konzept und Realisierung
83
3.1.1 Konzeption
84
3.1.2 Fachlogik
85
3.1.3 Benutzeroberfläche
89
3.2 Vom Programm zum Produkt
96
3.2.1 Protokollierung
96
3.2.2 Fehler suchen und finden
101
3.2.3 Debuggen auf echter Hardware
103
3.3 Anwendungen verteilen
105
3.3.1 Die App vorbereiten
106
3.3.2 Apps in Google Play einstellen
111
3.3.3 Alternative Märkte und Ad-hoc-Verteilung
113
3.4 Zusammenfassung
114
Teil II Elementare Anwendungsbausteine
115
4 Wichtige Grundbausteine von Apps
117
4.1 Was sind Activities?
117
4.1.1 Struktur von Apps
117
4.1.2 Lebenszyklus von Activities
125
4.2 Kommunikation zwischen Anwendungsbausteinen
133
4.2.1 Intents
134
4.2.2 Kommunikation zwischen Activities
135
4.2.3 Broadcast Receiver
140
4.3 Fragmente
145
4.3.1 Grundlagen
145
4.3.2 Ein Fragment in eine Activity einbetten
148
4.3.3 Mehrspaltenlayouts
153
4.4 Berechtigungen
161
4.4.1 Normale und gefährliche Berechtigungen
161
4.4.2 Tipps und Tricks zu Berechtigungen
166
4.5 Navigation
169
4.5.1 Jetpack Navigation
169
4.5.2 Die Klasse »BottomNavigationView«
176
4.6 Zusammenfassung
181
5 Benutzeroberflächen
183
5.1 Views und ViewGroups
183
5.1.1 Views
184
5.1.2 Positionierung von Bedienelementen mit ViewGroups
191
5.1.3 Alternative Layouts
198
5.2 Vorgefertigte Bausteine für Oberflächen
206
5.2.1 Listen darstellen mit ListFragment
206
5.2.2 Programmeinstellungen mit dem PreferencesFragment
211
5.2.3 Dialoge
217
5.2.4 Menüs und Action Bar
222
5.3 Nachrichten und Hinweise
231
5.3.1 Toast und Snackbar
231
5.3.2 Benachrichtigungen
236
5.3.3 App Shortcuts
241
5.4 Trennung von Oberfläche und Logik
246
5.4.1 Bedienelemente ohne »findViewById()«
246
5.4.2 Android Architecture Components
250
5.5 Dark Mode
257
5.5.1 Das DayNight-Theme
257
5.5.2 Dark Mode in eigenen Themes
261
5.6 Zusammenfassung
261
6 Multitasking
263
6.1 Leichtgewichtige Nebenläufigkeit
264
6.1.1 Java-Erbe
264
6.1.2 Der Main- oder UI-Thread
269
6.1.3 Koroutinen
274
6.2 Services
278
6.2.1 Gestartete Services
279
6.2.2 Gebundene Services
286
6.3 Regelmäßige Arbeiten
298
6.3.1 JobScheduler
299
6.3.2 WorkManager
303
6.4 Mehrere Apps gleichzeitig nutzen
306
6.4.1 Zwei-App-Darstellung
306
6.4.2 Beliebig positionierbare Fenster
311
6.5 Zusammenfassung
311
Teil III Gerätefunktionen nutzen
313
7 Telefonieren und surfen
315
7.1 Telefonieren
315
7.1.1 Anrufe tätigen und SMS versenden
315
7.1.2 Auf eingehende Anrufe reagieren
319
7.2 Telefon- und Netzstatus
323
7.2.1 Systemeinstellungen auslesen
323
7.2.2 Netzwerkinformationen anzeigen
324
7.2.3 Carrier Services
327
7.3 Das Call Log
330
7.3.1 Entgangene Anrufe ermitteln
330
7.3.2 Änderungen vornehmen und erkennen
334
7.4 Webseiten mit WebView anzeigen
337
7.4.1 Einen einfachen Webbrowser programmieren
337
7.4.2 JavaScript nutzen
342
7.5 Webservices nutzen
348
7.5.1 Auf Webinhalte zugreifen
349
7.5.2 Senden von Daten
356
7.6 Zusammenfassung
359
8 Sensoren, GPS und Bluetooth
361
8.1 Sensoren
361
8.1.1 Die Klasse »SensorManager«
362
8.1.2 Dynamische Sensoren und Trigger
367
8.1.3 Ein Schrittzähler
371
8.2 GPS und ortsbezogene Dienste
376
8.2.1 Den aktuellen Standort ermitteln
376
8.2.2 Positionen auf einer Karte anzeigen
382
8.3 Bluetooth
390
8.3.1 Geräte finden und koppeln
390
8.3.2 Daten senden und empfangen
395
8.3.3 Bluetooth Low Energy
404
8.4 Authentifizierung durch biometrische Merkmale
409
8.4.1 Fingerabdrucksensor im Emulator einrichten
410
8.4.2 Jetpack Biometric
412
8.5 Zusammenfassung
415
Teil IV Dateien und Datenbanken
417
9 Dateien lesen, schreiben und drucken
419
9.1 Grundlegende Dateioperationen
419
9.1.1 Dateien lesen und schreiben
420
9.1.2 Mit Verzeichnissen arbeiten
428
9.2 Externe Speichermedien
431
9.2.1 Mit externem Speicher arbeiten
431
9.2.2 Storage Manager
435
9.3 Drucken
439
9.3.1 Druckgrundlagen
439
9.3.2 Eigene Dokumenttypen drucken
443
9.4 Zusammenfassung
449
10 Datenbanken
451
10.1 Erste Schritte mit SQLite
451
10.1.1 Einstieg in SQLite
452
10.1.2 SQLite in Apps nutzen
455
10.2 Fortgeschrittene Operationen
460
10.2.1 Klickverlauf mit SELECT ermitteln
460
10.2.2 Daten mit UPDATE ändern und mit DELETE löschen
467
10.3 Implementierung eines eigenen Content Providers
469
10.3.1 Auf einen Content Provider zugreifen
470
10.3.2 Die Klasse »android.content.ContentProvider«
474
10.4 Zusammenfassung
480
Teil V Multimedia und Produktivität
481
11 Multimedia
483
11.1 Audio
483
11.1.1 Audio aufnehmen und abspielen
483
11.1.2 Effekte
492
11.2 Sprachverarbeitung
498
11.2.1 Sprachsynthese
498
11.2.2 Spracherkennung
504
11.3 Fotos und Video
508
11.3.1 Vorhandene Funktionen nutzen
508
11.3.2 Die eigene Kamera-App
517
11.3.3 Videos drehen
528
11.4 Zusammenfassung
533
12 Kontakte und Organizer
535
12.1 Kontakte
535
12.1.1 Emulator konfigurieren
535
12.1.2 Eine einfache Kontaktliste ausgeben
537
12.1.3 Weitere Kontaktdaten ausgeben
540
12.1.4 Geburtstage hinzufügen und aktualisieren
543
12.2 Kalender und Termine
547
12.2.1 Termine anlegen und auslesen
547
12.2.2 Alarme und Timer
550
12.2.3 Die Klasse »CalendarContract«
555
12.3 Zusammenfassung
557
Anhang
559
A Einführung in Kotlin
561
B Jetpack Compose
593
C Häufig benötigte Codebausteine
607
D Literaturverzeichnis
615
E Die Begleitmaterialien
617
Index
621