Nougat-Features

Dieser Artikel bietet Unterstützung beim Einstieg in die Verwendung von Xamarin.Android zur Entwicklung von Apps für Android Nougat.

Dieser Artikel bietet einen Überblick über die in Android Nougat eingeführten Features, erläutert, wie Sie Xamarin.Android für die Entwicklung für Android Nougat vorbereiten, und stellt Links zu Beispielanwendungen bereit, die die Verwendung der neuen Android Nougat-Features in Xamarin.Android-Apps veranschaulichen.

Übersicht

Android Nougat ist der Nachfolger von Google für Android 6.0 Marshmallow. Xamarin.Android bietet Unterstützung für Android 7.x-Bindungen in Xamarin Android 7.0 und höher. Android Nougat fügt eine Vielzahl neuer APIs für die unten beschriebenen Nougat-Features hinzu. Diese APIs sind für Xamarin.Android-Apps verfügbar, wenn Sie Xamarin.Android 7.0 verwenden.

Hero-Bilder von Android-Tablets und -Smartphones mit Android Nougat

Weitere Informationen zu Android 7.x-APIs finden Sie in der Android-API-Referenz. Eine Liste bekannter Probleme mit Xamarin.Android 7.0 finden Sie in den Versionshinweisen.

Android Nougat bietet zahlreiche neue Features, die für Xamarin.Android-Entwickler interessant sind. Dazu gehören:

  • Unterstützung für mehrere Fenster : Diese Erweiterung ermöglicht es Benutzern, zwei Apps gleichzeitig auf dem Bildschirm zu öffnen.

  • Benachrichtigungserweiterungen : Das neu gestaltete Benachrichtigungssystem in Android Nougat enthält eine Funktion für direkte Antworten , mit der Benutzer schnell auf Textnachrichten direkt über die Benutzeroberfläche für Benachrichtigungen reagieren können. Auch wenn Ihre App Benachrichtigungen für empfangene Nachrichten erstellt, kann das neue Feature der gebündelten Benachrichtigungen Benachrichtigungen zu einer einzelnen Gruppe bündeln, wenn mehrere Nachrichten empfangen werden.

  • Datensparmodus : Dieses Feature ist ein neuer Systemdienst, der dazu beiträgt, die Nutzung von Datenverbindungen durch Apps zu reduzieren. Es gibt Benutzern die Kontrolle darüber, wie Apps Mobilfunkdaten verwenden.

Außerdem bietet Android Nougat viele weitere Verbesserungen, die für App-Entwickler von Interesse sind, wie z. B. ein neues Feature zur Konfiguration der Netzwerksicherheit, Doze on the Go, Schlüsselnachweis, neue Schnelleinstellungen-APIs, Unterstützung mehrerer Gebietsschemas, ICU4J-APIs, WebView-Erweiterungen, Zugriff auf Java 8-Sprachfeatures, bereichsbezogenen Verzeichniszugriff, eine API für benutzerdefinierte Zeiger, Plattform-VR-Unterstützung, virtuelle Dateien und Optimierungen der Hintergrundverarbeitung.

In diesem Artikel wird erläutert, wie Sie mit der Entwicklung von Apps mit Android Nougat beginnen, um die neuen Features zu testen und die Migrations- oder Funktionsarbeit für die neue Android Nougat-Plattform zu planen.

Anforderungen

Für die Verwendung von Android Nougat-Features in Xamarin-basierten Apps gelten die folgenden Voraussetzungen:

  • Visual Studio oder Visual Studio für Mac: Wenn Sie Visual Studio verwenden, ist Version 4.2.0.628 oder höher von Visual Studio Tools für Xamarin erforderlich. Wenn Sie Visual Studio für Mac verwenden, ist Version 6.1.0 oder höher erforderlich.

  • Xamarin.Android – Xamarin.Android 7.0 oder höher muss mit Visual Studio oder Visual Studio für Mac installiert und konfiguriert werden.

  • Android SDK : Android SDK 7.0 (API 24) oder höher muss über den Android SDK Manager installiert werden.

  • Java Developer Kit : Für die Xamarin Android 7.0-Entwicklung ist JDK 8 oder höher erforderlich, wenn Sie für API-Ebene 24 oder höher entwickeln (JDK 8 unterstützt auch API-Ebenen vor 24). Die 64-Bit-Version von JDK 8 wird benötigt, wenn Sie benutzerdefinierte Steuerelemente oder die Forms-Vorschau verwenden.

Wichtig

Xamarin.Android unterstützt JDK 9 nicht.

Beachten Sie, dass Apps mit Xamarin C6SR4 oder höher neu erstellt werden müssen, damit sie zuverlässig mit Android Nougat funktionieren. Da Android Nougat nur mit NDK-bereitgestellten nativen Bibliotheken Verknüpfungen herstellen kann, können vorhandene Apps wie Mono.Data.Sqlite.dll, die Bibliotheken verwenden, bei Ausführung auf Android Nougat abstürzen, wenn sie nicht ordnungsgemäß neu erstellt werden.

Erste Schritte

Um mit der Nutzung von Android Nougat mit Xamarin.Android zu beginnen, müssen Sie die neuesten Tools und SDK-Pakete herunterladen und installieren, bevor Sie ein Android Nougat-Projekt erstellen können:

  1. Installieren Sie die neuesten Xamarin.Android-Updates von Xamarin.

  2. Installieren Sie die Pakete und Tools für Android 7.0 (API 24) oder höher.

  3. Erstellen Sie ein neues Xamarin.Android-Projekt für die Zielplattform Android Nougat.

  4. Konfigurieren Sie einen Emulator oder ein Gerät für Android Nougat.

Jeder dieser Schritte wird in den folgenden Abschnitten erläutert:

Installieren von Xamarin-Updates

Um Xamarin-Unterstützung für Android Nougat hinzuzufügen, ändern Sie den Updateskanal in Visual Studio oder Visual Studio für Mac in den stabilen Kanal, und wenden Sie die neuesten Updates an. Wenn Sie auch Features benötigen, die derzeit nur im Alpha- oder Beta-Kanal verfügbar sind, können Sie zum Alpha- oder Beta-Kanal wechseln (Alpha- und Beta-Kanal bieten auch Unterstützung für Android 7.x). Informationen zum Ändern des Kanals für Updates (Releases) finden Sie unter Changing the Updates Channel (Ändern des Kanals für Updates).

Installieren des Android SDK

Um ein Projekt mit Xamarin.Android 7.0 zu erstellen, müssen Sie zunächst den Android-SDK-Manager verwenden, um die SDK-Plattform für Android N (API 24) oder höher zu installieren. Sie müssen außerdem die neuesten Android SDK Tools installieren:

  1. Starten Sie den Android SDK-Manager (verwenden Sie in Visual Studio für Mac Tools > Android SDK Manager öffnen...; verwenden Sie in Visual Studio Tools > Android > Android SDK Manager).

  2. Installieren Sie Android 7.0 (API 24) oder höher:

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

  3. Installieren Sie die neuesten Android SDK Tools:

    Auswählen der neuesten Android SDK-Tools im Android SDK-Manager

    Sie müssen Android SDK Tools Revision 25.2.2 oder höher, Android SDK Platform Tools 24.0.3 oder höher und Android SDK Build Tools 24.0.2 oder höher installieren.

  4. Vergewissern Sie sich, dass der Java Development Kit-Speicherort für JDK 1.8 konfiguriert ist:

    Konfigurieren des JDK 8-Pfads unter Tools-Optionen

    Um diese Einstellung in Visual Studio anzuzeigen, klicken Sie auf Extras > Optionen > Xamarin > Android-Einstellungen. Klicken Sie in Visual Studio für Mac auf Einstellungen > Projekte > SDK-Standorte > Android.

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 7.0 oder höher konfigurieren. Wenn Sie Ihr Projekt beispielsweise auf Android 7.0 ausrichten, müssen Sie die Android-API-Zielebene Ihres Projekts auf Android 7.0 (API 24 – Nougat) festlegen. Sie sollten die Ebene für das Zielframework auf API 24 oder höher festlegen. Weitere Informationen zum Konfigurieren von Android-API-Ebenen finden Sie unter Grundlegendes zu Android-API-Ebenen.

Hinweis

Derzeit müssen Sie die Android-Mindestversion auf Android 7.0 (API 24 – Nougat) festlegen, um Ihre App auf Android Nougat-Geräten oder -Emulatoren bereitzustellen.

Konfigurieren eines Emulators oder Geräts

Wenn Sie einen Emulator verwenden, starten Sie den Android Virtual Device Manager (AVD Manager), und erstellen Sie unter Verwendung der folgenden Einstellungen ein neues Gerät:

  • Gerät: Nexus 5X, Nexus 6, Nexus 6P, Nexus Player, Nexus 9 oder Pixel C.
  • Ziel: Android 7.0 – API Level 24
  • ABI: x86 oder x86_64

Dieses virtuelle Gerät ist beispielsweise für die Emulation eines Nexus 6 konfiguriert:

Konfigurieren eines AVD mit Nexus 6-Gerät, Android 7.0-Ziel und Intel Atom x86 CPU/ABI

Wenn Sie ein physisches Gerät wie Nexus 5X, 6 oder 9 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 Nougat finden Sie unter Full OTA Images for Nexus and Pixel Devices (Vollständige OTA-Images für Nexus- und Pixel-Geräte).

Beachten Sie, dass Nexus 5-Geräte nicht von Android Nougat unterstützt werden.

Neue Funktionen

Android Nougat führt eine Reihe von neuen Features und Funktionen ein, z. B. Unterstützung für mehrere Fenster, Benachrichtigungserweiterungen und Data Saver. 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.

Modus für mehrere Fenster

Der Modus für mehrere Fenster ermöglicht Benutzern das gleichzeitige Öffnen von zwei Apps mit vollständiger Multitasking-Unterstützung. Diese Apps können nebeneinander (Querformat) oder übereinander (Hochformat) im Split-Screen-Modus ausgeführt werden. Benutzer können die Größe der Apps ändern, indem sie eine Trennlinie ziehen, und sie können mittels Ausschneiden und Einfügen den Inhalt zwischen den Apps austauschen. Wenn zwei Apps im Modus für mehrere Fenster angezeigt werden, wird die ausgewählte Aktivität weiterhin ausgeführt, während die nicht ausgewählte Aktivität angehalten wird, aber immer noch sichtbar ist. Der Modus für mehrere Fenster ändert den Lebenszyklus der Android-Aktivität nicht.

Beispiel-Apps, die im Mehrfenstermodus sowohl im Hoch- als auch im Querformat ausgeführt werden

Sie können konfigurieren, wie die Aktivitäten Ihrer Xamarin.Android-App den Modus für mehrere Fenster unterstützen. Beispielsweise können Sie Attribute konfigurieren, die die minimale Größe und die Standardhöhe und -breite Ihrer App im Modus für mehrere Fenster festlegen. Sie können die neue Activity.IsInMultiWindowMode-Eigenschaft verwenden, um zu bestimmen, ob sich die Aktivität im Modus für mehrere Fenster befindet. Beispiel:

if (!IsInMultiWindowMode) {
    multiDisabledMessage.Visibility = ViewStates.Visible;
} else {
    multiDisabledMessage.Visibility = ViewStates.Gone;
}

Die MultiWindowPlayground-Beispiel-App enthält C#-Code, der zeigt, wie Sie die Vorteile einer Benutzeroberfläche mit mehreren Fenstern mit Ihrer App nutzen können.

Weitere Informationen zum Modus für mehrere Fenster finden Sie unter Multi-Window Support (Unterstützung für mehrere Fenster).

Verbesserte Benachrichtigungen

Android Nougat führt ein überarbeitetes Benachrichtigungssystem ein. Es verfügt über ein neues Direktantwortfeature, das Benutzern ermöglicht, schnell auf Benachrichtigungen für eingehende SMS in der Benachrichtigungs-Benutzeroberfläche zu antworten. Ab Android 7.0 können Benachrichtigungsmeldungen als einzelne Gruppe gebündelt werden, wenn mehrere Nachrichten empfangen werden. Entwickler können auch Benachrichtigungsansichten anpassen, Systemdekorationen in Benachrichtigungen und neue Benachrichtigungsvorlagen nutzen, wenn sie Benachrichtigungen erstellen.

Direkte Antwort

Wenn ein Benutzer eine Benachrichtigung für die eingehende Nachricht erhält, ermöglicht Android Nougat, innerhalb der Benachrichtigung auf die Nachricht zu antworten (anstatt die Messaging-App zu öffnen, um eine Antwort zu senden). Dieses Inlineantwortfeature ermöglicht Benutzern, direkt innerhalb der Benachrichtigungs-Benutzeroberfläche schnell auf eine SMS zu reagieren:

Screenshot einer Benachrichtigung mit einem Inlinefeld für direkte Antwort

Um dieses Feature in Ihrer App zu unterstützen, müssen Sie der App über ein RemoteInput-Objekt Inlineantwortaktionen hinzufügen, damit Benutzer direkt über die Benutzeroberfläche der Benachrichtigung per Text antworten können. Der folgende Code erstellt z. B. ein RemoteInput-Objekt zum Empfangen von Texteingaben, eine ausstehende Absicht für die Antwortaktion und eine aktivierte Remoteeingabeaktion:

// Build a RemoteInput for receiving text input:
var remoteInput = new Android.Support.V4.App.RemoteInput.Builder (EXTRA_REMOTE_REPLY)
    .SetLabel (GetString (Resource.String.reply))
    .Build ();

// Build a Pending Intent for the reply action to trigger:
PendingIntent replyIntent = PendingIntent.GetBroadcast (ApplicationContext,
                                conversation.ConversationId,
                                GetMessageReplyIntent (conversation.ConversationId),
                                PendingIntentFlags.UpdateCurrent);

// Build an Android 7.0 compatible Remote Input enabled action:
NotificationCompat.Action actionReplyByRemoteInput = new NotificationCompat.Action.Builder (
    Resource.Drawable.notification_icon,
    GetString (Resource.String.reply),
    replyIntent).AddRemoteInput (remoteInput).Build ();

Diese Aktion wird der Benachrichtigung hinzugefügt:

// Create the notification:
NotificationCompat.Builder builder = new NotificationCompat.Builder (ApplicationContext)
   .SetSmallIcon (Resource.Drawable.notification_icon)
   ...
   .AddAction (actionReplyByRemoteInput);

Die Beispiel-App für den Messaging-Dienst enthält C#-Code, der das Erweitern von Benachrichtigungen mit einem RemoteInput-Objekt veranschaulicht. Weitere Informationen zum Hinzufügen von Inlineantwortaktionen zu Ihrer App für Android 7.0 oder höher finden Sie im Android-Thema Replying to Notifications (Antworten auf Benachrichtigungen).

Gebündelte Benachrichtigungen

Android Nougat kann Benachrichtigungsmeldungen gruppieren (z. B. nach Nachrichtenthema) und die Gruppe anstelle jeder separaten Nachricht anzeigen. Dieses Feature der gebündelten Benachrichtigungen ermöglicht Benutzern, eine Gruppe von Benachrichtigungen in einer Aktion zu verwerfen oder zu archivieren. Der Benutzer kann nach unten streichen, um das Benachrichtigungsbündel zur ausführlichen Anzeige der einzelnen Benachrichtigungen zu erweitern:

Screenshot: Beispiel für gebündelte Benachrichtigungen

Um gebündelte Benachrichtigungen zu unterstützen, kann Ihre App ähnliche Benachrichtigungen mit der Builder.SetGroup-Methode bündeln. Weitere Informationen zu Gruppen gebündelter Benachrichtigungen in Android N finden Sie im Android-Thema Bundling Notifications (Bündeln von Benachrichtigungen).

Benutzerdefinierte Ansichten

Mit Android Nougat können Sie benutzerdefinierte Benachrichtigungsansichten mit Systembenachrichtigungsheadern, Aktionen und erweiterbaren Layouts erstellen. Weitere Informationen zu benutzerdefinierten Benachrichtigungsansichten in Android Nougat finden Sie im Android-Thema Notification Enhancements (Benachrichtigungserweiterungen).

Data Saver

Ab Android-Nougat können Benutzer eine neue Data Saver-Einstellung aktivieren, die die Verwendung von Hintergrunddaten blockiert. Diese Einstellung signalisiert Ihrer App außerdem, möglichst weniger Daten im Vordergrund zu verwenden. Der ConnectivityManager wurde in Android Nougat erweitert, sodass Ihre App überprüfen kann, ob der Benutzer den Data Saver aktiviert hat, damit Ihre App versuchen kann, die Datennutzung einzuschränken, wenn der Data Saver aktiviert ist.

Weitere Informationen zum neuen Data Saver-Feature in Android Nougat finden Sie im Android-Thema Optimizing Network Data Usage (Optimieren der Netzwerkdatenverwendung).

App-Verknüpfungen

Mit Android 7.1 wurde das Feature App-Verknüpfungen eingeführt, das Benutzern ermöglicht, gängige oder empfohlene Aufgaben mit Ihrer App schnell zu starten. Um das Menü der Tastenkombinationen zu aktivieren, drückt der Benutzer das App-Symbol eine Sekunde lang oder länger – das Menü wird mit einer schnellen Vibration angezeigt. Wenn der Benutzer das Symbol nicht mehr berührt, wird das Menü weiterhin angezeigt:

Beispielbildschirm eines App-Kontextmenüs für eine Messaging-App

Dieses Feature ist nur unter API-Ebene 25 oder höher verfügbar. Weitere Informationen zum neuen App-Verknüpfungen-Feature in Android 7.1 finden Sie im Android-Thema App-Verknüpfungen.

Beispielcode

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

  • MultiWindowPlayground veranschaulicht die Verwendung der Mehrfenster-API, die in Android Nougat verfügbar ist. Sie können die Beispiel-App in den Modus für mehrere Fenster umschalten, um zu sehen, wie sich dies auf den Lebenszyklus und das Verhalten der App auswirkt.

  • Beim Messaging-Dienst handelt es sich um einen einfachen Dienst, der Benachrichtigungen mithilfe des NotificationCompatManager sendet. Außerdem wird die Benachrichtigung mit einem RemoteInput-Objekt erweitert, damit Android Nougat-Geräte direkt per Text von der Benachrichtigung aus antworten können, ohne eine App öffnen zu müssen.

  • Aktive Benachrichtigungen veranschaulicht, wie Sie die NotificationManager API verwenden, um ihnen mitzuteilen, wie viele Benachrichtigungen Ihre Anwendung derzeit anzeigt.

  • Bereichsbezogener Verzeichniszugriff veranschaulicht, wie die API für bereichsbezogenen Verzeichniszugriff für den einfachen Zugriff auf bestimmte Verzeichnisse verwendet wird. Dies dient als Alternative zum Definieren von READ_EXTERNAL_STORAGE- oder WRITE_EXTERNAL_STORAGE-Berechtigungen in ihrem Manifest.

  • Direkter Start Veranschaulicht, wie Daten in einem geräteverschlüsselten Speicher gespeichert werden, der immer verfügbar ist, während das Gerät sowohl vor als auch nach eingabe von Benutzeranmeldeinformationen (PIN/Muster/Kennwort) gestartet wird.

Zusammenfassung

In diesem Artikel wurde Android Nougat vorgestellt und erläutert, wie die neuesten Tools und Pakete zur Xamarin.Android-Entwicklung für Android Nougat installiert und konfiguriert werden. Außerdem bietet er eine Übersicht über die wichtigsten in Android Nougat verfügbaren Features und enthält Links zu Beispielquellcode, die Ihnen den Einstieg in das Erstellen von Apps für Android Nougat erleichtern.