Rheinwerk Computing < openbook >

 
Inhaltsverzeichnis
Vorwort
Teil I Grundlagen
1 Android – eine offene, mobile Plattform
2 Hallo Android!
3 Von der Idee zur Veröffentlichung
Teil II Elementare Anwendungsbausteine
4 Wichtige Grundbausteine von Apps
5 Benutzeroberflächen
6 Multitasking
Teil III Gerätefunktionen nutzen
7 Telefonieren und surfen
8 Sensoren, GPS und Bluetooth
Teil IV Dateien und Datenbanken
9 Dateien lesen, schreiben und drucken
10 Datenbanken
Teil V Multimedia und Produktivität
11 Multimedia
12 Kontakte und Organizer
A Einführung in Kotlin
B Jetpack Compose
C Häufig benötigte Codebausteine
D Literaturverzeichnis
E Die Begleitmaterialien
Stichwortverzeichnis

Ihre Meinung?
Spacer
<< zurück
Android 11 von Thomas Künneth
Das Praxisbuch für App-Entwickler
Buch: Android 11

Android 11
Pfeil 1 Android – eine offene, mobile Plattform
Pfeil 1.1 Entstehung
Pfeil 1.1.1 Open Handset Alliance
Pfeil 1.1.2 Android, Inc.
Pfeil 1.1.3 Evolution einer Plattform
Pfeil 1.2 Systemarchitektur
Pfeil 1.2.1 Überblick
Pfeil 1.2.2 Application Framework
Pfeil 1.2.3 AndroidX und Jetpack
Pfeil 1.3 Entwicklungswerkzeuge
Pfeil 1.3.1 Android Studio und Android SDK installieren
Pfeil 1.3.2 Die ersten Schritte mit Android Studio
Pfeil 1.3.3 Das erste Projekt
Pfeil 1.4 Zusammenfassung
 
Zum Seitenanfang

1    Android – eine offene, mobile Plattform Zur vorigen ÜberschriftZur nächsten Überschrift

Was genau ist Android eigentlich? Wie ist die Plattform entstanden? Und aus welchen Bausteinen und Schichten besteht sie? Dieses Kapitel macht Sie mit wichtigen Grundlagen vertraut.

Die Anwendungsentwicklung für Android macht – Sie werden mir nach der Lektüre dieses Buches sicherlich zustimmen – großen Spaß. Zum einen, weil diese Plattform unglaublich viele Möglichkeiten bietet. Unzählige Programmierschnittstellen und Funktionen warten darauf, erkundet und genutzt zu werden. Zum anderen ist die Entwicklungsumgebung, also der Werkzeugkasten des Programmierers, äußerst komfortabel. Routinetätigkeiten gehen deshalb reibungslos von der Hand.

Allerdings müssen Sie als Entwickler die angebotenen Möglichkeiten auch zu nutzen wissen. Dies betrifft nicht nur die Bedienung der Werkzeuge, sondern auch das Wissen um die Zusammenhänge zwischen den einzelnen Bausteinen und Schichten der Plattform. In diesem Kapitel zeige ich Ihnen deshalb unter anderem, wie Android aufgebaut ist und aus welchen Funktionsgruppen und Schichten das System besteht. Zunächst möchte ich Ihnen kurz die Entstehung der Plattform erläutern.

 
Zum Seitenanfang

1.1    Entstehung Zur vorigen ÜberschriftZur nächsten Überschrift

Am 12. November 2007 kündigte Google die Verfügbarkeit einer Vorschauversion des Android Software Development Kits (SDK) an.[ 1 ](http://android-developers.blogspot.com/2007/11/posted-by-jason-chen-android-advocate.html) Entwickler konnten damit zum ersten Mal Programme für eine bis dahin völlig unbekannte Plattform schreiben und in einem Emulator ausprobieren. Das erste Gerät, das durch T-Mobile vertriebene G1, stand Kunden in Deutschland allerdings erst über ein Jahr später zur Verfügung. In der Zwischenzeit hatte Google das System zur ersten halbwegs endanwendertauglichen Version 1.1 weiterentwickelt.

 
Zum Seitenanfang

1.1.1    Open Handset Alliance Zur vorigen ÜberschriftZur nächsten Überschrift

Eine Woche vor der Veröffentlichung der Android-SDK-Vorschau war die Open Handset Alliance (OHA) erstmals an die Öffentlichkeit getreten. Dieses von Google angeführte Konsortium bestand damals aus 34 Firmen, unter anderem Halbleiter- und Mobiltelefonherstellern, Netzbetreibern und Softwarefirmen. Die Allianz hatte ihre Absicht verkündet, mit Android die erste wirklich offene Plattform für mobile Geräte zu schaffen. Die in der Pressemitteilung vom 5. November 2007[ 2 ](www.openhandsetalliance.com/press_110507.html) formulierten Ziele waren unter anderem:

  • eine deutliche Verbesserung der Benutzerfreundlichkeit und des Benutzererlebnisses von mobilen Geräten und Diensten

  • die kostengünstigere Entwicklung und Verteilung innovativer Produkte

  • eine schnellere Markteinführung von Produkten und Diensten

Nach Ansicht der OHA ließ sich dies am besten durch eine auf Offenheit und Flexibilität gründende Zusammenarbeit von Entwicklern, Herstellern und Betreibern erreichen, deshalb wurden praktisch alle Teile des Android-Softwarestapels als Open Source veröffentlicht. Zudem hatten Gerätebauer und Netzanbieter von Anfang an die Möglichkeit, die Plattform anzupassen und zu erweitern. Auch Entwickler profitieren von diesem Ansatz, weil sie Alternativen zu Kernkomponenten, beispielsweise zum mitgelieferten Webbrowser, anbieten können. Letzteres war übrigens auf dem iPhone lange Zeit nicht möglich.

Während die Anzahl der Android-basierten Geräte 2009 noch recht überschaubar war, kündigten ein Jahr später zahlreiche Hersteller entsprechende Produkte an und lieferten diese auch aus. Die kontinuierlich wachsende Bedeutung der Plattform spiegelt sich auch in der Mitgliederzahl der OHA wider: Inzwischen sind es weit über 80. In den Folgejahren stieg die Anzahl der auf den Markt gebrachten Smartphones und Tablets sprunghaft an. Mittlerweile dominiert Android den Markt.

 
Zum Seitenanfang

1.1.2    Android, Inc. Zur vorigen ÜberschriftZur nächsten Überschrift

Die Pressemitteilung der OHA beendete zunächst Spekulationen der Medien, Google könne die Einführung eines eigenen Mobiltelefons planen. Dass Google am Markt für mobile Kommunikation stark interessiert war, war zuvor schon häufiger thematisiert worden.

Im Juli 2005 hatte Google ein kleines Start-up-Unternehmen namens Android, Inc. mit Sitz im kalifornischen Palo Alto übernommen. Außer den Namen einiger Mitarbeiter war zu diesem Zeitpunkt sehr wenig über die Firma bekannt; sie hatte stets im Verborgenen gearbeitet. Die Vermutung, man entwickle ein Betriebssystem für mobile Geräte, wurde auch nach dem Kauf nicht kommentiert. Die offizielle Sprachregelung war, dass Android, Inc. der talentierten Ingenieure und der entwickelten Technologie wegen übernommen worden sei.

In der Tat brachten die Silicon-Valley-Veteranen Andy Rubin, Richard Miner, Nick Sears, Chris White und ihre Kollegen sehr viel Erfahrung mit. Rubin beispielsweise hatte schon in den 1990ern an Magic Cap, einem Betriebssystem für mobile Geräte mit grafischer Benutzeroberfläche, gearbeitet. Auch seine Firma Danger, Inc. produzierte mobile Geräte. Das erstmals 2002 erschienene Hiptop war ein Telefon mit Organizer-Fähigkeiten.

Nach dem Kauf von Android, Inc. arbeitete man bei Google in aller Stille weiter – woran, ist seit der Pressemitteilung der OHA bekannt.

 
Zum Seitenanfang

1.1.3    Evolution einer Plattform Zur vorigen ÜberschriftZur nächsten Überschrift

Zwischen der Ende 2007 veröffentlichten Vorschau des Android SDK und der im G1 eingesetzten Version lagen noch einmal viele Monate Entwicklungsarbeit. Google war bewusst frühzeitig auf interessierte Programmierer zugegangen, um deren Rückmeldungen in die Plattform einarbeiten zu können. Und natürlich, um Appetit auf Android zu machen. Zudem hatte man 2008 zum ersten Mal einen Entwicklerwettbewerb gestartet und ein hohes Preisgeld ausgelobt. Google nutzte den Kontakt zu den Finalisten des Wettbewerbs, um weitere Fehler im Android SDK zu beheben und um die Programmierschnittstellen zu verfeinern. Ein direkter Vergleich der ersten Android-Version mit dem damals verfügbaren iPhone-Betriebssystem fiel zugunsten des Apple-Produkts aus. Dies ist nicht verwunderlich, hatte der kalifornische Computerbauer sein edles Smartphone doch schon viele Monate vorher veröffentlicht und daher ausreichend Zeit für die Detailpflege gehabt.

Seitdem ist viel Zeit vergangen. Praktisch alle einstigen Branchengrößen haben die Segel gestrichen, wurden aufgekauft oder in immer kleiner werdende Nischen gedrängt. Google arbeitet nach wie vor mit beachtlichem Tempo an der Plattform. Dabei werden regelmäßig Fehler beseitigt, die mitgelieferten Anwendungen verbessert und unzählige neue Funktionen eingeführt. Darüber hinaus wurden mit Wear OS by Google (ursprünglich Android Wear), Android Auto und dessen Nachfolger Android Automotive, sowie Android TV völlig neue Einsatzbereiche für das Betriebssystem erschlossen.

In der Vergangenheit lagen zwischen zwei Releases oft nur wenige Monate Entwicklungszeit. Mittlerweile erscheint im Durchschnitt einmal pro Jahr eine neue Hauptversion. Während Endanwender üblicherweise die Versionsnummer interessiert, ist für Sie als Entwickler der sogenannte API-Level wichtig: eine Zahl, die bei jeder Änderung an den Programmierschnittstellen hochgezählt wird. Die erste öffentliche Android-Version hatte den API-Level 1. Jede Android-Version hat einen ganz bestimmten, eindeutigen API-Level. Durch Abfragen des API-Levels kann Ihre App prüfen, ob ein bestimmtes Feature auf dem ausführenden Gerät zur Verfügung steht.

Frühe Versionen

Das erste große Update Cupcake (Android 1.5) führte unter anderem das sogenannte Input Method Framework ein und ermöglichte damit erstmals Geräte ohne Hardwaretastatur. Ferner fand schon zu diesem Zeitpunkt eine Spracherkennungsfunktion ihren Weg auf die Plattform. Donut (Android 1.6) unterstützte Geräte mit unterschiedlichen Anzeigegrößen und Auflösungen. Auch erweiterte Google die Plattform um eine Sprachsynthesesoftware für Deutsch, Italienisch, Englisch, Französisch und Spanisch. Obendrein hatten Entwickler erstmals Zugriff auf eine Gestenerkennung und konnten die systemweite Schnellsuche um Inhalte ihrer Anwendungen erweitern.

Unter dem Namen Eclair wurden die Versionen 2.0, 2.0.1 und 2.1 zusammengefasst. Mit Android 2.0 hielt eine vollständig neue Programmierschnittstelle für den Zugriff auf Kontakt- und Kontendaten Einzug. Gleichzeitig wurden die bisherigen Klassen für veraltet erklärt. Für den Anwender entstand der große Vorteil, sein Mobiltelefon auch mit anderen Diensten, beispielsweise Facebook, synchronisieren zu können. Android 2.1 führte die bei Endanwendern eine Zeit lang sehr beliebten Live Wallpaper ein. Mittlerweile hat die Begeisterung darüber deutlich nachgelassen, vermutlich weil solche animierten Hintergründe bei unachtsamer Programmierung zu regelrechten Stromfressern werden konnten.

Mit Froyo (Version 2.2) bekam Android eine zentrale Schnittstelle für das Sichern und Wiederherstellen von Anwendungsdaten. Sie war zu Beginn recht aufwendig zu benutzen, doch mittlerweile müssen Sie als Entwickler kaum noch etwas dafür tun (und was, das beschreibe ich in Kapitel 9, »Dateien lesen, schreiben und drucken«). Gingerbread (Android 2.3) enthält einen vollständigen SIP-Stapel (Session Initiation Protocol) und bindet VoIP-gestützte Internettelefonie in die Plattform ein. Dazu kam ein Download-Manager, den alle Apps nutzen können. Außerdem wurden die Kamera-Unterstützung erweitert und die Geschwindigkeit des Systems verbessert.

Einmal Tablet und wieder zurück

Honeycomb (Android 3.0, 3.1 und 3.2) wurde speziell für Tablets entwickelt. Google hat die Plattform hierzu um zahlreiche Konzepte erweitert, beispielsweise ermöglichen Fragmente die Wiederverwendung von Teilfunktionen einer Activity (Activities gehören zu den zentralen Bausteinen von Apps). Die Action Bar löste nicht nur die bislang bekannten klassischen Menüs ab, sondern führte auch eine einheitliche Navigation innerhalb von Anwendungen ein. Außerdem entfiel mit Honeycomb die Notwendigkeit der klassischen Hardware-Schaltflächen: Die System Bar kombinierte virtuelle Knöpfe mit Benachrichtigungen.

Ice Cream Sandwich (Version 4.0) führte die zwei seit Android 3 existierenden Entwicklungslinien für Smartphones und Tablets wieder zusammen. Dadurch profitierten ab jetzt alle Geräteklassen von den weiter oben angesprochenen neuen Funktionen. Die Plattform sowie die mitgelieferten Anwendungen wurden weiter poliert und noch bedienungsfreundlicher gestaltet. Außerdem wurde endlich der Zugriff auf Kalendereinträge möglich.

Auf seiner Entwicklerkonferenz I/O 2012 stellte Google die Android-Version 4.1 vor. Das Hauptaugenmerk dieses Jelly Bean getauften Releases galt der Steigerung der Geschwindigkeit. Durch eine neue Sprachsuche machte Google Siri, dem Speech Interpretation and Recognition Interface von Apple, Konkurrenz: Google Now sollte dem Nutzer situationsbezogene Information bieten. Die Technologie wurde in den darauffolgenden Jahren zu dem Google Assistant weiterentwickelt.

Auch die Systemversionen 4.2 und 4.3 heißen Jelly Bean. Version 4.2 bot einen Mehrbenutzermodus für Tablets, eine Art Bildschirmschoner namens Daydream (wurde mittlerweile in »Bildschirmschoner« umbenannt) und einen Panoramamodus, bei Version 4.3 ging es um Optimierungen »unter der Haube« und um die Aktualisierung verwendeter Technologien und Protokolle. Android 4.4 (KitKat) konnte den Ressourcenverbrauch des Systems drastisch reduzieren. Googles Ziel war die Verbesserung der Lauffähigkeit auf Geräten im unteren Leistungsspektrum, vor allem bei wenig Arbeitsspeicher. Darüber hinaus hielten ein neuer Vollbildmodus, eine Schnittstelle für den Zugriff auf Cloud-Speicherdienste sowie eine systemweite Druckfunktion Einzug.

Android-Versionen 5 bis 10

Android 5 (Lollipop, API-Level 21) war ein äußerst ambitioniertes Release. Die nach wie vor gültige Designsprache Material Design setzt auf eine Papier-und-Tinte-Metapher, kräftige Farben und schöne Typografie. Das System wurde 64-Bit-fähig und funktionierte auch für Geräte mit mehr als 4 GB Arbeitsspeicher. Die neue Android Runtime (ART) übersetzte Java-Anwendungen schon während der Installation in Maschinensprache, was in vielen Situationen zu besserer Performance führte und zudem die Nutzung vieler moderner Konzepte des Linux-Kerns ermöglichte. Die im März 2015 veröffentlichte Version 5.1 (API-Level 22) unterstützte endlich einen zweiten Slot für SIM-Karten. Bis dahin hatten die Gerätehersteller selbst für die Integration einer zweiten SIM-Karte sorgen müssen. Ebenfalls neu war die Sprachübertragung in verbesserter Qualität (HD Voice), sofern ein Mobiltelefon diese vorsah. Ein verbesserter Geräteschutz, Stabilitätsverbesserungen sowie die Verwaltung von Bluetooth- und WLAN-Geräten über die Quick Settings rundeten dieses Service-Release ab.

Android 6 (Marshmallow) brachte ein neues Berechtigungssystem. Es erlaubte Benutzern, Apps den Zugriff auf bestimmte Ressourcen nach Belieben zu gewähren und wieder zu entziehen. Ausführliche Hinweise hierzu finden Sie in Kapitel 4, »Wichtige Grundbausteine von Apps«. Neben der nativen Unterstützung von Fingerabdruckscannern kamen unter anderem der Standby-Modus Doze und Google Now on Tap sowie die Nutzbarkeit von SD-Karten als interner Speicher hinzu.

Android 7 (Nougat) führte unter anderem die gleichzeitige Benutzung von zwei Apps auf dem Bildschirm ein, ferner ein überarbeitetes Benachrichtigungscenter, zahlreiche Java-8-Features, eine zusätzliche 3D-Grafik-Bibliothek sowie die Unterstützung von Virtual-Reality-Anwendungen. Android 7.1 brachte Unterstützung für runde Icons sowie App Shortcuts.

Mit Android 8 Oreo (API-Level 26) änderte Google den Umgang mit Hintergrund-Apps. Ziel war, dass sich die Plattform flüssiger anfühlt und weniger Strom verbraucht. Was Sie als Entwickler beachten müssen, damit sich Ihre App vorbildlich verhält, erkläre ich in Kapitel 6, »Multitasking«. Benachrichtigungskanäle sollen dem Benutzer helfen, sich besser in der Flut an Benachrichtigungen zurechtzufinden. Den gekonnten Umgang mit Notifications zeige ich Ihnen in Kapitel 5, »Benutzeroberflächen«. Android 8.1 (API-Level 27) enthielt zusätzlich Programmierschnittstellen für neuronale Netze und unterstützte Shared Memory.

Pie (API-Level 28) hatte sich zum Ziel gesetzt, sinnvolle Einsatzgebiete für maschinelles Lernen zu erschließen. Die beiden Funktionen Automatische Helligkeit und Intelligenter Akku sollten mithilfe von künstlicher Intelligenz zu einer längeren Nutzungsdauer des Geräts führen. Aus Entwicklersicht interessant waren die Unterstützung von Aussparungen im Bildschirm (Display Cutout) sowie ein einheitlicher Dialog für die Authentifizierung anhand biometrischer Merkmale.

Mit Android 10 (API-Level 29) verabschiedete sich Google von der Tradition, Plattform-Versionen den Namen einer Süßspeise zu geben. Project Mainline ermöglichte die Aktualisierung von wichtigen Systemkomponenten über den Play Store. Für Programmierer sehr interessant war die Unterstützung von faltbaren Geräten sowie ein systemweiter Dunkelmodus. Wie Sie diesen in Ihren Apps verwenden, zeige ich in Kapitel 5, »Benutzeroberflächen«.

Android 11

Unter anderem erweitert Android 11 (API-Level 30) das Berechtigungssystem um die Möglichkeit, den Zugriff auf eine Funktion nur einmal zu erlauben. Die mit Android 10 als Vorschau eingeführten Chat Bubbles gelten nun als fertig. Auch der Scoped Storage (ebenfalls seit Android 10 verfügbar) wird nun obligatorisch. Zudem gibt es bessere Unterstützung für sogenannte Waterfall Displays (die Anzeigen reichen bis ganz an den Rand), Sensoren zum Ermitteln des Neigungswinkels der Anzeigen von faltbaren Geräten sowie Verbesserungen der Privatsphäre.

Googles vor allem in der Anfangszeit beängstigend hohes Entwicklungstempo hat aus Android eine stabile und anwenderfreundliche Plattform gemacht. Ein Kernproblem konnte allerdings lange Zeit nicht zufriedenstellend gelöst werden: Es dauerte immer mehrere Monate, bis Gerätehersteller ihren Kunden aktuelle Android-Versionen zur Verfügung stellten. Nicht wenige Modelle wurden nie aktualisiert. Das ab Android 8 enthaltene Project Treble sollte dieses Problem lösen. Es trennte die sogenannte Vendor Implementation – hardwarespezifische Software, die direkt von den SoC(System on a chip)-Herstellern geliefert wird – von Betriebssystem und Framework durch eine neue, standardisierte Herstellerschnittstelle ab. Früher mussten Hersteller bei einem Android-Update auch diese unterste Schicht mitliefern, da sie fest mit Android verwoben war. Dies war nun nicht mehr nötig. Selbst wenn es von den SoC-Produzenten keine neue Software gab, konnte auf solchen Geräten dennoch eine neue Android-Version aufgespielt werden. Sie setzte einfach auf dem vorhandenen Vendor Interface auf. Damit das klappte, musste ein Gerät freilich einmal Android 8 mit Project Treble erhalten haben. Gleiches gilt für Project Mainline in Android 10.

Auch wenn mehr Geräte in den Genuss neuer Android-Versionen kommen als früher, lohnt es sich, regelmäßig auf der Seite https://developer.android.com/about/dashboards/index.html den aktuellen Verbreitungsgrad der verschiedenen Android-Versionen zu prüfen. Denn erst ab einer bestimmten Anzahl von potenziellen Nutzern lohnt sich die Verwendung neuer Programmierschnittstellen und Funktionen. Google drängt Entwickler deshalb zur Nutzung der Komponentensammlung Jetpack. Was es damit auf sich hat, erfahren Sie im folgenden Abschnitt.

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
Zur Rheinwerk-Konferenz für Kotlin
 Buchempfehlungen
Zum Rheinwerk-Shop: Kotlin

Kotlin


Zum Rheinwerk-Shop: Praxisbuch Usability und UX

Praxisbuch Usability und UX


Zum Rheinwerk-Shop: Flutter und Dart

Flutter und Dart


Zum Rheinwerk-Shop: App-Design

App-Design


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2023
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern