Reto Meier, Entwickler und Führungskraft bei Google, verrät Ihnen in diesem Buch seine vielversprechendsten Techniken und Erfolgsrezepte. Sie erfahren, wie Sie die neuesten Features von Android am besten einsetzen und wie Sie damit schnell und sicher robuste und überzeugende Apps entwickeln. Anhand zahlreicher Beispielprojekte erhalten Sie einen tiefen Einblick in die aktuelle Android-Plattform. Die Übungen beginnen einfach, mit allmählich wachsendem Schwierigkeitsgrad.
Der Download für die Beispieldateien ist umgezogen, Sie finden ihn nun hier:
https://www.wiley.com/en-us/Professional+Android%2C+4th+Edition-p-9781118949535
Reto Meier ist bei Google Leiter der Abteilung Scalable Developer Advocacy, Developer Relations. Zuvor war er verantwortlich für die Rekrutierung von Android-Entwicklern in Europa, im Mittleren Osten und in Afrika. Reto bevorzugt intuitive Anwendungen mit überzeugenden Benutzeroberflächen, die optimal auf die Geräte der User abgestimmt sind. Er hat einen eigenen Blog, einen eigenen YouTube-Kanal und über 42.000 Anhänger auf Twitter und 64.000 auf Google+.
Vorwort 19
1 Hallo Android 21
1.1 Android-Anwendungsentwicklung 21
1.2 Ein wenig Hintergrund 22
1.3 Das Android-Ökosystem 24
1.4 Vorinstallierte Android-Anwendungen 25
1.5 Android SDK-Features 26
1.6 Worauf läuft Android? 27
1.7 Warum für mobile Geräte entwickeln? 27
1.8 Warum für Android entwickeln? 28
1.9 Einführung in das Development Framework 28
2 Los gehts 35
2.1 Android-Apps entwickeln 36
2.2 Für Android entwickeln 37
2.3 Entwicklung für mobile und embedded Geräte 65
2.4 Android Entwicklungswerkzeuge 76
3 Application, Activitity und Fragment 89
3.1 Application, Activity und Fragment 89
3.2 Die Komponenten einer Android-Anwendung 90
3.3 Lebenszyklus, Priorität und Prozessstatus einer Android-Anwendung 91
3.4 Die Klasse Application 94
3.5 Android Activities näher betrachtet 94
3.6 Einführung in Fragmente 109
3.7 Erstellen einer Erdbebenanzeige-App 128
4 Definieren der Android Manifest- und Gradle-Build-Dateien und die Auslagerung von Ressourcen 139
4.1 Manifest, Build-Dateien und Ressourcen 139
4.2 Einführung in das Android Manifest 140
4.3 Gradle-Build konfigurieren 146
4.4 Ressourcen auslagern 154
5 Erstellen von Benutzeroberflächen 181
5.1 Grundlegendes Android Design 182
5.2 Dichteunabhängiges Design 183
5.3 Grundlagen der Android-Benutzeroberfläche 184
5.4 Einführung in Layouts 186
5.5 Die Android Widget Toolbox 199
5.6 Arbeiten mit Lists und Grids 200
5.7 Einführung in das Data-Binding 208
5.8 Eigene Views erzeugen 214
6 Intents und Broadcast-Empfänger 243
6.1 Verwendung von Intents und Broadcast-Receivern 244
6.2 Mit Intents Activities starten 245
6.3 Erstellen von Intent-Filtern für den Empfang 254
6.4 Einführung in Linkify 271
6.5 Intents für Broadcast-Events verwenden 274
6.6 Einführung in den Local-Broadcast-Manager 281
7 Internet-Ressourcen verwenden 285
7.1 Mit dem Internet verbinden 285
7.2 Internet-Ressourcen verbinden, herunterladen und parsen 286
7.3 Den Download-Manager verwenden 313
7.4 Akkuschonendes Herunterladen von Dateien 323
7.5 Einführung in Internet Services und Cloud Computing 325
8 Dateien, Speicher-Status und Benutzereinstellungen 327
8.1 Dateien, Zustände und Einstellungen speichern 328
8.2 Activity- und Fragment Instance-State mit den Lifecycle-Handlern sichern und wiederherstellen 328
8.3 Instanzstatus mit kopflosen Fragmenten und ViewModel beibehalten 331
8.4 SharedPreferences erstellen und speichern 336
8.5 SharedPreferences zurückholen 338
8.6 Einführung in den OnSharedPreferenceChangeListener 338
8.7 Auto-Backup von Anwendungsdateien und SharedPreferences konfigurieren 339
8.8 Preference-Benutzeroberflächen erstellen 341
8.9 Eine Preference-Activity für den EarthquakeMonitor anlegen 348
8.10 Statische Dateien als Ressourcen einbinden 356
8.11 Arbeiten mit dem Dateisystem 356
8.12 Freigeben von Dateien über FileProvider 364
8.13 Zugriff auf Dateien aus anderen Anwendungen über das Storage Access Framework 367
8.14 URI-basierte Berechtigungen verwenden 370
9 Datenbanken anlegen und verwenden 373
9.1 Einführung in die Speicherung strukturierter Daten in Android 374
9.2 Daten über die Room Persistence Library ablegen 374
9.3 Erdbeben mit einer Room-Datenbank ablegen 388
9.4 Arbeiten mit SQLite-Datenbanken 393
10 Content-Provider und Suchen 415
10.1 Einführung in die Content-Provider 416
10.2 Warum sollte ich Content-Provider verwenden? 416
10.3 Content-Provider anlegen 417
10.4 Zugriff auf Content-Provider mit Content-Resolvern 432
10.5 Systemeigene Android Content-Provider verwenden 445
11 Im Hintergrund arbeiten 491
11.1 Im Hintergrund arbeiten 492
11.2 Hintergrund-Threads einsetzen 493
11.3 Hintergrundjobs schedulen 501
11.4 Mit Notifications Benutzer benachrichtigen 521
11.5 Firebase Cloud-Messaging 542
11.6 Alarm 548
11.7 Services 550
12 Umsetzung der Android-Design-Philosophie 561
12.1 Die-Android-Design Philosophie 561
12.2 Gestalten für alle Bildschirmarten 562
12.3 Einführung in das Material-Design 578
12.4 Material-Design Bedienelemente 586
13 Moderne Android-Benutzerführung 599
13.1 Die moderne Android-Oberfläche 600
13.2 Konsistente, moderne Benutzeroberflächen mit AppCompat erstellen 600
13.3 Ein Menü und Aktionen zur App-Leise hinzufügen 603
13.4 Über die Standard-Anwendungsleiste hinausgehen 610
13.5 Verbesserung der App-Leiste des Erdbeben-Monitors 617
13.6 Navigationsmuster 619
13.7 Registerkarten zum Erdbeben-Monitor hinzufügen 635
13.8 Den richtigen Grad der Unterbrechung wählen 641
14 Erweiterte Anpassung der Benutzeroberfläche 647
14.1 Die Benutzerführung erweitern 648
14.2 Barrierefreiheit unterstützen 648
14.3 Android Text-to-Speech 650
14.4 Spracherkennung 653
14.5 Vibration kontrollieren 655
14.6 Den Vollbildschirm nutzen 656
14.7 Property-Animationen 658
14.8 Verbessern Sie Ihre Views 663
14.9 Zusammengesetzte Drawable Ressourcen 691
14.10 Kopieren, Einfügen und die Zwischenablage 695
15 Standort, Kontextsensitivität und Kartografie 697
15.1 Standorte, Karten und Kontextsensitivität zu Ihren Anwendungen hinzufügen 698
15.2 Einführung in die Google Play-Services 699
15.3 Gerätestandort über Google Location-Services suchen 703
15.4 Einstellen und Verwalten von Geofences 731
15.5 Verwendung der standortbasierten Dienste der Legacy-Plattform 735
15.6 Der Einsatz von Geocoder 746
15.7 Kartenbasierte Activities anlegen 753
15.8 Das Erdbeben-Beispiel kartieren 779
15.9 Kontextabhängigkeit hinzufügen 784
16 Hardware-Sensoren 795
16.1 Android-Sensoren 796
16.2 Testen von Sensoren mit dem Android Virtual Device und Emulator 815
16.3 Empfehlungen für die Arbeit mit Sensoren 815
16.4 Bewegung und Ausrichtung eines Geräts überwachen 817
16.5 Umgebungssensoren 838
16.6 Körpersensoren 844
16.7 Erkennung der Benutzeraktivitäten 848
17 Audio, Video und Verwendung der Kamera 851
17.1 Wiedergabe von Audio und Video und Verwendung der Kamera 852
17.2 Wiedergabe von Audio und Video 852
17.3 Media-Router und Cast Application Framework 871
17.4 Audio-Wiedergabe im Hintergrund 876
17.5 Audioaufnahmen mit dem Media Recorder 887
17.6 Die Fotokamera 890
17.7 Videos aufnehmen 901
17.8 Medien zum Media-Store hinzufügen 905
18 Kommunikation mit Bluetooth, NFC und Wi-Fi Peer-to-Peer 909
18.1 Vernetzung und Peer-to-Peer-Kommunikation 909
18.2 Datenübertragung über Bluetooth 910
18.3 Übertragung von Daten über Wi-Fi Peer-to-Peer 929
18.4 Near Field Communication 936
18.5 Android Beam 941
19 In den Startbildschirm eindringen 947
19.1 Den Startbildschirm anpassen 947
19.2 Startbildschirm-Widgets 948
19.3 Ein Erdbeben-Widget erzeugen 965
19.4 CollectionView Widgets 972
19.5 Live-Wallpaper erzeugen 989
19.6 App-Shortcuts erzeugen 994
20 Fortgeschrittene Android-Entwicklung 1001
20.1 Fortgeschrittenes Android 1002
20.2 Android paranoid 1002
20.3 Umgang mit unterschiedlicher Hard- und Softwareverfügbarkeit 1009
20.4 Optimierung der Oberflächen-Performance durch StrictMode 1014
20.5 Telefonie und SMS 1015
21 Anwendungen veröffentlichen, vertreiben und überwachen 1049
21.1 Vorbereitung der Veröffentlichung 1050
21.2 Vorbereitung des Release Support-Materials 1050
21.3 Aktualisieren von Anwendungsmetadaten in Ihrem Anwendungsmanifest 1052
21.4 Signieren von Produktions-Builds Ihrer Anwendung 1056
21.6 Vermarktung von Apps 1082
21.7 Anwendungsmarketing, Promotion und Vertriebsstrategien 1083
21.8 Firebase zur Überwachung Ihrer Anwendung verwenden 1086
Stichwortverzeichnis 1095