Features von Oreo
Dieser Artikel bietet Unterstützung beim Einstieg in die Verwendung von Xamarin.Android zur Entwicklung von Apps für die neueste Android-Version.
Android 8.0 Oreo ist die neueste Version von Android, die in Google erhältlich ist. Android Oreo bietet zahlreiche neue Features, die für Xamarin.Android-Entwickler interessant sind. Zu diesen Features gehören Benachrichtigungskanäle, Infobadges, benutzerdefinierte Schriftarten in XML, herunterladbare Schriftarten, AutoAusfüllen und ein Bild-in-Bild-Feature (Picture In Picture, PIP). Android Oreo umfasst neue APIs für diese neuen Funktionalitäten, und diese APIs stehen für Xamarin.Android-Apps zur Verfügung, wenn Sie Xamarin.Android 8.0 verwenden.
Dieser Artikel soll Ihnen den Einstieg in die Entwicklung von Xamarin.Android-Apps für Android 8.0 Oreo erleichtern. Es wird erläutert, wie Sie die notwendigen Updates installieren, das SDK konfigurieren und einen Emulator (oder ein Gerät) zum Testen erstellen. Darüber hinaus erhalten Sie einen Überblick über die neuen Features in Android 8.0 Oreo, mit Links zu Beispiel-Apps, die die Verwendung von Android Oreo-Features in Xamarin.Android-Apps veranschaulichen.
Anforderungen
Um Android Oreo-Features in Xamarin-basierten Apps zu verwenden, müssen folgende Voraussetzungen erfüllt sein:
Visual Studio – Wenn Sie Windows verwenden, ist Version 15.5 oder höher von Visual Studio erforderlich. Bei Verwendung eines Mac wird Visual Studio für Mac 7.2.0 benötigt.
Xamarin.Android – Xamarin.Android 8.0 oder höher muss mit Visual Studio installiert und konfiguriert werden.
Android SDK – Android SDK 8.0 (API 26) oder höher muss über den Android SDK Manager installiert werden.
Erste Schritte
Um mit der Nutzung von Android Oreo mit Xamarin.Android zu beginnen, müssen Sie die neuesten Tools und SDK-Pakete herunterladen und installieren, bevor Sie ein Android Oreo-Projekt erstellen können:
Installieren Sie die aktuelle Version von Visual Studio.
Installieren Sie Android 8.0.0 (API 26) oder höhere Pakete und Tools über den SDK-Manager.
Erstellen Sie ein neues Xamarin.Android-Projekt für die Zielplattform Android Oreo (API-Ebene 26).
Konfigurieren Sie einen Emulator oder ein Gerät zum Testen von Android Oreo-Apps.
Jeder dieser Schritte wird in den folgenden Abschnitten erläutert:
Aktualisieren von Visual Studio und Xamarin.Android
Führen Sie zum Hinzufügen von Android Oreo-Unterstützung zu Visual Studio die folgenden Schritte aus:
Verwenden Sie für Visual Studio 2019 den SDK-Manager, um API-Ebene 26.0 oder höher zu installieren.
Bei Verwendung von Visual Studio 2017:
Führen Sie ein Update auf Visual Studio 2017, Version 15.7 oder höher durch (siehe Aktualisieren von Visual Studio 2017).
Verwenden Sie den SDK-Manager, um API-Ebene 26.0 oder höher zu installieren.
Weitere Informationen zur Xamarin-Unterstützung für Android Oreo finden Sie in den Versionshinweise zu Xamarin.Android 8.0.
Installieren des Android SDK
Um ein Projekt mit Xamarin.Android 8.0 zu erstellen, müssen Sie zunächst den Android-SDK-Manager für Xamarin verwenden, um die SDK-Plattform für Android 8.0 – Oreo oder höher zu installieren. Sie müssen außerdem Version 26.0 oder höher der Android SDK Tools installieren.
Starten Sie den SDK-Manager (klicken Sie in Visual Studio auf Tools > Android > SDK Manager).
Installieren Sie die Pakete für Android 8.0 – Oreo. Wenn Sie den Android SDK-Emulator verwenden, achten Sie darauf, die benötigten x86-Systemimages einzuschließen:
Installieren Sie Android SDK Tools 26.0.2 oder höher, Android SDK Platform-Tools 26.0.0 oder höher und Android SDK Build-Tools 26.0.0 (oder höher):
Starten eines Xamarin.Android-Projekts
Erstellen eines neuen Xamarin.Android-Projekts. Wenn Sie mit der Android-Entwicklung mit Xamarin noch nicht vertraut sind, finden Sie unter Hallo, Android Informationen zum Erstellen von Xamarin.Android-Projekten.
Wenn Sie ein Android-Projekt erstellen, müssen Sie die Versionseinstellungen für Android 8.0 oder höher konfigurieren. Wenn Sie Ihr Projekt beispielsweise auf Android 8.0 ausrichten, müssen Sie die Android-API-Zielebene Ihres Projekts auf Android 8.0 (API 26) festlegen. Es wird empfohlen, außerdem die Ebene für das Zielframework auf API 26 oder höher festzulegen. Weitere Informationen zum Konfigurieren von Android-API-Ebenen finden Sie unter Grundlegendes zu Android-API-Ebenen.
Konfigurieren eines Emulators oder Geräts
Wenn Sie nach der Installation der Android SDK Tools 26.0 oder höher versuchen, den standardmäßigen GUI-basierten AVD-Manager von Google zu starten, wird möglicherweise die folgende Fehlermeldung angezeigt. Darin werden Sie angewiesen, stattdessen das befehlszeilenbasierte AVD-Verwaltungstool avdmanager zu verwenden:
Diese Meldung wird angezeigt, weil Google keinen eigenständigen GUI-basierten AVD-Manager mehr bereitstellt, der API 26.0 und höher unterstützt. Für Android 8.0 Oreo müssen Sie entweder den Android-Emulator-Manager von Xamarin oder das Befehlszeilentool avdmanager
verwenden, um virtuelle Geräte für Android Oreo zu erstellen.
Informationen zur Verwendung des Android-Geräte-Managers zum Erstellen und Verwalten virtueller Geräte finden Sie unter Verwalten virtueller Geräte mit dem Android-Geräte-Manager. Folgen Sie den Schritten im nächsten Abschnitt, um virtuelle Geräte ohne den Android-Geräte-Manager zu erstellen.
Erstellen virtueller Geräte mit „avdmanager“
Führen Sie die folgenden Schritte aus, um mit avdmanager ein neues virtuelles Gerät zu erstellen:
Öffnen Sie ein Eingabeaufforderungsfenster, und legen Sie
JAVA_HOME
auf den Speicherort des Java SDK auf Ihrem Computer fest. Für eine typische Xamarin-Installation können Sie den folgenden Befehl verwenden:setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_131"
Fügen Sie
PATH
den Speicherort des Android SDK-Ordnersbin
hinzu. Für eine typische Xamarin-Installation können Sie den folgenden Befehl verwenden:setx PATH "%PATH%;C:\Program Files (x86)\Android\android-sdk\tools\bin"
Schließen Sie das Eingabeaufforderungsfenster, und öffnen Sie ein neues Eingabeaufforderungsfenster. Erstellen Sie mit dem Befehl avdmanager ein neues virtuelles Gerät. Um beispielsweise ein virtuelles Android-Gerät namens AVD-Oreo-8.0 mit dem x86-Systemimage für API-Ebene 26 zu erstellen, verwenden Sie den folgenden Befehl:
avdmanager create avd -n AVD-Oreo-8.0 -k "system-images;android-26;google_apis;x86"
Bei Anzeige der Frage Do you wish to create a custom hardware profile [no] (Möchten Sie ein benutzerdefiniertes Hardwareprofil erstellen?) können Sie no eingeben und das Standardhardwareprofil akzeptieren. Wenn Sie yes eingeben, zeigt avdmanager verschiedene Fragen in Bezug auf die Anpassung des Hardwareprofils an.
Nachdem Sie Ihr virtuelles Gerät über avdmanager erstellt haben, wird es in das Pulldownmenü für Geräte eingeschlossen:
Weitere Informationen zum Konfigurieren eines Android-Emulators zum Testen und Debuggen finden Sie unter Debuggen im Android-Emulator.
Wenn Sie ein physisches Gerät wie Nexus oder Pixel verwenden, können Sie Ihr Gerät entweder automatisch mithilfe von OTA-Updates (Over the Air) aktualisieren oder ein Systemimage herunterladen und Ihr Gerät direkt flashen. Weitere Informationen zum manuellen Aktualisieren Ihres Geräts auf Android Oreo finden Sie unter Factory Images for Nexus and Pixel Devices (Werkseitige Images für Nexus- und Pixel-Geräte).
Neue Funktionen
In Android Oreo werden verschiedene neue Features eingeführt, darunter Benachrichtigungskanäle, Infobadges, benutzerdefinierte Schriftarten in XML, herunterladbare Schriftarten, AutoAusfüllen und ein Bild-in-Bild-Feature (Picture In Picture, PIP). Diese Features werden in den folgenden Abschnitten näher beleuchtet, und es werden Links mit weiteren Informationen zur Nutzung dieser Features in Ihrer App bereitgestellt.
Benachrichtigungskanäle
Benachrichtigungskanäle sind App-definierte Kategorien für Benachrichtigungen. Sie können für jede Art von Benachrichtigung, die Sie senden müssen, einen Benachrichtigungskanal erstellen, und Sie können Benachrichtigungskanäle erstellen, um die von den Benutzern Ihrer Apps getroffenen Entscheidungen widerzuspiegeln. Mit dem neuen Feature für Benachrichtigungskanäle wird den Benutzern eine differenzierte Steuerung der verschiedene Arten von Benachrichtigungen ermöglicht. Wenn Sie beispielsweise eine Messaging-App implementieren, können Sie für jede Konversationsgruppe, die von einem Benutzer angelegt wird, separate Benachrichtigungskanäle anlegen.
Unter Benachrichtigungskanäle wird erklärt, wie ein Benachrichtigungskanal erstellt und für die Veröffentlichung lokaler Benachrichtigungen verwendet wird.
Infobadges
Infobadges sind kleine Punkte, die auf App-Symbolen angezeigt werden, wie in diesem Screenshot dargestellt:
Diese Punkte deuten darauf hin, dass es neue Benachrichtigungen für einen oder mehrere Benachrichtigungskanäle in der App gibt, die diesem App-Symbol zugeordnet sind – dies sind Benachrichtigungen, die der Benutzer noch nicht geschlossen oder reagiert hat. Benutzer können durch langes Drücken auf ein Symbol die Benachrichtigung anzeigen, sie schließen oder eine Option im Menü auswählen, das durch langes Drücken auf ein Symbol geöffnet wird.
Weitere Informationen zu Infobadges finden Sie im Android-Entwicklerthema Übersicht zu Benachrichtigungen.
Benutzerdefinierte Schriftarten in XML
Android Oreo führt Schriftarten in XML ein, wodurch Sie benutzerdefinierte Schriftarten als Ressourcen einbetten können. Es werden OpenType- (OTF) und TrueType-Schriftartformate (TTF) unterstützt. Gehen Sie zum Hinzufügen von Schriftarten als Ressourcen folgendermaßen vor:
Erstellen Sie einen Ordner Resources/font.
Kopieren Sie Ihre Schriftartdateien (z. B. TTF- und OTF-Dateien) nach Resources/font.
Falls erforderlich, benennen Sie jede Schriftdatei so um, dass sie den Android-Dateinamenskonventionen entspricht (d. h. verwenden Sie nur Kleinbuchstaben a–z, 0–9 und Unterstriche in Dateinamen). Beispielsweise könnten die Schriftartdatei
Pacifico-Regular.ttf
inpacifico.ttf
umbenannt werden.Wenden Sie die benutzerdefinierte Schriftart mit dem neuen Attribut
android:fontFamily
in Ihrer Layout-XML an. Beispielsweise verwendet die folgendeTextView
-Deklaration die hinzugefügte Schriftartressource pacifico.ttf:<TextView android:text="Example Text in Pacifico Regular" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/pacifico" />
Sie können auch eine XML-Datei mit Schriftfamilien erstellen, die mehrere Schriftarten sowie Details zu Schriftschnitt und -breite enthalten. Weitere Informationen finden Sie im Android-Entwicklerthema Fonts in XML (Schriftarten in XML).
Herunterladen von Schriftarten
Beginnend mit Android Oreo können Apps Schriftarten von einem Anbieter anfordern, anstatt sie in der APK zu bündeln. Schriftarten werden nur bei Bedarf aus dem Netzwerk heruntergeladen. Dieses Feature verringert die APK-Größe, wodurch der Telefonspeicher geschont wird und weniger mobile Daten verbraucht werden. Sie können dieses Feature auch auf den Android-API-Versionen 14 und höher verwenden, indem Sie das Paket „Android Support Library 26“ installieren.
Wenn Ihre App eine Schriftart benötigt, erstellen Sie ein FontsRequest
-Objekt (das angibt, welche Schriftart heruntergeladen werden soll) und übergeben dieses an eine FontsContract
-Methode, um die Schriftart herunterzuladen. In den folgenden Schritten wird der Vorgang zum Herunterladen von Schriftarten ausführlicher beschrieben:
Instanziieren Sie ein FontRequest-Objekt.
Erstellen Sie eine Unterklasse, und instanziieren Sie FontsContract.FontRequestCallback.
Implementieren Sie die FontRequestCallback.OnTypeFaceRetrieved-Methode, die zum Ausführen der Schriftartanforderung verwendet wird.
Implementieren Sie die Methode FontRequestCallback.OnTypeFaceRequestFailed, mit der Ihre App über Fehler informiert wird, die während der Schriftartanforderung möglicherweise auftreten.
Rufen Sie die FontsContract.RequestFonts-Methode auf, um die Schriftart aus dem Schriftartanbieter abzurufen.
Wenn Sie die RequestFonts
-Methode aufrufen, überprüft diese zunächst, ob die Schriftart lokal zwischengespeichert wurde (durch einen vorherigen Aufruf von RequestFont
). Ist die Schriftart nicht zwischengespeichert, wird der Schriftartanbieter aufgerufen und die Schriftart asynchron abgerufen. Anschließend werden die Ergebnisse durch einen Aufruf Ihrer OnTypeFaceRetrieved
-Methode an Ihre App zurückgegeben.
Weitere Informationen zum Herunterladen von Schriftarten finden Sie im Android-Entwicklerthema Downloadable Fonts (Herunterladbare Schriftarten).
AutoAusfüllen
Das neue AutoAusfüllen-Framework in Android Oreo erleichtert den Benutzern wiederholt ausgeführte Aufgaben wie Anmeldung, Kontoerstellung und Kreditkartentransaktionen. Benutzer müssen weniger Zeit für das erneute Eingeben von Informationen aufwenden (was zu Eingabefehlern führen kann). Damit Ihre Anwendung mit dem AutoAusfüllen-Framework arbeiten kann, muss ein AutoAusfüllen-Dienst in den Systemeinstellungen aktiviert werden (Benutzer können AutoAusfüllen-Feature aktivieren oder deaktivieren).
Weitere Informationen zum neuen AutoAusfüllen-Feature und zur Optimierung Ihrer App für diese Funktion finden Sie im Android-Entwicklerthema Autofill Framework (AutoAusfüllen-Framework).
Bild-in-Bild (Picture in Picture, PIP)
Android Oreo ermöglicht es, eine Aktivität im Bild-in-Bild-Modus (PIP) zu starten und den Bildschirm einer anderen Aktivität zu überlagern. Dieses Feature ist für die Wiedergabe von Videos vorgesehen.
Um anzugeben, dass die Aktivität Ihrer Anwendung den PIP-Modus verwenden kann, legen Sie das folgende Flag im Android-Manifest auf TRUE fest:
android:supportsPictureInPicture
Um anzugeben, wie sich Ihre Aktivität im PIP-Modus verhalten soll, verwenden Sie das neue PictureInPictureParams-Objekt. PictureInPictureParams
repräsentiert einen Satz an Parametern, die Sie zum Initialisieren und Aktualisieren einer Aktivität im PIP-Modus verwenden können (z. B. das bevorzugte Seitenverhältnis der Aktivität). In Android Oreo wurden Activity
die folgenden neuen PIP-Methoden hinzugefügt:
EnterPictureInPictureMode – versetzt die Aktivität in den PIP-Modus. Die Aktivität wird in der Ecke des Bildschirms platziert, und der Rest des Bildschirms wird mit der zuvor auf dem Bildschirm vorhandenen Aktivität gefüllt.
SetPictureInPictureParams – Aktualisiert die PIP-Konfigurationseinstellungen der Aktivität (z. B. eine Änderung des Seitenverhältnisses).
Andere Funktionen
Android Oreo bietet viele weitere neue Features wie etwa die Emoji-Unterstützungsbibliothek, eine Standort-API, Begrenzungen für die Hintergrundausführung, eine breite Farbskala für Apps, neue Audiocodecs, WebView-Verbesserungen, eine verbesserte Tastatur-Navigationsunterstützung und eine neue AAudio-API (Pro-Audio) für eine hochleistungsfähige Audiowiedergabe mit niedriger Latenz. Weitere Informationen zu diesen Features finden Sie im Android-Entwicklerthema Android Oreo Features and APIs (Android Oreo-Features und -APIs).
Verhaltensänderungen
Android Oreo umfasst eine Vielzahl von System- und API-Verhaltensänderungen, die sich auf die Funktionalität vorhandener Apps auswirken können. Diese Änderungen werden nachfolgend beschrieben.
Begrenzungen für die Hintergrundausführung
Zur Verbesserung des Benutzererlebnisses gelten in Android Oreo Beschränkungen für Apps, während sie im Hintergrund ausgeführt werden. Wenn der Benutzer beispielsweise ein Video anschaut oder ein Spiel spielt, kann eine im Hintergrund ausgeführte App die Leistung einer videointensiven App beeinträchtigen, die im Vordergrund ausgeführt wird. Deshalb gelten in Android Oreo die folgenden Einschränkungen für Apps, die nicht direkt mit dem Benutzer interagieren:
Einschränkungen des Hintergrunddiensts – Wenn eine App im Hintergrund ausgeführt wird, verfügt sie über ein Fenster von mehreren Minuten, in dem sie weiterhin Dienste erstellen und verwenden darf. Nach Ablauf des Zeitfensters beendet Android den Hintergrunddienst der App und betrachtet sie als im Leerlauf.
Übertragungsbeschränkungen – Android 7.0 (API 25) legt Einschränkungen für Übertragungen fest, die von einer App empfangen werden. Android Oreo verschärft diese Beschränkungen. Beispielsweise ist es nicht mehr möglich, dass Android Oreo-Apps Broadcast Receiver für implizite Übertragungen in ihren Manifesten registrieren.
Weitere Informationen zu den neuen Beschränkungen für die Hintergrundausführung finden Sie im Android-Entwicklerthema Background Execution Limits (Begrenzungen für die Hintergrundausführung).
Aktuelle Änderungen
Apps mit Android Oreo als Zielplattform müssen so geändert werden, dass sie die folgenden Änderungen unterstützen (sofern erforderlich):
Android Oreo ermöglicht es nicht mehr, die Priorität einzelner Benachrichtigungen festzulegen. Stattdessen wird beim Erstellen eines Benachrichtigungskanals eine empfohlene Relevanzebene festgelegt. Die einem Benachrichtigungskanal zugewiesene Relevanzebene gilt für alle Benachrichtigungen, die darin gepostet werden.
Für Apps mit Android Oreo als Zielplattform funktioniert
PendingIntent.GetService()
aufgrund neuer Beschränkungen für im Hintergrund gestartete Dienste nicht. Wenn Ihre App für Android Oreo vorgesehen ist, verwenden Sie stattdessen PendingIntent.GetBroadcast.
Video
Android 8.0 Oreo-Entwicklung mit C#
Zusammenfassung
In diesem Artikel wurde Android Oreo vorgestellt und erläutert, wie die neuesten Tools und Pakete zur Xamarin.Android-Entwicklung für Android Oreo installiert und konfiguriert werden. Es wurde ein Überblick der wichtigsten Android Oreo-Features mit Links zu Codebeispielen für verschiedene neue Features bereitgestellt. Darüber hinaus wurden in diesem Artikel Links zur API-Dokumentation und zu relevanten Themen für Android-Entwickler bereitgestellt, um Ihnen den Einstieg in die App-Entwicklung für Android Oreo zu erleichtern. Ferner wurden die wichtigsten Verhaltensänderungen von Android Oreo beschrieben, die sich auf vorhandene Apps auswirken können.