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.
Sehen Sie sich die Änderungen am Verhalten von Android 7.0 an, um zu erfahren, in welchen Bereichen sich Plattformänderungen auf Ihre Apps auswirken können.
Weitere Informationen über Informationen zu den Nutzerfunktionen von Android 7.0 finden Sie unter www.android.com.
Unterstützung des Mehrfenstermodus
Mit Android 7.0 führen wir eine neue und lang ersehnte Multitasking-Funktion ein: 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 eine über- einander darstellen. 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.
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.
Es ist ganz einfach, deiner App den Mehrfenstermodus hinzuzufügen und die Einstellungen dafür zu konfigurieren. die die Mehrfensteranzeige unterstützt. 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, sodass 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.
Informationen zum Implementieren der neuen Funktionen finden Sie in der Benachrichtigungen .
Profilgestützte JIT/AOT-Kompilierung
In Android 7.0 haben wir ART um einen Just-in-Time-Compiler (JIT) mit Code-Profiling erweitert, mit dem die Leistung von Android-Apps während der Ausführung kontinuierlich verbessert werden kann. 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 die beste Leistung zu erzielen. Andere Teile der App bleiben 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 Weg 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 für 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 Netzwerkbeschränkungen auf Apps an. So können Nutzer den Akku schonen, selbst wenn sie ihr Gerät in der Hand haben. Taschen.
Kurz nachdem das Display ausgeschaltet wurde, während das Gerät mit Akku betrieben wird, schränkt der Ruhemodus 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.
Wenn sich das Gerät wieder an einem festen Ort befindet, der Bildschirm ausgeschaltet ist und es eine Weile lang mit Akku betrieben wird, werden durch den Ruhemodus die vollen CPU- und Netzwerkeinschränkungen auf PowerManager.WakeLock
, AlarmManager
-Wecker und GPS-/WLAN-Scans angewendet.
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 werden einige der älteren Muster eingestellt, 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
.
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 mit den enthaltenen App-Inhalten aktualisiert. 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, SurfaceView
anstelle von TextureView
zu verwenden, um Strom zu sparen.
Datensparmodus
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 ermöglicht außerdem eine bessere Parallelisierung, da mehrere Threads gleichzeitig Aufgaben wie das Erstellen von Befehlspuffern ausführen können.
Die Vulkan-Entwicklertools und -Bibliotheken wurden in das Android 7.0 SDK integriert. Hierzu gehören:
- 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-kompatibler Hardware verfügbar, z. B. 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
Die Schnelleinstellungen sind eine beliebte und einfache Möglichkeit, wichtige Einstellungen und Aktionen direkt über die Benachrichtigungsleiste aufzurufen. 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 in den Schnelleinstellungen sind für Steuerelemente oder Aktionen reserviert, die entweder dringend erforderlich oder häufig verwendet werden. Sie sollten nicht als Verknüpfungen zum Starten einer App verwendet werden.
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 zu 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 standardmäßige SMS-App, die standardmäßige Telefon-App und die Apps des Mobilfunkanbieters können die Liste der blockierten Nummern lesen und darauf schreiben. Andere Apps können nicht auf die Liste zugreifen.
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
Durch die Integration der Mobilfunkanbieter-App über Android können Mobilfunkanbieter 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. Dazu implementiert die Telefon-App die neue CallScreeningService
, mit der die Telefon-App eine Reihe von Aktionen basierend auf der Call.Details
eines eingehenden Anrufs ausführen kann, 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 und Regionen
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 bietet Android 7.0 auch mehr Sprachen für Nutzer. Es werden jeweils mehr als 25 Varianten für häufig verwendete Sprachen wie Englisch, Spanisch, Französisch und Arabisch. Außerdem wird die teilweise Unterstützung für mehr als 100 neue Sprachen hinzugefügt.
Apps können die vom Nutzer festgelegte Liste der Sprachen und Regionen abrufen, indem sie LocaleList.GetDefault()
aufrufen. Um die erweiterte Anzahl von Sprachen zu unterstützen, wird in Android 7.0 die Ressourcenauflösung geändert. Testen und prüfen Sie, ob Ihre Apps mit der neuen Logik zur Ressourcenauflösung wie erwartet funktionieren.
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.
Mit der Methode
hasGlyph(String)
können Sie prüfen, welche Emojis im Systemschriftschnitt vorhanden sind. - Prüfen Sie, ob ein Emoji Variantenauswahlen unterstützt. Mithilfe von Variantenauswahlen können Sie bestimmte Emojis in Farbe oder Schwarz-Weiß anzeigen. Auf Mobilgeräten sollten Apps Emojis in Farbe und nicht in Schwarz-Weiß anzeigen. 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. 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 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 besteht hauptsächlich aus dem Wechsel 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
Framework können erhebliche Einsparungen bei der APK-Größe nach sich ziehen.
Weitere Informationen zu den Android ICU4J APIs finden Sie unter ICU4J-Support.
WebView
Chrome + WebView – im Team
Ab Chrome-Version 51 auf Android 7.0 und höher wird das Chrome-APK auf Ihrem Gerät 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.
Wenn Sie im Multiprozessmodus unerwartete Probleme feststellen, teilen Sie uns dies bitte mit. Bitte wenden Sie sich über den Fehler-Tracker für Chromium an das WebView-Team.
JavaScript wird vor dem Laden der Seite 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 die erste Seite übernommen, die in einer neuen WebView-Instanz geladen wird.
Entwickler, die JavaScript in die WebView einschleusen möchten, sollten das Script ausführen, nachdem der Seitenladevorgang begonnen hat.
Standortbestimmung für unsichere Ursprünge
Ab Apps, die auf Android 7.0 ausgerichtet sind, ist die Geolocation API nur noch für sichere Ursprünge (ü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. Wenn Sie mit dem Testen von Vorabversionen von WebView unter Android 7.0 beginnen möchten, laden Sie entweder Chrome Dev oder Chrome Beta herunter und installieren Sie es. Wählen Sie es dann wie oben beschrieben in den Entwickleroptionen als WebView-Implementierung aus. 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
Android 7.0 bietet Framework-Schnittstellen und Plattformunterstützung für OpenGL ES 3.2, einschließlich:
- 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 auf Android 7.0 wird mit der Klasse GLES32
bereitgestellt. 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, einschließlich der Möglichkeit, die unterstützte OpenGL ES-Version eines Geräts zur Laufzeit zu prüfen, finden Sie im OpenGL ES API-Leitfaden.
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 finden Sie unter Android TV-Aufzeichnungs-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 das N SDK verwenden, können eine separate Sicherheitsanfrage für Apps angeben, die im Arbeitsprofil ausgeführt werden. Die Aufgabe wird angezeigt, wenn ein Nutzer versucht, die Aufgabe zu öffnen.
geschäftlichen Apps. Bei erfolgreicher Durchführung der Sicherheits-Challenge 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 deaktiviert ist, wird der verwaltete Nutzer vorübergehend heruntergefahren. Dadurch werden Apps im Arbeitsprofil, die Hintergrundsynchronisierung und Benachrichtigungen deaktiviert. 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 dem Starten des Geräts.
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. Die Option, „Durchgehend aktives VPN“ in den Einstellungen zu aktivieren, ist nur verfügbar, wenn der VPN-Client auf API-Ebene 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 können Nutzer Bedienungshilfen auf ihren Geräten viel einfacher finden und konfigurieren, z. B. die Geste zur Vergrößerung, die Schriftgröße, die Displaygröße und TalkBack.
Da diese Bedienungshilfen besser platziert werden, mit höherer Wahrscheinlichkeit Ihre App testen. Apps testen diese Einstellungen aktiviert haben. Sie können sie unter „Einstellungen“ > „Bedienungshilfen“ aktivieren.
In Android 7.0 können Bedienungshilfen jetzt auch Nutzer mit motorischen den Bildschirm zu berühren. Mit der neuen API können Dienste mit Funktionen wie Gesichts- und Augen-Tracking oder Punktscans erstellt werden, um die Anforderungen dieser Nutzer 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 vom Gerät verschlüsselten Speicher für ausgewählte Systemdaten und explizit registrierte 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 setzen. Nach dem Neustart wird das System aktiviert.
registrierten Komponenten durch Senden des LOCKED_BOOT_COMPLETED
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.
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 Software Schlüsselspeicher die vertraulichen Informationen, die Ihre App verwendet werden. Wenn Sie dieses Tool verwenden, gewinnen Sie mehr Sicherheit, dass Ihre App interagiert mit Schlüsseln, die sich in sicherer Hardware befinden, selbst wenn das Gerät die App 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 überprüfen, ob ein RSA- oder EC-Schlüsselpaar erstellt und im hardwaregestützten Schlüsselspeicher eines Geräts in der vertrauenswürdigen Ausführungsumgebung (Trusted Execution Environment, TEE) des Geräts gespeichert wurde. 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. Dazu müssen Sie prüfen, ob die Attestierungszertifikatskette ein Root-Zertifikat enthält, das vom Google Attestation Root Key signiert ist, und ob das Element attestationSecurityLevel
in der Datenstruktur Schlüsselbeschreibung auf die Sicherheitsebene „TrustedEnvironment“ gesetzt ist.
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 der unbeabsichtigten Verwendung von Klartext-Traffic zu schützen.
- Zertifikats-Pinning 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 nicht mehr vertrauen der vom Nutzer hinzugefügten Zertifizierungsstelle. Bei Apps, die auf Android 7.0 (API-Level 24) ausgerichtet sind und nutzerseitig hinzugefügte Zertifizierungsstellen vertrauenswürdig einstufen sollen, muss in der Netzwerksicherheitskonfiguration angegeben werden, wie nutzerseitig hinzugefügte Zertifizierungsstellen als vertrauenswürdig eingestuft werden sollen.
APK-Signaturschema v2
Mit Android 7.0 wird das APK-Signaturschema v2 eingeführt, ein neues App-Signaturschema, das eine schnellere App-Installation und einen besseren Schutz vor unbefugten Änderungen an APK-Dateien bietet. 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.
Wir empfehlen zwar, das APK-Signaturschema V2 auf Ihre App anzuwenden, dieses neue Schema ist jedoch 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
traditionellen Schema öffnen, ö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 eine App in Android Studio signieren und konfigurieren Build-Datei zum Signieren von Apps mit dem Android-Plug-in für Gradle
Eingeschränkter 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 das Aussehen, die Sichtbarkeit und das Verhalten des Cursors anpassen können. 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 Schwankungen stellen für App-Entwickler, die leistungsstarke, langlebige Apps erstellen, eine Herausforderung dar.
Um diese Einschränkungen zu beheben, unterstützt Android 7.0 den Dauerleistungsmodus. So können OEMs Hinweise zur Geräteleistung für langlaufende Apps geben. 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.
Verbesserungen beim Druckdienst
Unter Android 7.0 können Entwickler von Druckdiensten jetzt zusätzliche Informationen zu einzelnen Druckern und Druckaufträgen anzeigen.
Bei der Auflistung einzelner Drucker können Druckerdienste jetzt auf zwei Arten Druckersymbole festlegen:
- Sie können ein Symbol von einer Ressourcen-ID festlegen, indem Sie folgenden Befehl aufrufen:
setIconResourceId()
- Du kannst ein Symbol aus dem Netzwerk anzeigen, indem du
setHasCustomPrinterIcon()
aufrufst und einen Rückruf für den Fall festlegst, dass das Symbol angefordert wird, indem duonRequestCustomPrinterIcon()
aufrufst.
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 Funktion, indem eine Streaming-Pub/Sub API für die Übertragung von Frame-Timing-Informationen für das aktuelle Fenster der App freigegeben wird. Die zurückgegebenen Daten entsprechen den Daten, die in adb shell
dumpsys gfxinfo framestats
angezeigt werden, sind aber nicht auf die letzten 120 Frames beschränkt.
Mit der Frame Metrics API können Sie die UI-Leistung auf Interaktionsebene in der Produktion ohne USB-Verbindung messen. 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.
Wenn Sie ein Fenster überwachen möchten, implementieren Sie die OnFrameMetricsAvailableListener.onFrameMetricsAvailable()
-Callback-Methode und registrieren Sie sie für dieses 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 Storage Access Framework das Konzept virtueller Dateien hinzu. 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