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.

Android Oreo Hero-Bild

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:

  1. Installieren Sie die aktuelle Version von Visual Studio.

  2. Installieren Sie Android 8.0.0 (API 26) oder höhere Pakete und Tools über den SDK-Manager.

  3. Erstellen Sie ein neues Xamarin.Android-Projekt für die Zielplattform Android Oreo (API-Ebene 26).

  4. 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:

    1. Führen Sie ein Update auf Visual Studio 2017, Version 15.7 oder höher durch (siehe Aktualisieren von Visual Studio 2017).

    2. 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.

  1. Starten Sie den SDK-Manager (klicken Sie in Visual Studio auf Tools > Android > Android SDK Manager).

  2. 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:

    Auswählen von Android 8.0-Paketen im Android SDK-Manager

  3. 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):

    Auswählen von Android SDK Tools 26 im Android SDK Manager

Starten eines Xamarin.Android-Projekts

Erstellen Sie ein neues Xamarin.Android-Projekt. Wenn Sie mit der Android-Entwicklung mit Xamarin noch nicht vertraut sind, finden Sie unter Hello, Android (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:

  1. Ö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"
    
  2. Fügen Sie PATH den Speicherort des Android SDK-Ordners bin 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"
    
  3. 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"
    
  4. 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:

Neues AVD zum Pulldownmenü des Geräts hinzugefügt

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. Ein Codebeispiel aus der Praxis finden Sie im Beispiel NotificationChannels. Diese Beispiel-App verwaltet zwei Kanäle und legt zusätzliche Benachrichtigungsoptionen fest.

Infobadges

Infobadges sind kleine Punkte, die auf App-Symbolen angezeigt werden, wie in diesem Screenshot dargestellt:

Beispielbenachrichtigungs-Badges für App-Symbole

Diese Punkte geben an, dass es neue Benachrichtigungen für einen oder mehrere Benachrichtigungskanäle in der App gibt, die mit dem App-Symbol verknüpft sind. Dies sind Benachrichtigungen, die der Benutzer noch nicht verworfen 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:

  1. Erstellen Sie einen Ordner Resources/font.

  2. Kopieren Sie Ihre Schriftartdateien (z. B. TTF- und OTF-Dateien) nach Resources/font.

  3. 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 in pacifico.ttf umbenannt werden.

  4. Wenden Sie die benutzerdefinierte Schriftart mit dem neuen Attribut android:fontFamily in Ihrer Layout-XML an. Beispielsweise verwendet die folgende TextView-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:

  1. Instanziieren Sie ein FontRequest-Objekt.

  2. Unterklasse und Instanziieren von FontsContract.FontRequestCallback.

  3. Implementieren Sie die FontRequestCallback.OnTypeFaceRetrieved-Methode , die zum Verarbeiten der Vervollständigung der Schriftartanforderung verwendet wird.

  4. Implementieren Sie die FontRequestCallback.OnTypeFaceRequestFailed-Methode , die verwendet wird, um Ihre App über alle Fehler zu informieren, die während des Schriftanforderungsprozesses auftreten.

  5. Rufen Sie die FontsContract.RequestFonts-Methode auf, um die Schriftart vom Schriftartenanbieter 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.

Das Beispiel DownloadableFonts veranschaulicht die Verwendung des in Android Oreo eingeführten Features zum Herunterladen von Schriftarten.

Weitere Informationen zum Herunterladen von Schriftarten finden Sie im Android-Entwicklerthema Downloadable Fonts (Herunterladbare Schriftarten).

Automatisch ausfü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).

Das Beispiel AutofillFramework veranschaulicht die Verwendung des AutoAusfüllen-Frameworks. Es umfasst Implementierungen von Clientaktivitäten mit Ansichten, die automatisch ausgefüllt werden sollen, und einen Dienst, der Clientaktivitäten automatisch ausgefüllte Daten zur Verfügung stellen kann.

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 – Updates die PIP-Konfigurationseinstellungen der Aktivität (z. B. eine Änderung des Seitenverhältnisses).

Das Beispiel PictureInPicture veranschaulicht die grundlegende Verwendung des in Oreo eingeführten PIP-Modus für Handheldgeräte. Im Beispiel wird ein Video ohne Unterbrechung weiter wiedergegeben, während zwischen den Anzeigemodi oder anderen Aktivitäten hin- und hergeschaltet wird.

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:

  1. 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.

  2. Broadcast-Einschränkungen : Android 7.0 (API 25) hat Einschränkungen für Übertragungen, die eine App registriert, um sie zu empfangen. 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.

Beispielcode

Es stehen verschiedene Xamarin.Android-Beispiele zur Verfügung, die veranschaulichen, wie Sie die Vorteile der Android Oreo-Features nutzen:

  • NotificationsChannels zeigt, wie das in Android Oreo eingeführte neue System der Benachrichtigungskanäle genutzt werden kann. Dieses Beispiel verwaltet zwei Benachrichtigungskanäle: einen mit Standardrelevanz und einen mit hoher Relevanz.

  • PictureInPicture veranschaulicht die grundlegende Verwendung des in Oreo eingeführten PIP-Modus für Handheldgeräte. Im Beispiel wird ein Video ohne Unterbrechung weiter wiedergegeben, während zwischen den Anzeigemodi oder anderen Aktivitäten hin- und hergeschaltet wird.

  • AutofillFramework zeigt die Verwendung des AutoAusfüllen-Frameworks. Es umfasst Implementierungen von Clientaktivitäten mit Ansichten, die automatisch ausgefüllt werden sollen, und einen Dienst, der Clientaktivitäten automatisch ausgefüllte Daten zur Verfügung stellen kann.

  • Herunterladbare Schriftarten bieten ein Beispiel für die Verwendung der zuvor beschriebenen Funktion "Herunterladbare Schriftarten".

  • EmojiCompat veranschaulicht die Verwendung der EmojiCompat-Unterstützungsbibliothek. Sie können Ihre Apps mithilfe dieser Bibliothek daran hindern, fehlende Emojis als „Tofu-Zeichen“ anzuzeigen.

  • Location Updates Pending Intent veranschaulicht die Verwendung der Standort-API zum Abrufen von Updates über den Standort eines Geräts mithilfe von PendingIntent.

  • Location Updates Foreground Service veranschaulicht, wie die Standort-API verwendet wird, um Mithilfe eines gebundenen und gestarteten Vordergrunddiensts Updates zum Standort eines Geräts abzurufen.

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.