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](https://developer.android.com/static/images/android-7.0/mw-portrait.png?authuser=9&hl=de)
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](https://developer.android.com/static/images/android-7.0/notifications-1.png?authuser=9&hl=de)
![Auf einem Mobilgerät wird eine Benachrichtigung zu einer einzelnen Nachricht angezeigt](https://developer.android.com/static/images/android-7.0/notifications-3.png?authuser=9&hl=de)
![Ein Mobilgerät, das eine Inline-Antwort auf einer Benachrichtigungsoberfläche anzeigt](https://developer.android.com/static/images/android-7.0/notifications-2.png?authuser=9&hl=de)
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](https://developer.android.com/static/images/android-7.0/doze-diagram-1.png?authuser=9&hl=de)
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
.
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](https://developer.android.com/static/images/android-7.0/datasaver.png?authuser=9&hl=de)
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](https://developer.android.com/static/images/android-7.0/quicksettings.png?authuser=9&hl=de)
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.
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.
Verbesserungen beim Druckdienst
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:
- 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 folgende Nummer aufrufst:
setHasCustomPrinterIcon()
, und einen Callback für den Fall festlegen, dass das Symbol mitonRequestCustomPrinterIcon()
.
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