
Professionelle Android-App-Entwicklung
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
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
More details
Other editions
Additional editions

Person
Content
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 geht's 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
Kapitel 1
Hallo Android
- Hintergrund der Entwicklung mobiler Applikationen
- Was ist Android?
- Auf welchen Geräten Android läuft
- Warum Sie für mobile Geräte und Android entwickeln sollten
- Das Android SDK und Entwicklungs-Framework
1.1 Android-Anwendungsentwicklung
Ob Sie ein erfahrener Entwickler für mobile Geräte, ein Desktop- oder Web-Entwickler oder ein kompletter Programmieranfänger sind, Android stellt eine aufregende Möglichkeit dar, Anwendungen für ein Publikum von über zwei Milliarden Android-Gerätebenutzern zu schreiben.
Sie kennen wahrscheinlich schon Android, die am weitesten verbreitete Software für Mobiltelefone. Sollten Sie dagegen dieses Buch in der Hoffnung anschaffen, dass es ihnen hilft, eine unaufhaltsame Armee von emotionslosen Roboter-Kriegern zu schaffen, die dem unerbittlichen Wunsch folgen, die Erde von der Geißel der Menschheit zu reinigen, sollten Sie den Kauf dieses Buch (und Ihre Lebensziele) überdenken.
Bei der Vorstellung von Android im Jahre 2007 beschrieb Andy Rubin es mit folgenden Worten:
»Die erste wirklich offene und umfassende Plattform für mobile Geräte. Es umfasst ein Betriebssystem, eine Benutzeroberfläche und Anwendungen - allesamt Software für den Betrieb eines Mobiltelefons, jedoch ohne die proprietären Hindernisse, die die mobile Innovation behindert haben.«
Where's My Gphone? (http://googleblog.blogspot.com/2007/11/wheres-my-gphone.html)
Seitdem hat sich Android über Mobiltelefone hinaus entwickelt und bietet eine Entwicklungsplattform für eine immer breitere Palette von Hardware wie Tablets, Fernseher, Uhren, Autos und das Internet of Things (IoT).
Android ist ein Open-Source-Software-Stack, der ein Betriebssystem, Middleware und wichtige Anwendungen für mobile und eingebettete Geräte enthält.
Entscheidend für uns als Entwickler ist, dass es auch eine Vielzahl von Bibliotheken enthält, die es ermöglichen, Anwendungen zu schreiben, die das Aussehen, das Gefühl und die Funktion der Android-Geräte prägen, auf denen sie laufen.
In Android werden System-, Bundle- und alle Anwendungen von Drittanbietern mit den gleichen APIs geschrieben und von der gleichen Laufzeitumgebung ausgeführt. Diese APIs bieten Hardwarezugriff, Videoaufzeichnung, standortbasierte Dienste, Unterstützung für Hintergrunddienste, Karten, Benachrichtigungen, Sensoren, relationale Datenbanken, Kommunikation zwischen Anwendungen, Bluetooth, NFC sowie 2D- und 3D-Grafik.
Dieses Buch beschreibt, wie Sie diese APIs verwenden, um Ihre eigenen Android-Anwendungen zu erstellen. In diesem Kapitel lernen Sie einige Richtlinien für die Entwicklung auf mobiler und eingebetteter Hardware kennen und lernen einige der Plattformfunktionen kennen, die Android-Entwicklern zur Verfügung stehen.
Android verfügt über leistungsfähige APIs, ein riesiges und vielfältiges Ökosystem von Benutzern, exzellente Dokumentation, eine blühende Entwickler-Community und erfordert keine Kosten für Entwicklung oder Vertrieb. Da das Ökosystem der Android-Geräte ständig wächst, haben Sie die Möglichkeit, innovative Anwendungen für Benutzer zu erstellen, unabhängig von Ihrer Entwicklungserfahrung.
1.2 Ein wenig Hintergrund
In den Tagen vor Instagram, Snapchat und Pokémon Go, als Google noch ein Zwinkern in den Augen seiner Gründer war und Dinosaurier die Erde durchstreiften, waren Mobiltelefone nur so kleine, tragbare Telefone, die in eine Aktentasche passen und über Batterien verfügen, die bis zu mehreren Stunden halten können. Sie boten jedoch die Freiheit, Anrufe zu tätigen, ohne physisch mit dem Festnetz verbunden zu sein.
In den Jahren seit der Markteinführung des ersten Android-Geräts sind Smartphones allgegenwärtig und unverzichtbar geworden. Die Weiterentwicklung der Hardware hat die Geräte leistungsfähiger gemacht, mit größeren, helleren Bildschirmen und fortschrittlicher Hardware wie Beschleunigungssensoren, Fingerabdruckscannern und ultrahochauflösenden Kameras.
Dieselben Fortschritte haben in jüngster Zeit zu einer starken Zunahme zusätzlicher Formfaktoren für Android-Geräte geführt, darunter eine Vielzahl von Smartphones, Tablets, Uhren und Fernsehgeräten.
Diese Hardware-Innovationen bieten einen fruchtbaren Boden für die Software-Entwicklung und bieten viele Möglichkeiten, innovative neue Anwendungen zu schaffen.
1.2.1 Die nicht allzu ferne Vergangenheit
In den frühen Tagen der Entwicklung nativer Telefonanwendungen mussten Entwickler, die im Allgemeinen in Low-Level C oder C++ programmierten, die spezifische Hardware verstehen, für die sie programmiert haben, typischerweise ein einzelnes Gerät oder möglicherweise eine Reihe von Geräten eines einzigen Herstellers. Die Komplexität dieses Ansatzes führte dazu, dass die Anwendungen, die für diese Geräte geschrieben wurden, oft hinter ihren Hardware-Gegenstücken zurückblieben. Mit fortschreitender Hardwaretechnologie und mobilem Internetzugang ist dieser geschlossene Ansatz veraltet.
Der nächste bedeutende Fortschritt in der Entwicklung von Mobiltelefonanwendungen war die Einführung von Java-gehosteten MIDlets. MIDlets wurden auf einer Java Virtual Machine (JVM) ausgeführt, einem Prozess, der die zugrunde liegende Hardware abstrahiert und es Entwicklern ermöglicht, Anwendungen zu erstellen, die auf vielen Geräten laufen, die die Java-Laufzeitumgebung unterstützen.
Leider führte diese Bequemlichkeit dazu, dass der Zugriff auf die Gerätehardware stärker eingeschränkt wurde. Ebenso galt es als normal, dass Anwendungen von Drittanbietern andere Hardwarezugriffs- und Ausführungsrechte erhalten als solche, die von den Telefonherstellern an native Anwendungen vergeben wurden, wobei MIDlets oft nur wenige von beiden erhalten.
Die Einführung von Java MIDlets erweiterte die Zielgruppe der Entwickler, aber das Fehlen von Low-Level-Hardwarezugriff und Sandbox-Ausführung bedeutete, dass die meisten mobilen Anwendungen reguläre Desktop-Programme oder Websites waren, die für die Darstellung auf einem kleineren Bildschirm konzipiert waren, und nicht die Vorteile der inhärenten Mobilität der Handheld-Plattform nutzten.
1.2.2 Leben in der Zukunft
Bei seiner Einführung war Android Teil einer neuen Welle moderner mobiler Betriebssysteme, die speziell zur Unterstützung der Anwendungsentwicklung auf immer leistungsfähigerer mobiler Hardware entwickelt wurden.
Android bietet eine offene Entwicklungsplattform, die auf einem Open-Source-Linux-Kernel basiert. Der Hardwarezugriff steht allen Anwendungen über eine Reihe von APIBibliotheken zur Verfügung, und die Interaktion mit den Anwendungen wird bei sorgfältiger Kontrolle vollständig unterstützt.
Unter Android sind alle Anwendungen gleichberechtigt. Anwendungen von Drittanbietern und systemeigene Android-Anwendungen werden mit den gleichen APIs geschrieben und in der gleichen Laufzeitumgebung ausgeführt. Benutzer können die meisten Systemanwendungen durch eine Alternative eines Drittanbieters ersetzen; sogar das Telefonprogramm und der Startbildschirm können ersetzt werden.
1.3 Das Android-Ökosystem
Das Android-Ökosystem besteht aus einer Kombination von drei Komponenten:
- Ein freies, quelloffenes Betriebssystem für Embedded-Geräte
- Eine Open-Source-Entwicklungsplattform für die Erstellung von Anwendungen
- Geräte, auf denen das Android-Betriebssystem läuft (und die dafür erstellten Anwendungen)
Genauer gesagt, besteht Android aus mehreren notwendigen und abhängigen Teilen, einschließlich der folgenden:
- Ein Compatibility Definition Document (CDD) und eine Compatibility Test Suite (CTS), die die Fähigkeiten beschreiben, die ein Gerät benötigt, um den Android-Software-Stack zu unterstützen.
- Ein Linux-Betriebssystemkern, der eine Low-Level-Schnittstelle mit Hardware, Speicherverwaltung und Prozesssteuerung bietet, die für mobile und Embedded-Geräte optimiert ist.
- Open-Source-Bibliotheken für die Anwendungsentwicklung, einschließlich SQLite, WebKit, OpenGL und eines Medienmanagers.
- Ein Laufzeitsystem, das zum Ausführen und Bereitstellen von Android-Anwendungen verwendet wird, einschließlich der Android Run Time (ART) und der Kernbibliotheken, die Android-spezifische Funktionen bereitstellen. Das Laufzeitsystem ist so ausgelegt, dass es klein und effizient für den Einsatz auf kleinen Geräten läuft.
- Ein Anwendungs-Framework, das Systemdienste der Anwendungsschicht, einschließlich Window Manager und Location Manager, Datenbanken, Telefonie und Sensoren, unabhängig voneinander zur Verfügung stellt.
- Ein Framework für die Benutzeroberfläche, das zum Bereitstellen und Starten von Apps verwendet wird.
- Eine Reihe von vorinstallierten Kern-Apps.
- Ein Software Development Kit (SDK) zur Erstellung von Apps, einschließlich der zugehörigen Tools, IDE, Beispielcode und...
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.