Alle Kapitel aufklappen
Alle Kapitel zuklappen
1 Android – eine offene, mobile Plattform
21
1.1.1 Open Handset Alliance
22
1.1.3 Evolution einer Plattform
23
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
2.1.1 Projekte anlegen
50
2.2 Benutzeroberfläche
61
2.2.4 Oberflächenbeschreibungen
68
2.3 Programmlogik und -ablauf
71
2.3.2 Benutzereingaben
75
2.3.3 Der letzte Schliff
77
3 Von der Idee zur Veröffentlichung
83
3.1 Konzept und Realisierung
83
3.1.3 Benutzeroberfläche
89
3.2 Vom Programm zum Produkt
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
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.2 Kommunikation zwischen Activities
135
4.2.3 Broadcast Receiver
140
4.3.2 Ein Fragment in eine Activity einbetten
148
4.3.3 Mehrspaltenlayouts
153
4.4.1 Normale und gefährliche Berechtigungen
161
4.4.2 Tipps und Tricks zu Berechtigungen
166
4.5.1 Jetpack Navigation
169
4.5.2 Die Klasse »BottomNavigationView«
176
5 Benutzeroberflächen
183
5.1 Views und ViewGroups
183
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.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.4 Trennung von Oberfläche und Logik
246
5.4.1 Bedienelemente ohne »findViewById()«
246
5.4.2 Android Architecture Components
250
5.5.1 Das DayNight-Theme
257
5.5.2 Dark Mode in eigenen Themes
261
6.1 Leichtgewichtige Nebenläufigkeit
264
6.1.2 Der Main- oder UI-Thread
269
6.2.1 Gestartete Services
279
6.2.2 Gebundene Services
286
6.3 Regelmäßige Arbeiten
298
6.4 Mehrere Apps gleichzeitig nutzen
306
6.4.1 Zwei-App-Darstellung
306
6.4.2 Beliebig positionierbare Fenster
311
Teil III Gerätefunktionen nutzen
313
7 Telefonieren und surfen
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.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
8 Sensoren, GPS und Bluetooth
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.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
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.1 Druckgrundlagen
439
9.3.2 Eigene Dokumenttypen drucken
443
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
Teil V Multimedia und Produktivität
481
11.1.1 Audio aufnehmen und abspielen
483
11.2 Sprachverarbeitung
498
11.2.1 Sprachsynthese
498
11.2.2 Spracherkennung
504
11.3.1 Vorhandene Funktionen nutzen
508
11.3.2 Die eigene Kamera-App
517
12 Kontakte und Organizer
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
A Einführung in Kotlin
561
C Häufig benötigte Codebausteine
607
D Literaturverzeichnis
615
E Die Begleitmaterialien
617