Android 7.0 für Entwickler

Android 7.0 Nougat bietet eine Vielzahl von neuen Funktionen für Nutzer und Entwickler. In diesem Dokument werden die Neuerungen für Entwickler beschrieben.

In der <ph type="x-smartling-placeholder"></ph> Änderungen im Verhalten von Android 7.0, um zu erfahren, in welchen Bereichen sich die Plattform ändert kann sich auf deine Apps auswirken.

Weitere Informationen über Informationen zu den Nutzerfunktionen von Android 7.0 finden Sie unter www.android.com.

Unterstützung für Mehrfenstermodus

In Android 7.0 führen wir ein neues und viel gefragtes Multitasking-Funktion in die Plattform integriert – Unterstützung für den Mehrfenstermodus.

Nutzer können jetzt zwei Apps gleichzeitig auf dem Bildschirm öffnen.

  • Auf Smartphones und Tablets mit Android 7.0 können Nutzer zwei Apps gleichzeitig oder im Splitscreen-Modus übereinander zeigen. Nutzer können die Größe der Apps durch Ziehen ändern. die Trennlinie dazwischen.
  • Auf Android TV-Geräten können Apps sich selbst als Bild im Bild anzeigen lassen. , sodass sie weiterhin Inhalte anzeigen können, während der Nutzer stöbert oder mit anderen Apps interagiert.
Mobile Apps im Splitscreen-Modus

Abbildung 1: Apps, die im Splitscreen-Modus ausgeführt werden.

Besonders auf Tablets und anderen Geräten mit größeren Bildschirmen wird der Mehrfenstermodus bietet Ihnen neue Möglichkeiten, mit Nutzern zu interagieren. Sie können sogar Drag-and-drop aktivieren, Ihre App, damit Nutzer Inhalte bequem von oder zu Ihrer App ziehen können. die Nutzererfahrung verbessern können.

Du kannst deiner App ganz einfach den Mehrfenstermodus hinzufügen und die Einstellungen dafür konfigurieren. der Mehrfenstermodus. Sie können beispielsweise angeben, Mindestgröße, die Nutzer daran hindert, die Größe der Aktivität unten anzupassen für diese Größe. Du kannst den Mehrfenstermodus für deine App auch deaktivieren. sorgt dafür, dass Ihre App nur im Vollbildmodus angezeigt wird.

Weitere Informationen finden Sie unter Mehrfenstermodus. Entwicklerdokumentation.

Verbesserte Benachrichtigungen

In Android 7.0 haben wir die Benachrichtigungen neu gestaltet, um sie schneller zu nutzen. Zu den Änderungen gehören:

  • Vorlagenaktualisierungen: Wir aktualisieren Benachrichtigungsvorlagen auf das Hero-Image und den Avatar neu zu gestalten. Entwickler können die neuen Vorlagen mit minimalen Anpassungen am Code zu nutzen.
  • Anpassung des Nachrichtenstils: Sie können die mit Ihren Benachrichtigungen verknüpften Labels der Benutzeroberfläche mithilfe der MessagingStyle. Sie können die Mitteilung konfigurieren, Konversationstitel und Inhaltsansicht.
  • Gebündelte Benachrichtigungen: Das System kann Nachrichten gruppieren. z. B. nach Nachrichtenthema, und zeigen die Gruppe an. Ein Nutzer kann Aktionen wie Schließen oder Archivieren ausführen. Wenn Sie Benachrichtigungen für Android Wear implementiert haben, wissen Sie bereits, für dieses Modell.
  • Direktantwort: Bei Apps für die Echtzeitkommunikation kann das Das Android-System unterstützt Inline-Antworten, damit Nutzer schnell auf eine SMS oder Textnachricht direkt in der Benachrichtigungsoberfläche.
  • Benutzerdefinierte Ansichten: Mit zwei neuen APIs können Sie wie Benachrichtigungs-Header und -Aktionen, wenn Sie benutzerdefinierte Aufrufe in Benachrichtigungen.
Smartphone, auf dem Benachrichtigungen gruppiert angezeigt werden
Auf einem Mobilgerät wird eine Benachrichtigung zu einer einzelnen Nachricht angezeigt
Ein Mobilgerät, das eine Inline-Antwort auf einer Benachrichtigungsoberfläche anzeigt

Abbildung 2: Gruppierte Benachrichtigungen und Direktantworten

Informationen zum Implementieren der neuen Funktionen finden Sie in der Benachrichtigungen .

Profilgestützte JIT/AOT-Kompilierung

In Android 7.0 haben wir einen Just-in-Time-Compiler (JIT) mit Code hinzugefügt. Profilerstellung mit ART, sodass die Leistung der Android-Apps, während sie ausgeführt werden. Der JIT-Compiler ergänzt die aktuelle Version von ART AOT-Compiler (AOT), der die Laufzeitleistung verbessert, und App- und Systemupdates zu beschleunigen.

Bei der profilgesteuerten Kompilierung kann ART die AOT/JIT-Kompilierung für jede App an ihre tatsächliche Nutzung und die Bedingungen auf dem Gerät anpassen. Zum Beispiel verwaltet ART ein Profil der angesagten Methoden jeder App und kann Kompilieren Sie diese Methoden und speichern Sie sie im Cache, um eine optimale Leistung zu erzielen. Er hinterlässt andere Teile der App unkompiliert, bis sie tatsächlich verwendet werden.

Neben der Verbesserung der Leistung in wichtigen Teilen der App Die Kompilierung hilft dabei, den Arbeitsspeicherbedarf einer App insgesamt zu reduzieren, einschließlich zugehöriger Binärdateien. Diese Funktion ist besonders auf Geräten mit wenig Arbeitsspeicher wichtig.

ART verwaltet die profilgestützte Zusammenstellung so, dass die Auswirkungen auf die Akku des Geräts. Eine Vorkompilierung erfolgt nur, wenn das Gerät inaktiv ist und Akku zu schonen und Zeit und Akku zu sparen, indem Sie diese Arbeit im Voraus erledigen.

Schneller Pfad zur App-Installation

Einer der größten Vorteile des JIT-Compilers von ART ist die Geschwindigkeit der App Installationen und Systemupdates. Sogar große Apps, für die nur wenige Minuten benötigt wurden, unter Android 6.0 zu optimieren und zu installieren. Sekunden. Systemupdates erfolgen außerdem schneller, da es keinen weiteren Optimierungsschritt gibt.

Stromsparmodus unterwegs...

Mit Android 6.0 wurde der Stromsparmodus eingeführt, ein Systemmodus, der Apps CPU- und Netzwerkaktivitäten, wenn das Gerät inaktiv ist, z. B. wenn es auf einem Tisch oder in einer Schublade.

In Android 7.0 geht der Stromsparmodus jetzt noch einen Schritt weiter und schont den Akku unterwegs. Jedes Mal, wenn das Display eine Zeit lang ausgeschaltet und das Gerät vom Stromnetz getrennt ist, Der Stromsparmodus wendet einen Teil der bekannten CPU- und Netzwerkeinschränkungen auf Apps an. So können Nutzer den Akku schonen, selbst wenn sie ihr Gerät in der Hand haben. Taschen.

Illustration, wie der Stromsparmodus eine erste Ebene von Einschränkungen für Systemaktivitäten anwendet, um die Akkulaufzeit zu verbessern

Abbildung 3: Der Stromsparmodus wird jetzt angewendet um die Akkulaufzeit zu verlängern, auch wenn das Gerät nicht steht.

Kurz nachdem das Display sich im Akkubetrieb ausschaltet, wird der Stromsparmodus aktiviert. schränkt den Netzwerkzugriff ein und verschiebt Jobs und Synchronisierungen. Während kurzer Wartung ist Netzwerkzugriff erlaubt und alle ausgesetzten Jobs/Syncs ausgeführt werden. Wenn Sie das Display einschalten oder das Gerät anschließen, den Stromsparmodus zu beenden.

Das Gerät steht wieder nicht zur Verfügung, während der Bildschirm ausgeschaltet und eine Weile im Akkubetrieb ist. angewendet, wendet der Stromsparmodus alle CPU- und Netzwerkbeschränkungen auf PowerManager.WakeLock-, AlarmManager-Alarme und GPS-/WLAN-Scans.

Die Best Practices für die Anpassung deiner App an den Stromsparmodus sind die gleichen, egal ob die Gerät bewegt wird oder nicht. Wenn Sie Ihre App bereits aktualisiert haben, um den Stromsparmodus zu aktivieren. Falls nicht, beginnen Sie mit der Anpassung App in den Stromsparmodus versetzen.

Projekt Svelte: Hintergrundoptimierungen

Project Svelte ist ein fortlaufendes Bestreben, die RAM-Nutzung durch Systeme und Apps zu minimieren. auf allen Android-Geräten der Welt. In Android 7.0 können Sie Svelte konzentriert sich darauf, die Ausführung von Apps im Hintergrund zu optimieren.

Die Hintergrundverarbeitung ist ein wesentlicher Bestandteil der meisten Apps. Bei richtiger Handhabung können Sie eine hervorragende Nutzererfahrung bieten – sofort, schnell und kontextbewusst. Bei falscher Handhabung kann die Hintergrundverarbeitung unnötig RAM verbrauchen (und Akku) und beeinträchtigen die Systemleistung anderer Apps.

Seit Android 5.0 ist JobScheduler bei der Arbeit im Hintergrund auf eine sinnvolle Weise für Nutzende zu machen. Apps können Aufträge planen, während das System diese auf der Grundlage Speicher-, Energie- und Verbindungsbedingungen. JobScheduler bietet Kontrolle und und wir möchten, dass sie von allen Apps genutzt wird.

Eine weitere gute Option ist GCMNetworkManager, Teil der Google Play-Dienste, die bietet eine ähnliche Jobplanung, die mit den Legacy-Versionen von Android

Wir erweitern JobScheduler und GCMNetworkManager, um mehr von Ihre Anwendungsfälle. Unter Android 7.0 können Sie jetzt Änderungen der Contentanbieter abstimmen. Gleichzeitig beginnen wir, einige der älteren Muster, die die Systemleistung beeinträchtigen können, insbesondere auf Geräten mit wenig Arbeitsspeicher.

In Android 7.0 entfernen wir drei häufig verwendete implizite Broadcasts: CONNECTIVITY_ACTION, ACTION_NEW_PICTURE und ACTION_NEW_VIDEO, da diese den Hintergrundprozesse mehrerer Apps gleichzeitig und belasten den Speicher und den Akku. Wenn und eure App diese erhält, nutze Android 7.0, um Migrieren Sie stattdessen zu JobScheduler und zugehörigen APIs.

Sehen Sie sich den Hintergrund Weitere Informationen finden Sie in der Dokumentation zu Optimierungen.

Oberflächenansicht

Android 7.0 ermöglicht synchrone Bewegungen in SurfaceView -Klasse, die eine bessere Akkuleistung bietet als TextureView in bestimmten Fällen: Beim Rendern von Videos oder 3D-Inhalte, Apps mit Scrollen und die Position von animierten Videos verbrauchen weniger Energie: SurfaceView als bei TextureView.

Die Klasse SurfaceView ermöglicht akkueffizienteres Zusammensetzen auf da das Display in dedizierter Hardware integriert ist, getrennt von der App Fensterinhalt. Daher sind weniger Zwischenschritte Kopien als TextureView.

Die Inhaltsposition eines SurfaceView-Objekts wird jetzt synchron aktualisiert. mit dem App-Inhalt. Ein Ergebnis dieser Änderung ist, Übersetzungen oder Skalierungen eines Videos, das in einem SurfaceView abgespielt wird keine schwarzen Balken mehr neben der sich bewegenden Ansicht erzeugt.

Ab Android 7.0 empfehlen wir Ihnen dringend, Strom zu sparen, indem Sie SurfaceView statt TextureView.

Datensparmodus

Datensparmodus in den Einstellungen

Abbildung 4: Datensparmodus in den Einstellungen.

Die Kosten für einen Datentarif über die Lebensdauer eines Mobilgeräts sind in der Regel die Kosten für das Gerät selbst übersteigt. Für viele Nutzer sind mobile Daten die sie einsparen möchten.

Mit Android 7.0 wird der Datensparmodus eingeführt, ein neuer Systemdienst, der die die mobile Datennutzung durch Apps, z. B. durch Roaming, gegen Ende des Abrechnungszeitraums, oder in einem kleinen Prepaid-Datenpaket. Mit dem Datensparmodus können Nutzer festlegen, nutzen mobile Daten und ermöglichen Entwicklern einen effizienteren Dienst, wenn Der Energiesparmodus ist aktiviert.

Wenn ein Nutzer den Datensparmodus in den Einstellungen aktiviert und das Gerät In einem kostenpflichtigen Netzwerk blockiert das System die Nutzung von Hintergrunddaten und signalisiert Apps nach Möglichkeit weniger Daten im Vordergrund zu verwenden, z. B. Bitrate beim Streamen, Reduzieren der Bildqualität, Verschieben von optimistischem Precaching und so weiter. Nutzer können bestimmten Apps erlauben, gemessene Hintergrunddaten zuzulassen auch bei aktiviertem Datensparmodus.

Android 7.0 erweitert die ConnectivityManager um Apps um eine die Möglichkeit, die Datensparmodus-Einstellungen des Nutzers und Monitoring Änderungen der Einstellungen. Alle Apps sollten prüfen, ob der Nutzer Daten aktiviert hat Sparen und versuchen Sie, die Datennutzung im Vorder- und Hintergrund zu begrenzen.

Vulkan API

Unter Android 7.0 wird VulkanTM, eine neue API für das 3D-Rendering, in die Plattform integriert. Gefällt mir OpenGLTM Spanien, ist Vulkan ein offener Standard für 3D-Grafiken und -Rendering, der von der Khronos Group.

Vulkan wurde von Grund auf so entwickelt, dass der CPU-Aufwand im Treiber minimiert wird. und ermöglichen es Ihrer Anwendung, den GPU-Betrieb direkter zu steuern. Vulkan und ermöglicht eine bessere Parallelisierung, da mehrere Threads wie z. B. einen Befehlspuffer gleichzeitig konstruieren.

Die Vulkan-Entwicklertools und -Bibliotheken wurden in das Android 7.0 SDK integriert. Sie umfassen:

  • Header
  • Validierungsebenen (Debug-Bibliotheken)
  • SPIR-V-Shader-Compiler
  • Kompilierungsbibliothek für SPIR-V-Laufzeit-Shader

Vulkan ist nur für Apps auf Geräten mit Vulkan-fähiger Hardware verfügbar. wie Nexus 5X, Nexus 6P und Nexus Player. Wir arbeiten eng mit unseren um Vulkan so schnell wie möglich auf weiteren Geräten zur Verfügung zu stellen.

Weitere Informationen finden Sie in der API-Dokumentation.

Tile-API für Schnelleinstellungen

Kacheln für Schnelleinstellungen in der Benachrichtigungsleiste

Abbildung 5: Kacheln für Schnelleinstellungen in der Benachrichtigungsleiste

Die Schnelleinstellungen sind eine beliebte und einfache Möglichkeit, wichtige Einstellungen und Aktionen anzuzeigen. direkt über die Benachrichtigungsleiste. In Android 7.0 haben wir den Umfang der Schnelleinstellungen, um sie noch nützlicher und praktischer zu machen.

Wir haben mehr Platz für zusätzliche Kacheln für die Schnelleinstellungen hinzugefügt, damit Nutzer durch Wischen nach links oder rechts im paginierten Displaybereich aufrufen. Außerdem haben wir Nutzer können festlegen, welche Kacheln für die Schnelleinstellungen angezeigt werden und wo sie sich befinden. angezeigt werden – Benutzer können Kacheln per Drag-and-drop hinzufügen oder verschieben.

Für Entwickler wird mit Android 7.0 außerdem eine neue API hinzugefügt, mit der Sie Ihre eigenen Kacheln für Schnelleinstellungen, über die Nutzer schnell auf wichtige Steuerelemente und Aktionen in Ihrer App zugreifen können.

Die Kacheln für Schnelleinstellungen sind für Steuerelemente oder Aktionen reserviert, die entweder dringend erforderlich sind oder häufig verwendet werden, und sollten nicht als Kürzel für eine App zu starten.

Nachdem Sie Ihre Kacheln definiert haben, können Sie sie den Nutzern anzeigen, die dann per Drag-and-drop zu den Schnelleinstellungen.

Informationen zum Erstellen einer App-Kachel finden Sie in der Referenzdokumentation für Tile.

Nummernblockierung

Android 7.0 unterstützt jetzt die Nummernblockierung in der Plattform und bietet eine Framework-API, damit Dienstanbieter eine Liste gesperrter Nummern verwalten können. Die Standard-SMS-App, Standard-Telefon-App und Mobilfunkanbieter-Apps können Daten abrufen und in die Liste der blockierten Zahlen schreiben. Andere Apps haben keinen Zugriff auf die Liste.

Durch die Nummernblockierung zu einer Standardfunktion der Plattform bietet Android eine einheitliche Methode, mit der Apps die Nummernblockierung für eine Vielzahl von Geräte. Apps haben unter anderem folgende Vorteile:

  • Bei Anrufen blockierte Nummern werden auch bei SMS blockiert
  • Blockierte Nummern können über die Funktionen zum Zurücksetzen und Zurücksetzen zurückgesetzt werden. Funktion wiederherstellen
  • Die Liste blockierter Nummern kann von mehreren Apps verwendet werden

Die Integration der Mobilfunkanbieter-App über Android ermöglicht es Mobilfunkanbietern, Liste blockierter Nummern auf dem Gerät lesen und dienstseitig blockieren um zu verhindern, dass unerwünschte Anrufe und SMS den Nutzer erreichen. z. B. über einen VoIP-Endpunkt oder Telefone für die Weiterleitung.

Weitere Informationen finden Sie in der Referenzdokumentation zu BlockedNumberContract

Anruf-Screening

Mit Android 7.0 kann die Standard-Telefon-App eingehende Anrufe filtern. Das Smartphone Dazu wird in der App die neue CallScreeningService implementiert, mit der die Telefon-App eine Reihe von Aktionen Call.Details des eingehenden Anrufs, z. B.:

  • Eingehenden Anruf ablehnen
  • Anruf in der Anrufliste nicht zulassen
  • Dem Nutzer keine Benachrichtigung für den Anruf anzeigen

Weitere Informationen finden Sie in der Referenzdokumentation zu CallScreeningService

Unterstützung mehrerer Sprachen, mehr Sprachen

Unter Android 7.0 können Nutzer jetzt mehrere Sprachen in den Einstellungen, um zweisprachige Anwendungsfälle besser zu unterstützen. Apps können Folgendes verwenden: eine neue API, um die vom Nutzer ausgewählten Gebietsschemata abzurufen und dann komplexere Nutzererfahrung bei Nutzern mit mehreren Sprachen, z. B. die Anzeige von Suchergebnissen in in mehreren Sprachen angeboten wird und Webseiten nicht in eine Sprache übersetzt werden, die Nutzende bereits kennen.

Neben der Unterstützung mehrerer Sprachen wird mit Android 7.0 auch die Sprachenauswahl erweitert. den Nutzenden zur Verfügung stehen. Es werden jeweils mehr als 25 Varianten für häufig verwendete Sprachen wie Englisch, Spanisch, Französisch und Arabisch. Außerdem werden partielle Unterstützung für mehr als 100 neue Sprachen.

Apps können die Liste der vom Nutzer eingestellten Gebietsschemata abrufen, indem sie folgenden Befehl aufrufen: LocaleList.GetDefault() Android 7.0 ist jetzt und dabei ändert, wie Ressourcen aufgelöst werden. Testen Sie, ob Ihre Apps wie erwartet mit der neuen Logik zur Ressourcenauflösung funktioniert.

Um mehr über das neue Verhalten bei der Ressourcenbewältigung und die Best Practices zu erfahren, finden Sie unter Mehrsprachiger Support.

Neue Emojis

Mit Android 7.0 werden zusätzliche Emojis und Emoji-Funktionen eingeführt, darunter: Emojis für Hautton und Unterstützung für Abwechslung Selektoren. Wenn Ihre App Emojis unterstützt, Beachte die folgenden Richtlinien, um diese Emoji-Funktionen nutzen zu können.

  • Prüfe, ob ein Gerät ein Emoji enthält, bevor du es einfügst. Um zu prüfen, welche Emojis in der Systemschriftart ein, verwenden Sie die Methode hasGlyph(String).
  • Prüfen Sie, ob ein Emoji Variantenselektoren unterstützt. Mit der Variantenauswahl können Sie bestimmte Emojis in Farbe oder Schwarz-Weiß darstellen. Auf Mobilgeräten sollten Emojis eher in Farbe und nicht in Schwarz-Weiß dargestellt werden. Sie können jedoch Wenn Ihre App Emojis inline mit dem Text anzeigt, sollte die Schwarz-Weiß-Variante verwendet werden. Mit der Variantenauswahl können Sie feststellen, ob ein Emoji eine Variante hat. Eine vollständige Liste der Zeichen mit Variationen finden Sie in der Emoji-Variantensequenzen der Seite. <ph type="x-smartling-placeholder"></ph> Unicode-Dokumentation zu Varianten.
  • Prüfe, ob ein Emoji den Hautton unterstützt. Unter Android 7.0 können Nutzer die dargestellten Hautton von Emojis nach Bedarf anpassen. Tastatur-Apps sollten visuelle Elemente bieten Emojis mit mehreren Hauttönen, die Nutzern die Möglichkeit bieten sollen, den gewünschten Hautton auswählen. Um zu ermitteln, welche System-Emojis Hauttonmodifikatoren, verwende die hasGlyph(String) . Sie können feststellen, welche Emojis Hauttöne verwenden, indem Sie die <ph type="x-smartling-placeholder"></ph> Unicode-Dokumentation.

ICU4J-APIs in Android

Android 7.0 bietet nun einen Teil der ICU4J APIs im Android-Framework unter android.icu-Paket. Die Migration ist einfach und umfasst einfach vom Namespace com.java.icu zu android.icu. Wenn Sie bereits ein ICU4J-Bundle in Ihrem Apps, die zu den android.icu APIs wechseln, die in der Android-App zu erheblichen Einsparungen bei der APK-Größe führen.

Weitere Informationen zu den Android ICU4J APIs finden Sie unter ICU4J-Support.

WebView

Chrome + WebView – im Team

Ab Chrome-Version 51 für Android 7.0 und höher wird das Chrome APK auf Ihrem Gerät wird verwendet, um Android System WebViews bereitzustellen und zu rendern. Dieser Ansatz verbessert das Gedächtnis auf dem Gerät selbst und reduziert außerdem die für die WebView auf dem neuesten Stand (das eigenständige WebView-APK wird nicht mehr aktualisiert) solange Chrome aktiviert bleibt).

Sie können Ihren WebView-Anbieter auswählen, indem Sie Entwickleroptionen und und wählen Sie WebView-Implementierung aus. Sie können alle kompatiblen Die auf Ihrem Gerät installierte Chrome-Version (Entwickler-, Beta- oder stabile Version) oder der eigenständiges WebView-APK, das als WebView-Implementierung dient.

Multiprocess

Ab Chrome-Version 51 unter Android 7.0 führt WebView Webinhalte in einer separater Sandbox-Prozess, wenn die Entwickleroption „Multiprocess WebView“ aktiviert ist.

Feedback zur Kompatibilität und Laufzeitleistung in N bevor Sie Multiprocess WebView in einer zukünftigen Android-Version aktivieren. In dieser Version, Regressionen der Startzeit, Gesamtarbeitsspeichernutzung und Software zu erwarten ist.

Falls Sie unerwartete Probleme im Multiprozessmodus feststellen, . Bitte wenden Sie sich über den Fehler-Tracker für Chromium an das WebView-Team.

JavaScript wird vor dem Seitenaufbau ausgeführt

Ab Apps, die auf Android 7.0 ausgerichtet sind, wird der JavaScript-Kontext zurückgesetzt wenn eine neue Seite geladen wird. Derzeit wird der Kontext für den in einer neuen WebView-Instanz geladen wird.

Entwickler, die JavaScript in WebView einfügen möchten, sollten die Methode nachdem die Seite geladen wurde.

Standortbestimmung für unsichere Ursprünge

Ab Android 7.0-Apps wird die Geolocation API nur noch In sicheren Ursprüngen (über HTTPS) zulässig Diese Richtlinie dient dem Schutz personenbezogene Daten von Nutzern zu schützen, wenn sie eine unsichere Verbindung verwenden.

Mit WebView Beta testen

WebView wird regelmäßig aktualisiert. Daher empfehlen wir Ihnen, die Kompatibilität zu testen. über den Betakanal von WebView regelmäßig mit Ihrer App interagieren. So beginnen Sie mit dem Testen: vorab veröffentlichte Versionen von WebView für Android 7.0 herunterladen und installieren. Chrome Dev oder Chrome Beta und wählen Sie diese als WebView-Implementierung unter Entwickleroptionen wie oben beschrieben. Bitte melde Probleme über Chromium Fehler-Tracker, damit wir sie beheben können, bevor eine neue Version von WebView veröffentlicht.

OpenGLTM ES 3.2 API

Unter Android 7.0 werden Framework-Schnittstellen und Plattformunterstützung für OpenGL ES 3.2 hinzugefügt, darunter:

  • Alle Erweiterungen aus dem Android Extension Pack (AEP) mit Ausnahme von EXT_texture_sRGB_decode
  • Gleitkomma-Framepuffer für HDR und verzögerte Schattierung.
  • BaseVertex zeichnet Aufrufe für ein besseres Batching und Streaming.
  • Robuste Pufferzugriffssteuerung zur Reduzierung des WebGL-Aufwands.

Die Framework API für OpenGL ES 3.2 unter Android 7.0 wird mit dem Klasse GLES32. Deklarieren Sie bei Verwendung von OpenGL ES 3.2 die in Ihrer Manifestdatei mit dem <uses-feature>-Tag und Das Attribut android:glEsVersion

Informationen zur Verwendung von OpenGL ES, z. B. dazu, wie Sie den unterstützte OpenGL ES-Version zur Laufzeit finden Sie im Leitfaden zur OpenGL ES API.

Android TV-Aufzeichnung

Mit Android 7.0 ist es jetzt möglich, Inhalte vom Android TV-Eingang aufzuzeichnen und wiederzugeben. über neue Aufzeichnungs-APIs. Auf bestehende zeitversetzte Nutzung aufbauen APIs und TV-Eingabedienste steuern, welche Kanaldaten wie aufgezeichnete Sitzungen werden gespeichert und Nutzerinteraktionen mit aufgezeichneten Inhalten werden verwaltet.

Weitere Informationen findest du unter Android TV Recording APIs.

Android for Work

Android for Work bietet viele neue Funktionen und APIs für Geräte mit Android 7.0. Einige der wichtigsten Funktionen finden Sie unten. Eine vollständige Liste der Funktionen finden Sie unter Android Enterprise-Funktion Liste enthalten.

Sicherheitsherausforderung des Arbeitsprofils

Profilinhaber, die auf das N SDK ausgerichtet sind für Apps, die in dem Arbeitsprofil. Die Aufgabe wird angezeigt, wenn ein Nutzer versucht, die Aufgabe zu öffnen. geschäftlichen Apps. Bei erfolgreicher Ausführung der Sicherheitsabfrage wird das und entschlüsselt es bei Bedarf. Für Profilinhaber: ACTION_SET_NEW_PASSWORD fordert den Nutzer auf, eine Arbeit festzulegen und ACTION_SET_NEW_PARENT_PROFILE_PASSWORD Aufforderungen Der Nutzer hat die Möglichkeit, eine Gerätesperre einzurichten.

Profilinhaber können unterschiedliche Richtlinien für Sicherheitscodes für die geschäftliche Herausforderung festlegen z. B. wie lang die PIN sein muss oder ob ein Fingerabdruck verwendet werden kann. zum Entsperren des Profils) mit dem setPasswordQuality(), setPasswordMinimumLength() und verwandte Methoden. Das Profil kann die Gerätesperre auch über die DevicePolicyManager -Instanz, die von der neuen Methode getParentProfileInstance() zurückgegeben wurde. Außerdem können Profilinhaber den Anmeldebildschirm für die der neuen setOrganizationColor() und setOrganizationName()-Methoden.

Arbeitsprofil deaktivieren

Auf Geräten mit Arbeitsprofil können Nutzer den Arbeitsmodus aktivieren und deaktivieren. Wenn der Arbeitsmodus Der verwaltete Nutzer wird vorübergehend deaktiviert, wodurch das Arbeitsprofil deaktiviert wird. Apps, Synchronisierung im Hintergrund und Benachrichtigungen. Dazu gehört auch der Profilinhaber . Wenn der Arbeitsmodus deaktiviert ist, zeigt das System einen dauerhaften Status an um den Nutzer daran zu erinnern, dass er keine geschäftlichen Apps starten kann. Launcher zeigt an, dass geschäftliche Apps und Widgets nicht zugänglich sind.

Durchgehend aktives VPN

Geräte- und Profilinhaber können dafür sorgen, dass geschäftliche Apps immer verbunden werden über ein bestimmtes VPN. Das System startet dieses VPN automatisch nach der das Gerät startet.

Neue DevicePolicyManager-Methoden sind setAlwaysOnVpnPackage() und getAlwaysOnVpnPackage()

Weil VPN-Dienste ohne App direkt an das System gebunden werden können müssen VPN-Clients neue Einstiegspunkte für das durchgehend aktive VPN verarbeiten. Als Dienste werden dem System durch einen Intent-Filterabgleich Aktion android.net.VpnService.

Nutzer können auch durchgehend aktive VPN-Clients manuell festlegen, VPNService Methoden mit Einstellungen > Mehr > Vpn. Option zum Aktivieren des durchgehend aktiven VPNs unter „Einstellungen“ ist nur verfügbar, wenn der VPN-Client auf API-Level 24 ausgerichtet ist.

Benutzerdefinierte Bereitstellung

Eine Anwendung kann die Nutzerverwaltung für Profilinhaber und Geräteinhaber anpassen mit Unternehmensfarben und -logos. DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR Anpassungen Flow-Farbe. DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI den Ablauf mit einem Firmenlogo anpasst.

Verbesserungen der Bedienungshilfen

Unter Android 7.0 finden Sie jetzt direkt auf dem Begrüßungsbildschirm Geräteeinrichtung. So ist es für Nutzer viel einfacher, Bedienungshilfen wie Vergrößerungs- und Schriftarten Displaygröße und TalkBack.

Da diese Bedienungshilfen besser platziert werden, mit höherer Wahrscheinlichkeit Ihre App testen. Apps testen diese Einstellungen aktiviert haben. Du kannst sie unter „Einstellungen“ > Zugänglichkeits-

In Android 7.0 können Bedienungshilfen jetzt auch Nutzer mit motorischen den Bildschirm zu berühren. Die neue API ermöglicht das Erstellen von Diensten mit wie Gesichtserkennung, Eyetracking, Punktscan usw., die Anforderungen dieser Nutzenden zu erfüllen.

Weitere Informationen finden Sie in der Referenzdokumentation zu GestureDescription

Direct Boot

Der direkte Start verkürzt die Startzeiten und ermöglicht die Registrierung Die Funktionalität von Apps ist auch nach einem unerwarteten Neustart eingeschränkt. Wenn z. B. ein verschlüsseltes Gerät neu startet, während sich der Nutzer im Ruhemodus befindet, registrierte Alarme, Nachrichten und eingehende Anrufe können jetzt weiterhin wie gewohnt zu präsentieren. Das bedeutet auch, dass Bedienungshilfen auch direkt nach einem Neustart verfügbar.

Der Direct Boot-Modus nutzt die Vorteile der dateibasierten Verschlüsselung in Android 7.0. um detaillierte Verschlüsselungsrichtlinien für System- und App-Daten zu ermöglichen. Das System verwendet einen mit Geräten verschlüsselten Speicher für ausgewählte Systemdaten und explizit registrierten App-Daten. Standardmäßig wird für alle andere Systemdaten, Nutzerdaten, Apps und App-Daten.

Beim Starten startet das System in einem eingeschränkten Modus mit Zugriff auf und ohne allgemeinen Zugriff auf Apps oder Daten. Wenn Sie Komponenten haben, die in diesem Modus ausgeführt werden sollen, können Sie indem Sie im Manifest ein Flag festlegen. Nach dem Neustart wird das System aktiviert. registrierten Komponenten durch Senden des LOCKED_BOOT_COMPLETED die Nutzerabsicht verstehen. Das System stellt sicher, dass registrierte, mit dem Gerät verschlüsselte App-Daten verfügbar sind vor dem Entsperren. Alle anderen Daten sind erst verfügbar, wenn der Nutzer die Sperre bestätigt hat Bildschirmanmeldedaten verwenden, um sie zu entschlüsseln.

Weitere Informationen finden Sie unter Direct Boot.

Schlüsselattestierung

Mit Android 7.0 wurde die Schlüsselattestierung eingeführt, ein neues Sicherheitstool, stellen Sie sicher, dass die Schlüsselpaare in der hardwaregestützten Hardware eines Geräts Schlüsselspeicher die vertraulichen Informationen, die Ihre App verwendet werden. Wenn Sie dieses Tool verwenden, gewinnen Sie mehr Vertrauen, dass Ihre App interagiert mit Schlüsseln, die sich in sicherer Hardware befinden, selbst wenn das Gerät ausgeführt wird, gerootet ist. Wenn Sie Schlüssel aus dem hardwaregestützten Schlüsselspeicher verwenden in Ihren Apps verwenden, sollten Sie dieses Tool verwenden, vor allem, wenn Sie die Tasten um vertrauliche Informationen in Ihrer App zu verifizieren.

Mit der Schlüsselattestierung können Sie prüfen, ob ein RSA- oder EC-Schlüsselpaar die im hardwaregestützten Schlüsselspeicher eines Geräts im Trusted Execution Environment (TEE). Das Tool ermöglicht Ihnen auch die Verwendung eines Diensten außerhalb des Geräts, wie etwa dem Backend-Server Ihrer App, die Verwendung und die Gültigkeit des Schlüsselpaars strikt überprüfen. Diese Funktionen bieten eine zusätzliche Sicherheitsstufe, die das Schlüsselpaar schützt, selbst wenn jemand das Gerät gerootet oder die Sicherheit der Android-Plattform gefährden auf dem Gerät.

Hinweis : Nur wenige Geräte mit Android 7.0 Schlüsselattestierung auf Hardwareebene wird unterstützt. Alle anderen Geräte mit Android 7.0 Verwenden Sie stattdessen die Schlüsselattestierung auf Softwareebene. Vor dem Bestätigen der Properties der hardwaregestützten Schlüssel eines Geräts in einer Produktionsumgebung Prüfen Sie, ob das Gerät die Attestierung von Schlüsseln auf Hardwareebene unterstützt. Bis sollten Sie prüfen, ob die Kette des Attestierungszertifikats einen Stamm das vom Google-Attestierungs-Stammschlüssel signiert ist, und dass der attestationSecurityLevel-Element im key Beschreibung ist auf die Sicherheit der vertrauenswürdigen Umgebung festgelegt.

Weitere Informationen finden Sie in der Schlüsselattestierung Entwicklerdokumentation.

Konfiguration der Netzwerksicherheit

Unter Android 7.0 können Apps das Verhalten ihrer sicheren (HTTPS, TLS) Verbindungen sicher und ohne Codeänderung mithilfe des deklarativen Netzwerksicherheitskonfiguration fehleranfällige programmatische APIs (z.B. X509TrustManager).

Unterstützte Funktionen:

  • Benutzerdefinierte Trust-Anchors. Lässt eine Anwendung anpassen, Zertifizierungsstellen (Certificate Authorities, CAs) sind für ihre sicheren Verbindungen vertrauenswürdig. Für z. B. wenn bestimmte selbstsignierte Zertifikate oder eine eingeschränkte Gruppe öffentlicher Zertifizierungsstellen als vertrauenswürdig eingestuft werden.
  • Überschreibungen, die nur zur Fehlerbehebung dienen: Ermöglicht einem Anwendungsentwickler die sichere Fehlerbehebung sichere Verbindungen ihrer Anwendung zu sichern, ohne die installierte Anwendung zu gefährden. und die Basis verwenden.
  • Deaktivierung von Klartext-Traffic. Ermöglicht es einer Anwendung, sich vor die versehentliche Nutzung von Klartext-Datenverkehr.
  • Anpinnen von Zertifikaten: Eine erweiterte Funktion, mit der eine Anwendung festlegen, welche Serverschlüssel für sichere Verbindungen vertrauenswürdig sind.

Weitere Informationen finden Sie unter Netzwerksicherheit konfigurieren.

Standardmäßige vertrauenswürdige Zertifizierungsstelle

Standardmäßig vertrauen Apps für Android 7.0 nur vom System bereitgestellten Zertifikaten und vertrauen der vom Nutzer hinzugefügten Zertifizierungsstelle nicht mehr. Apps für Android 7.0 (API-Level 24), die den vom Nutzer hinzugefügten Zertifizierungsstellen vertrauen möchten, die Konfiguration der Netzwerksicherheit zu gibt an, wie Nutzer-CAs vertrauenswürdig sein sollen.

APK-Signaturschema v2

Mit Android 7.0 wird das APK-Signaturschema v2 eingeführt, ein neues App-Signaturschema, das schnellere App-Installation und mehr Schutz vor nicht autorisierten Änderungen an APK-Dateien. Standardmäßig werden Android Studio 2.2 und die Das Plug-in für Gradle 2.2 signiert Ihre App mit dem APK-Signaturschema v2 und dem traditionellen Signaturschema, das die JAR-Signatur verwendet.

Obwohl wir empfehlen, das APK-Signaturschema v2 auf Ihre App anzuwenden, wird dieses neue ist nicht obligatorisch. Wenn Ihre App beim Verwenden eines APK nicht korrekt erstellt wird Signaturschema v2 haben, können Sie das neue Schema deaktivieren. Deaktivierungsprozess Android Studio 2.2 und das Android-Plug-in für Gradle 2.2 die nur das herkömmliche Signaturschema verwendet. Um nur mit dem herkömmliches Schema: Öffnen Sie die Datei build.gradle auf Modulebene und füge deiner Release-Signatur die Zeile v2SigningEnabled false hinzu Konfiguration:

  android {
    ...
    defaultConfig { ... }
    signingConfigs {
      release {
        storeFile file("myreleasekey.keystore")
        storePassword "password"
        keyAlias "MyReleaseKey"
        keyPassword "password"
        v2SigningEnabled false
      }
    }
  }

Achtung : Wenn Sie Ihre App mit einem APK signieren Signaturschema v2 und weitere Änderungen an der App, der App-Signatur, vornehmen wird ungültig gemacht. Verwenden Sie daher Tools wie zipalign. bevor du deine App mit dem APK-Signaturschema v2 signierst.

Weitere Informationen finden Sie in den Android Studio-Dokumenten, in denen beschrieben wird, wie Sie <ph type="x-smartling-placeholder"></ph> eine App in Android Studio signieren und konfigurieren Build-Datei zum Signieren von Apps mit dem Android-Plug-in für Gradle

Auf einen Bereich reduzierter Verzeichniszugriff

In Android 7.0 können Apps neue APIs verwenden, um den Zugriff auf bestimmte externe Speicherverzeichnisse, einschließlich Verzeichnissen auf Wechseldatenträgern wie SD Karten. Die neuen APIs vereinfachen den Zugriff Ihrer Anwendung auf Standard- externen Speicherverzeichnissen wie dem Verzeichnis Pictures. Apps z. B. Foto-Apps, können diese APIs nutzen, READ_EXTERNAL_STORAGE mit Zugriff auf den gesamten Speicher oder das Storage Access Framework, womit der Nutzer des Verzeichnisses.

Außerdem vereinfachen die neuen APIs die Schritte, die Nutzer zur Erteilung externer Speicherzugriff auf deine App. Wenn Sie die neuen APIs verwenden, verwendet das System eine einfache Benutzeroberfläche für Berechtigungen, die klar angibt, in welchem Verzeichnis sich die Anwendung befindet auf die der Zugriff angefordert wird.

Weitere Informationen finden Sie in der Auf einen Geltungsbereich Entwicklerdokumentation zum Verzeichniszugriff.

Hilfe für Tastenkombinationen

Unter Android 7.0 kann der Nutzer durch Drücken von Meta + / eine Tastenkombinationen, auf dem alle verfügbaren Tastenkombinationen angezeigt werden vom System und von der App. Das System ruft diese Verknüpfungen automatisch über das Menü der App, sofern die Verknüpfungen vorhanden sind. Sie können kannst du auch eigene, fein abgestimmte Shortcut-Listen für den Bildschirm bereitstellen. Sie können Folgendes tun: indem Sie die Methode onProvideKeyboardShortcuts() überschreiben.

Hinweis:Der Metaschlüssel ist nicht bei allen Tastaturen: auf einer Mac-Tastatur die Befehlstaste, auf der Windows-Tastatur die Windows-Taste, Beim Pixel C und bei den ChromeOS-Tastaturen ist das die Suchtaste.

Wenn Sie den Keyboard Shortcuts Helper von überall in Ihrer App aus auslösen möchten, rufen Sie requestShowKeyboardShortcuts() aus der entsprechenden Aktivität.

Custom Pointer API

Mit Android 7.0 wird die Custom Pointer API eingeführt, mit der Sie die Darstellung, Sichtbarkeit und Verhalten des Zeigers. Diese Funktion ist besonders nützlich, wenn Nutzende eine Maus oder ein Touchpad zur Interaktion UI-Objekten. Der Standardzeiger verwendet ein Standardsymbol. Diese API umfasst auch erweiterte Funktionen wie das Ändern der Darstellung des Zeigersymbols basierend auf bei bestimmten Maus- oder Touchpadbewegungen.

Wenn du ein Zeigersymbol festlegen möchtest, überschreibe onResolvePointerIcon() der Klasse View an. Bei dieser Methode wird ein PointerIcon-Objekts, um das Symbol zu zeichnen, das einer ein bestimmtes Bewegungsereignis an.

Sustained Performance API

Bei Apps mit langer Laufzeit kann die Leistung stark schwanken, drosselt System-on-Chip-Engines, während Gerätekomponenten Temperaturgrenzwerte. Diese Schwankung stellt ein bewegliches Ziel für die App dar, von leistungsstarken Apps mit langer Ausführungszeit.

Um diese Einschränkungen zu umgehen, unterstützt Android 7.0 Modus für kontinuierliche Leistung, mit dem OEMs Hinweise zu Funktionen zur Geräteleistung für Apps mit langer Ausführungszeit. App-Entwickler können diese Hinweise nutzen, um Apps für vorhersehbare, vorhersehbare die Geräteleistung über einen längeren Zeitraum hinweg konstant zu halten.

App-Entwickler können diese neue API unter Android 7.0 auf Nur für Nexus 6P-Geräte. Um diese Funktion zu nutzen, Flag für kontinuierliches Leistungsfenster für das Zeitfenster festlegen die Sie im Modus für kontinuierliche Leistung ausführen möchten. Setzen Sie diese Markierung mithilfe der Window.setSustainedPerformanceMode()-Methode. Das System hat automatisch deaktiviert diesen Modus, wenn das Fenster nicht mehr im Fokus ist.

VR-Unterstützung

Android 7.0 bietet Plattformunterstützung und Optimierungen für einen neuen VR-Modus, damit Entwickler qualitativ hochwertige VR-Erlebnisse für Nutzer zu entwickeln. Es gibt eine Reihe von Leistungskennzahlen, Verbesserungen, darunter der Zugriff auf einen exklusiven CPU-Kern für VR-Apps. Innerhalb Ihrer Apps profitieren Sie von intelligentem Head-Tracking, und Stereo-Benachrichtigungen, die im VR-Modus funktionieren. Vor allem bietet Android 7.0 Grafiken mit sehr niedriger Latenz. Umfassende Informationen zum Erstellen von VR-Apps für Android 7.0 findest du Weitere Informationen finden Sie unter Google VR SDK für Android.

In Android 7.0 können Entwickler von Druckdiensten jetzt zusätzliche Informationen zu einzelnen Druckern und Druckaufträgen.

Beim Auflisten einzelner Drucker kann ein Druckdienst jetzt die Einstellungen pro Drucker festlegen auf zwei Arten:

Darüber hinaus können Sie eine Aktivität pro Drucker angeben, um zusätzliche indem du setInfoIntent() aufrufst.

Sie können Fortschritt und Status von Druckaufträgen im Druckauftrag angeben. Benachrichtigung durch Anruf setProgress() und setStatus().

Frame Metrics API

Mit der Frame Metrics API kann eine App das UI-Rendering überwachen die Leistung. Die API bietet diese Möglichkeit, indem eine Streaming-Pub/Sub-API dem Übertragungsframe zur Verfügung gestellt wird Zeitinformationen für das aktuelle Fenster der App. Die zurückgegebenen Daten sind entspricht der Anzeige von adb shell dumpsys gfxinfo framestats, ist jedoch nicht auf die letzten 120 Frames beschränkt.

Sie können die Frame Metrics API verwenden, um die UI auf Interaktionsebene zu messen. Leistung in der Produktion auch ohne USB-Verbindung. Diese API lassen sich Daten mit einer viel höheren Detailgenauigkeit erfassen, adb shell dumpsys gfxinfo Diese höhere Genauigkeit ist möglich, Das System kann Daten für bestimmte Interaktionen in der App erheben. das System keine globale Zusammenfassung der gesamten oder einen globalen Status löschen. Sie können diese Möglichkeit zum Erfassen von Leistungsdaten und Erkennen von Regressionen der UI-Leistung für reale Anwendungsfälle in einer App.

Um ein Fenster zu überwachen, implementieren Sie die Methode OnFrameMetricsAvailableListener.onFrameMetricsAvailable() und registrieren Sie sie in diesem Fenster.

Die API stellt ein FrameMetrics-Objekt bereit, das enthält Zeitdaten, die das Rendering-Subsystem für verschiedene Meilensteine meldet. innerhalb eines Frame-Lebenszyklus. Folgende Messwerte werden unterstützt: UNKNOWN_DELAY_DURATION, INPUT_HANDLING_DURATION, ANIMATION_DURATION, LAYOUT_MEASURE_DURATION, DRAW_DURATION, SYNC_DURATION COMMAND_ISSUE_DURATION, SWAP_BUFFERS_DURATION TOTAL_DURATION und FIRST_DRAW_FRAME.

Virtuelle Dateien

In früheren Android-Versionen konnte deine App den Speicherzugriff verwenden Framework, mit dem Nutzer Dateien aus ihren Cloud Storage-Konten auswählen können, wie Google Drive. Es gab jedoch keine Möglichkeit, Dateien darzustellen, keine direkte Bytecode-Darstellung haben; musste jede Datei eines Eingabestreams.

Android 7.0 fügt dem Speicherzugriff das Konzept virtueller Dateien hinzu Framework. Mit der Funktion „Virtuelle Dateien“ können Sie DocumentsProvider, um Dokument-URIs zurückzugeben, die mit dem Intent ACTION_VIEW verwendet, auch wenn keine direkte Bytecode-Darstellung haben. Mit Android 7.0 können Sie außerdem alternative Formate für virtuelle oder andere Benutzerdateien bereitstellen.

Weitere Informationen zum Öffnen virtueller Dateien findest du unter Öffnen Sie virtuelle Dateien im Leitfaden zu Storage Access Frameworks