Mit Android 12 werden tolle neue Funktionen und APIs für Entwickler eingeführt. In den folgenden Abschnitten erhalten Sie Informationen zu den Funktionen für Ihre Apps und zu den ersten Schritten. mit den zugehörigen APIs.
Eine detaillierte Liste der neuen, geänderten und entfernten APIs finden Sie unter API-Unterschiede . Bericht. Details zu den neuen APIs finden Sie in der Android- API-Referenz: Neue APIs sind hervorgehoben dargestellt. Außerdem und erfahren, in welchen Bereichen sich die Plattformänderungen auf Ihre Apps auswirken können. Verhaltensänderungen unter Android 12 für Apps, die auf Android 12 und für alle Apps.
Nutzererfahrung
Material You
Mit Android 12 wird eine neue Designsprache namens Material Sie und helfen Ihnen, noch mehr personalisierte, schöne Apps. Um die neuesten Material Design-Funktionen in Ihren Apps installiert haben, testen Sie eine Alpha-Version von Material Design Komponenten.
Widgets-Verbesserungen
Android 12 überarbeitet die bestehende Widgets API, um Nutzer und Entwickler zu verbessern Erfahrung in der Plattform und in Launchern. Wir haben einen Leitfaden erstellt, ob Ihr Widget mit Android 12 kompatibel ist, und aktualisieren Sie es mit Funktionen.
Siehe Verbesserungen bei Android 12-Widgets für erhalten Sie weitere Informationen.
Einfügen von Rich Content
Mit Android 12 wird eine neue einheitliche API eingeführt, mit der deine App Rich Content aus jeder verfügbaren Quelle empfangen: Zwischenablage, Tastatur, Drag-and-drop fallen lassen.
Weitere Informationen Inhalte.
API für App-Ladebildschirme
Mit Android 12 wird eine neue App-Startanimation für alle Apps eingeführt, die einen App-Bewegung vom Startpunkt an, ein Ladebildschirm mit dem App-Symbol, und einen Übergang zur App selbst. Ladebildschirm-Entwickler aufrufen finden Sie weitere Informationen.
APIs mit abgerundeten Ecken
Mit Android 12 wird RoundedCorner
eingeführt
und WindowInsets.getRoundedCorner(int
position)
,
Sie geben den Radius und den Mittelpunkt für abgerundete Ecken an.
Weitere Informationen finden Sie unter Abgerundete Ecken.
Umfassende haptische Funktionen
Android 12 bietet zusätzliche Tools zum Erstellen von informativem haptischem Feedback für UI Ereignisse, immersive und ansprechende Effekte für Gaming sowie eine auffällige Haptik die Produktivität zu steigern.
Bedienelemente
Android 12 bietet ausdrucksstarke Effekte wie niedrige Häkchen Sie profitieren von der größeren Frequenzbandbreite der neuesten Bedienelemente. Spiel Entwickler können jetzt auf mehrere, verschiedene unabhängige Bedienelemente im Spiel Controller, um denselben Effekt synchron oder unterschiedliche haptische Effekte zu erzeugen. an mehreren Bedienelementen an. Entwicklern empfehlen wir die Verwendung des Konstanten und Primitive als Bausteine für umfassende haptische Effekte – Konstanten zur Optimierung von UI-Ereignissen und haptischer Composer in Sequenz Primitiven für komplexere Effekte. Diese APIs können auf Pixel 4 getestet werden und arbeiten weiterhin mit unseren Geräteherstellern zusammen, haptische Unterstützung für Nutzer*innen aus der ganzen Welt.
Audiogekoppelte Haptikeffekte
Android 12-Apps können haptisches Feedback aus einer Audiositzung mithilfe von den Vibrationsalarm des Smartphones. Dies bietet die Möglichkeit für ein immersiveres Spiel und Audioerlebnisse. Mit haptisch verbesserten Klingeltönen Anrufer oder ein Fahrspiel simuliert.
Weitere Informationen finden Sie in der HapticGenerator
.
in der Referenzdokumentation.
App-Suche
Mit Android 12 wird AppSearch eingeführt, eine leistungsstarke On-Device-Suchmaschine, als Systemdienst. Mit AppSearch können Anwendungen strukturierte Daten indexieren und mit der Volltextsuchfunktion darin suchen. Außerdem AppSearch unterstützt native Suchfunktionen wie die hocheffiziente Indexierung. Abruf, mehrsprachigen Support und Relevanz-Ranking.
![Diagramm zur Indexierung und Suche in AppSearch](https://developer.android.google.cn/static/images/about/versions/12/appsearch.png?authuser=7&hl=de)
AppSearch gibt es in zwei Varianten: als lokaler Index für Ihre Anwendung. der mit älteren Android-Versionen oder einem zentralen Index kompatibel ist, unter Android 12 für das gesamte System gepflegt. Mit dem zentralen Index können Ihre App zulassen, dass ihre Daten auf System-UI-Oberflächen angezeigt werden, indem der der vorinstallierten Intelligenz-Komponente des Systems. Welche Daten genau erfasst werden, die auf System-UI-Oberflächen angezeigt werden, ist vom OEM abhängig. Außerdem werden Ihre Anwendungen Daten sicher an andere Anwendungen weitergeben können, damit diese auch in diesen Daten suchen können.
Weitere Informationen zu AppSearch finden Sie in der Entwicklerhandbuch herunter und verwenden Sie es zuerst mit den die AppSearch-Jetpack-Bibliothek, die bietet eine entwicklerfreundliche API-Oberfläche sowie einen Annotationsprozessor Support.
Spielmodus
Die Game Mode API und der Spielmodus Maßnahmen ermöglichen es Ihnen, dem Spielen, indem Eigenschaften wie Leistung oder Akkulaufzeit priorisiert werden basierend auf Nutzereinstellungen oder spielspezifischen Konfigurationen.
Weitere Informationen finden Sie unter Spielmodus.
Empfehlungen und Verbesserungen für Bild im Bild (BiB)
Mit Android 12 wurden die folgenden Verbesserungen für den BiB-Modus eingeführt:
Unterstützung neuer BiB-Gesten
Android 12 unterstützt jetzt Stashing und Zoomen durch Auseinander- und Zusammenziehen der Finger Touch-Gesten für das BiB-Symbol Fenster:
Um das Fenster zu verstecken, kann der Nutzer das Fenster nach links oder rechts ziehen. Edge. Um das Fenster wieder zu öffnen, kann der Nutzer entweder auf den sichtbaren Teil der oder ziehen Sie es heraus.
Der Nutzer kann jetzt durch Auseinander- und Zusammenziehen der Finger die Größe des BiB-Fensters anpassen.
Empfohlene neue Funktionen für eine optimierte BiB-Umstellung
Android 12 hat erhebliche kosmetische Verbesserungen hinzugefügt zu den animierten zwischen Vollbild- und BiB-Fenstern. Wir empfehlen dringend, Implementierung aller anwendbaren Änderungen; Anschließend werden diese Änderungen automatisch auf große Bildschirme wie faltbare Smartphones und Tablets, alle weiteren erforderlichen Arbeiten.
Zu diesen Funktionen gehören:
Neues API-Flag für einen reibungsloseren Wechsel in den BiB-Modus bei der Bedienung über Gesten
Verwenden Sie den
setAutoEnterEnabled
. um flüssigere Übergänge in den BiB-Modus zu ermöglichen, wenn du Gestensteuerung. Früher wartete Android darauf, bis die Animation beendet ist, bevor das BiB-Fenster ausgeblendet wird.Flüssigere Animationen beim Aufrufen und Verlassen des BiB-Modus
Die
SourceRectHint
-Flag wird nun wiederverwendet, um eine flüssigere Animation beim Betreten und Verlassen der Seite zu implementieren. BiB-Modus.Neues API-Flag zum Deaktivieren der nahtlosen Größenanpassung für Nicht-Video-Inhalte
Die
SeamlessResizeEnabled
Das Flag sorgt für eine viel flüssigere Überblendungsanimation, wenn die Größe von Nicht-Video-Creatives geändert wird im BiB-Fenster angezeigt. Bisher wurde die Größe von Inhalten ohne Videos in einem BiB-Bild geändert. zu verwirrenden visuellen Artefakten führen.
Neue Anrufbenachrichtigungen, mit denen die Wichtigkeit eingehender Anrufe bewertet werden kann
Neuer Benachrichtigungsstil in Android 12
Notification.CallStyle
für Telefonanrufe. Mit dieser Vorlage können Sie in Ihrer App die Bedeutung
bei aktiven Anrufen durch einen gut sichtbaren Chip, der die Uhrzeit des Anrufs in
der Statusleiste kann der Nutzer auf diesen Chip tippen, um zum Anruf zurückzukehren.
Da eingehende und laufende Anrufe für Nutzer am wichtigsten sind, erhalten Benachrichtigungen eine Spitzenposition in der Leiste. Dieses Ranking ermöglicht es auch, um diese priorisierten Anrufe an andere Geräte weiterzuleiten.
Implementieren Sie den folgenden Code für alle Arten von Aufrufen.
Kotlin
// Create a new call with the user as caller. val incoming_caller = Person.Builder() .setName("Jane Doe") .setImportant(true) .build()
Java
// Create a new call with the user as caller. Person incoming_caller = new Person.Builder() .setName("Jane Doe") .setImportant(true) .build();
forIncomingCall()
verwenden
, um eine Benachrichtigung im Stil eines eingehenden Anrufs zu erstellen.
Kotlin
// Create a call style notification for an incoming call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incoming_caller)
Java
// Create a call style notification for an incoming call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incoming_caller);
forOngoingCall()
verwenden
um eine Benachrichtigung im Anrufstil für einen laufenden Anruf zu erstellen.
Kotlin
// Create a call style notification for an ongoing call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOnGoingCall(caller, hangupIntent)) .addPerson(second_caller)
Java
// Create a call style notification for an ongoing call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOnGoingCall(caller, hangupIntent)) .addPerson(second_caller);
forScreeningCall()
verwenden
, um eine Benachrichtigung im Anrufstil zum Filtern von Anrufen zu erstellen.
Kotlin
// Create a call style notification for screening a call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller)
Java
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller);
Erweiterte Bildunterstützung für Benachrichtigungen
In Android 12 können Sie die Benachrichtigungserfahrung in Ihrer App optimieren, indem Sie
Bereitstellung animierter Bilder in MessagingStyle()
und BigPictureStyle()
Benachrichtigungen. Außerdem kann Ihre App es Nutzern jetzt ermöglichen, Bildnachrichten zu senden, wenn
Nachrichten über die Benachrichtigungsleiste beantworten.
Verbesserungen im immersiven Modus für die Bedienung über Gesten
Android 12 fasst die bisherige Funktionsweise zusammen, damit Nutzer Sie können im immersiven Modus Modus an. In Android 12 bietet Abwärtskompatibilität für immersive Modus an.
Freigabe der letzten URL (nur Pixel)
Auf Pixel-Geräten können Nutzer jetzt Links zu kürzlich angesehenen Webinhalten teilen direkt von der Seite „Letzte“ aus. Nach dem Aufrufen der Inhalte in einer App können Sie zum Bildschirm „Letzte Apps“ wischen und die App finden, in der sie sich die Inhalte angesehen haben. Tippe dann auf die Link-Schaltfläche, um die URL zu kopieren oder zu teilen.
Weitere Informationen finden Sie unter Zuletzt verwendete URL aktivieren Teilen von Inhalten.
Sicherheit und Datenschutz
Privatsphäredashboard
Auf unterstützten Geräten mit Android 12 oder höher wird die Das Dashboard wird in den Systemeinstellungen angezeigt. Über diesen Bildschirm können Nutzer Auf separaten Bildschirmen wird angezeigt, wenn Apps auf Standort, Kamera und Mikrofon zugreifen. Informationen. Jeder Bildschirm zeigt eine Zeitachse, die zeigt, wann verschiedene Apps auf ein bestimmte Art von Daten. Abbildung 1 zeigt die Zeitachse für den Datenzugriff für den Standort. Informationen.
Deine App kann eine Begründung liefern, Nutzer*innen So können Sie nachvollziehen, warum Ihre App auf den Standort, die Kamera oder das Mikrofon zugreift Informationen. Diese Begründung kann auf dem neuen Privatsphäredashboard angezeigt werden, App-Berechtigungsbildschirm oder beides.
Bluetooth-Berechtigungen
Mit Android 12 wird die
BLUETOOTH_SCAN
,
BLUETOOTH_ADVERTISE
,
und
BLUETOOTH_CONNECT
Berechtigungen. Diese Berechtigungen erleichtern es Apps,
Android 12 zur Interaktion mit Bluetooth
, insbesondere für Apps, die keine
benötigen Zugriff auf den Gerätestandort.
Erklärungen zu Bluetooth-Berechtigungen deiner App aktualisieren
Um Ihr Gerät für die Ausrichtung auf Android 12 oder höher vorzubereiten, aktualisieren Sie der App-Logik. Anstatt einen alten Bluetooth-Satz zu deklarieren Berechtigungen ein moderneres Bluetooth-Gerät Berechtigungen
Berechtigungsgruppen suchen
Unter Android 12 oder höher können Sie abfragen, wie das System von der Plattform bereitgestellte Berechtigungen Berechtigungsgruppen:
- Um die Berechtigungsgruppe zu ermitteln, der das System eine
plattformdefinierte Berechtigung, Aufruf
getGroupOfPlatformPermission()
- Um die plattformdefinierten Berechtigungen zu bestimmen, die das System erteilt hat
Berechtigungsgruppe, rufen Sie
getPlatformPermissionsForGroup()
App-Overlay-Fenster ausblenden
Um Entwicklern mehr Kontrolle darüber zu geben, was Nutzer sehen, wenn sie mit dem
der Entwickler-App bietet Android 12 die Möglichkeit,
Overlay-Fenster, die von Apps gezeichnet werden,
SYSTEM_ALERT_WINDOW
Berechtigung.
Nach der Deklaration der
HIDE_OVERLAY_WINDOWS
kann eine App
setHideOverlayWindows()
um anzuzeigen, dass alle Fenster des Typs
TYPE_APPLICATION_OVERLAY
sollte ausgeblendet werden, wenn das Fenster der App sichtbar ist. Apps könnten sich für eine
wenn Sie sensible Bildschirme
wie Transaktionsbestätigungsabläufe anzeigen.
Für Apps, die Fenster des Typs TYPE_APPLICATION_OVERLAY
anzeigen, sollte Folgendes empfohlen werden:
Alternativen, die für ihren Anwendungsfall besser geeignet sind, z. B.
Bild im Bild oder
Bubbles.
Schutz-Flag für Berechtigungen für bekannte Unterzeichner
Ab Android 12 werden
Attribut knownCerts
für
Berechtigungen auf Signaturebene
können Sie auf die Digests bekannter Signaturen
Zertifikate bei der Erklärung
.
Deine App kann dieses Attribut deklarieren und mit dem Flag knownSigner
erlauben,
und Apps, um anderen Personen Signaturberechtigungen zu erteilen.
Apps, ohne
Apps bei der Herstellung und Lieferung des Geräts unterschreiben müssen.
Attestierung von Geräteeigenschaften
Unter Android 12 stehen mehr Apps zur Verfügung, die Geräteeigenschaften überprüfen können, befinden sich in einer Attestierung Zertifikat wenn diese Anwendungen einen neuen Schlüssel generieren.
Ab Android 9 (API-Level 28) werden Geräterichtlinien
(DPOs), die Daten nutzen,
Keymaster 4.0 oder höher kann
Prüfen Sie die Geräteeigenschaften in diesen Attestierungszertifikaten. Beginnt in
Android 12, jede App, die auf Android 12 (API-Level 31) oder höher ausgerichtet ist, kann
Bestätigung mithilfe des
setDevicePropertiesAttestationIncluded()
.
Zu den generierten Geräteeigenschaften gehören:
Build
-Felder:
BRAND
DEVICE
MANUFACTURER
MODEL
PRODUCT
Aktionen für sichere Sperrbildschirmbenachrichtigungen
Ab Android 12 wird der Notification.Action.Builder
-Kurs verwendet
unterstützt die
setAuthenticationRequired()
mit der Ihre App vorschreiben kann,
entsperrt
bevor Ihre App eine bestimmte Benachrichtigungsaktion aufruft. Mit dieser Methode können Sie
Zusätzliche Sicherheit für Benachrichtigungen auf gesperrten Geräten.
Lokalisierbare Strings für BiometricPrompt
Mit Android 12 werden neue APIs eingeführt, mit denen du die biometrischen Funktionen deiner App verbessern kannst
die Nutzerfreundlichkeit der Authentifizierung. Das neue BiometricManager.Strings
enthält die verschachtelte Klasse getButtonLabel()
,
getPromptMessage()
,
und getSettingName()
mit denen Ihre App ein für Nutzer lesbares und lokalisiertes Schaltflächenlabel abrufen kann,
oder den Namen der App-Einstellung. Mit diesen Labels können Sie
an die Nutzer gerichtete Anweisungen, die speziell für die biometrische Authentifizierung gelten
verwendet werden, z. B. „Entsperrung per Gesichtserkennung verwenden“ oder „Fingerabdruck zum Fortfahren verwenden“.
Phishing-Erkennung in Messaging-Apps (nur Pixel)
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/about/versions/12/phishing-detection.png?authuser=7&hl=de)
Auf unterstützten Pixel-Geräten wird mit Android 12 Phishing-Erkennung für Nachrichten ausgeführt in beliebten Messaging-Apps empfangen. Das System nutzt maschinelles Lernen auf dem Gerät. um verdächtige Aktivitäten zu erkennen. Wenn das System erkannt wird, Overlay über der Benutzeroberfläche der Messaging-App, um die Nutzer zu warnen. Beispiel: Phishing Erkennung kann Nutzer vor den folgenden potenziellen Risiken warnen:
- Verdächtige Anfragen, z. B. um einen Code oder Geld zu senden
- Nicht vertrauenswürdige URLs
- Schädliche Anhänge
- Links zu schädlichen Apps
Mit dem Overlay wird nicht nur der Nutzer gewarnt, sondern auch verdächtige Nachricht senden und Feedback zu vom System ausgegebenen Warnungen geben.
Entwickler können diese Funktion deaktivieren, indem sie ein neues Metadaten-Tag hinzufügen,
den String com.google.android.ALLOW_PHISHING_DETECTION
im App-Manifest der Nutzer
Dateien. Beispiel:
<manifest>
<application android:name="com.messagingapp">
<meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />
</application>
</manifest>
Medien
Kompatible Medientranscodierung
Ab Android 12 (API-Level 31) kann das System HEVC(H.265) und HDR (HDR10 und HDR10+) auf dem Gerät aufgezeichnete Videos im AVC (H.264), einem weit verbreiteten Format ist mit Standard-Playern kompatibel. Dabei werden moderne Codecs genutzt, Sie sind verfügbar, ohne dass die Kompatibilität mit älteren Anwendungen beeinträchtigt wird.
Weitere Informationen finden Sie unter Transcodierung von kompatiblen Medien.
Performance-Klasse
Mit Android 12 wird ein Standard mit der Bezeichnung Leistungsklasse eingeführt. A Die Leistungsklasse gibt Hardwarefunktionen an, die über die Android-Basisklasse hinausgehen. Anforderungen. Für jedes Android-Gerät ist die Leistungsklasse deklariert, die es unterstützt. Entwickler können die Leistungsklasse des Geräts zur Laufzeit bieten verbesserte Funktionen, die die Funktionen.
Siehe Leistungsklasse .
Verbesserungen bei der Videocodierung
Android 12 definiert einen Standardsatz von Schlüsseln zur Steuerung des Quantisierungsparameterwert (QP) für die Videocodierung, mit dem Entwickler anbieterspezifischen Code vermeiden.
Die neuen Schlüssel sind verfügbar in der
MediaFormat
-API
und auch in der
NDK Media Library.
Ab Android 12 erzwingen Video-Encoder eine Mindestqualität Grenzwert. So wird sichergestellt, dass die Qualität der Nutzererfahrung nicht extrem schlecht ist. wenn Sie Videos mit hoher Szenenkomplexität codieren.
Audiofokus
Ab Android 12 (API-Level 31), wenn eine App den Audiofokus anfordert, während eine andere App den Fokus hat und Inhalte wiedergeben, ausgeblendet das System die App, die gerade die Wiedergabe startet.
Siehe „Audiofokus“ unter Android 12 und höher .
MediaDrm-Updates
Um zu bestimmen, ob eine sichere Decoderkomponente mit dem
aktuellen MediaDrm
APIs verwenden, müssen Sie so vorgehen:
- Erstellen Sie ein
MediaDrm
. - Öffnen Sie eine Sitzung, um eine Sitzungs-ID zu erhalten.
- Erstellen Sie mithilfe der Sitzungs-ID eine
MediaCrypto
. MediaCrypto.requiresSecureDecoderComponent(mimeType)
anrufen.
Mit den neuen Methoden requiresSecureDecoder(@NonNull String mime)
und
requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level)
können Sie dies ermitteln, sobald Sie eine MediaDrm
erstellen.
Kamera
Kamera 2-Anbietererweiterungen
Viele unserer Gerätehersteller haben maßgeschneiderte Kameraerweiterungen entwickelt, wie wie Bokeh-, HDR- oder Nachtmodus, mit denen Apps erstellt werden können. eine differenzierte Nutzererfahrung bieten. Das CameraX Bibliothek bereits unterstützt. für diese benutzerdefinierten Anbietererweiterungen. In Android 12 werden diese Anbietererweiterungen werden jetzt direkt auf der Plattform angezeigt.
Diese Ergänzung hilft Apps mit komplexen
Camera2
Anbietererweiterungen nutzen, ohne
Änderungen am Legacy-Code vorgenommen. Die Camera2 Extension APIs stellen exakte
denselben Satz an
Erweiterungen als
in CameraX arbeiten. Diese werden bereits von
Geräte, sodass Sie sie ohne
zusätzliche Konfiguration.
Weitere Informationen finden Sie unter
CameraExtensionCharacteristics
Unterstützung von Quad Bayer-Kamerasensor
Heutzutage verfügen viele Android-Geräte über hochauflösende Kamerasensoren, in der Regel mit Quad- oder Nona-Bayer-Mustern. Diese bieten große Flexibilität bei bei schlechten Lichtverhältnissen. Android 12 führt neue Plattform-APIs, mit denen Drittanbieter-Apps diese vielseitigen Funktionen Sensoren. Die neuen APIs unterstützen das einzigartige Verhalten dieser Sensoren und berücksichtigen, unterstützt möglicherweise unterschiedliche Streamkonfigurationen und -kombinationen bei der Arbeit in volle Auflösung oder „maximale Auflösung“ und nicht im Modus „Standard“.
Grafiken und Bilder
Apps direkten Zugriff auf Tombstone-Traces gewähren
Ab Android 12 können Sie auf das native Absturz-Tombstone Ihrer App als
Protokollpuffer über den
ApplicationExitInfo.getTraceInputStream()
. Der Protokollzwischenspeicher wird mit diesem Schema serialisiert.
Früher konnte man auf diese Informationen nur über das
Android Debug Bridge (ADB):
Weitere Informationen finden Sie unter Apps direkten Zugriff auf Tombstone-Traces gewähren.
AVIF-Bildunterstützung
Android 12 unterstützt jetzt Bilder im AV1-Bildformat AVIF. AVIF ist ein Containerformat für codierte Bilder und Abfolgen von Bildern mit AV1. AVIF nutzt die Intra-Frame-codierten Inhalte des Videos Komprimierung. Dadurch wird die Bildqualität bei gleicher Dateigröße erheblich verbessert. im Vergleich zu älteren Bildformaten wie JPEG. Für einen detaillierten Einblick in die Informationen zu den Vorteilen dieses Formats finden Sie im Blog von Jake Archibald Blogpost.
Einfachere Weichzeichner, Farbfilter und andere Effekte
Android 12 fügt die neue RenderEffect
hinzu
die gängige Grafikeffekte wie Weichzeichner, Farbfilter und Android-Shader anwendet.
Effekte und mehr in View
und das Rendern von Hierarchien. Effekte können als Ketteneffekte kombiniert werden.
(die einen inneren und äußeren Effekt bilden) oder kombinierte Effekte. Anderes Android
Geräte unterstützen diese Funktion möglicherweise aufgrund unzureichender Prozessorleistung.
Effekte können auch auf das zugrunde liegende RenderNode
angewendet werden.
für View
Sekunden durch Aufrufen von View.setRenderEffect(RenderEffect)
.
So implementierst du ein RenderEffect
:
view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))
Decodierung animierter Bilder
In Android 12 hat das NDK
ImageDecoder
API wurde erweitert
um alle Frames und Timing-Daten aus Bildern zu decodieren
die das animierte GIF und
animierte WebP-Dateiformate. Wenn es
wurde mit Android 11 eingeführt, decodiert diese API nur das erste Bild aus
Animationen in diesen Formaten.
Verwende ImageDecoder
anstelle von Drittanbieter-Bibliotheken, um APK weiter zu verringern.
Größe
und von zukünftigen Sicherheits- und Leistungsupdates profitieren.
Weitere Informationen zur API finden Sie in der API-Referenz und im Beispiel auf GitHub.
Konnektivität
Companion-Apps aktiv lassen
Damit Companion-Apps weiterhin ausgeführt werden können, um das Gerät zu verwalten, Mit Android 12 werden APIs eingeführt, die Folgendes tun:
- Ermöglicht es, eine App zu aktivieren, wenn sich ein Begleitgerät in Reichweite befindet.
- Stellen Sie sicher, dass der Prozess weiterhin ausgeführt wird, solange das Gerät Bereich.
Damit Sie die APIs nutzen können, müssen Ihre Geräte über Companion-Gerät verbunden sein.
Administrator. Weitere Informationen
finden Sie unter
CompanionDeviceManager.startObservingDevicePresence()
und
CompanionDeviceService.onDeviceAppeared()
Profile für Companion-Gerätemanager
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/about/versions/12/companion-device-profile.png?authuser=7&hl=de)
Partner-Apps auf Geräten mit Android 12 (API-Level 31) und höher können Begleitgeräte verwenden Profilen beim Verbinden mit einer Smartwatch. Ein Profil vereinfacht die Registrierung Prozess, indem die Erteilung eines gerätetypspezifischen Satzes von Berechtigungen bündelt wird in einem Schritt zusammengefasst.
Die gebündelten Berechtigungen werden der Companion-App gewährt, sobald das Gerät stellt eine Verbindung her und funktioniert nur so lange, wie das Gerät verknüpft ist. Löschen der App oder Wenn Sie die Verknüpfung entfernen, werden auch die Berechtigungen entfernt.
Weitere Informationen finden Sie unter
AssociationRequest.Builder.setDeviceProfile()
Verbesserungen bei der Schätzung der Bandbreite
In Android 12 werden die Funktionen zur Bandbreitenschätzung
getLinkDownstreamBandwidthKbps()
und
getLinkUpstreamBandwidthKbps()
werden sowohl für die WLAN- als auch für die Mobilfunkverbindung verbessert. Die jetzt zurückgegebenen Werte
stellen den gesamten gewichteten durchschnittlichen Durchsatz des Nutzers pro Mobilfunkanbieter oder WLAN dar.
SSID, Netzwerktyp und Signalstärke in allen Anwendungen auf dem Gerät
Dies kann eine genauere und realistischere Schätzung
des erwarteten Durchsatzes liefern,
Schätzungen zu einem Kaltstart Ihrer Anwendung und mit weniger Zyklen
im Vergleich zu anderen
Methoden zur Durchsatzschätzung.
Verbesserungen für Wi-Fi Aware (NAN)
Android 12 bietet einige Verbesserungen für Wi‐Fi Aware:
- Auf Geräten mit Android 12 (API-Level 31) und höher können Sie die
onServiceLost()
-Callback, um benachrichtigt zu werden, wenn in deiner App ein erkannter Dienst aufgrund des wenn der Dienst anhält oder sich außerhalb des zulässigen Bereichs befindet. - Die Einrichtung mehrerer Datenpfade (NAN-Datenpfade) wird um effizienter zu werden. Frühere Versionen verwendeten L2-Messaging, um Peers auszutauschen. der Initiatoren, was Latenz verursacht hat. Auf Geräten mit Android 12 und höher, der Teilnehmer (Server) kann konfiguriert werden Peers zu akzeptieren, d. h., sie müssen den Initiator nicht kennen im Voraus zu informieren. Dies beschleunigt die Bereitstellung von Datenpfaden und ermöglicht Punkt-zu-Punkt-Links mit nur einer Netzwerkanfrage.
- Um zu verhindern, dass das Framework Erkennungs- oder Verbindungsanfragen aufgrund
oder die Ressourcen ausgehen, auf Geräten mit Android 12 und
und höher können, können Sie
WifiAwareManager.getAvailableAwareResources()
Mit dem Rückgabewert dieser Methode können Sie die Anzahl der verfügbaren Daten Pfade, die Anzahl der verfügbaren Veröffentlichungssitzungen und die Anzahl der Sitzungen abonnieren.
Gleichzeitige Peer-to-Peer- und Internetverbindung
Wenn Geräte, die auf Android 12 (API-Level 31) und höher ausgerichtet sind, auf Geräten mit
Hardware-Unterstützung, mit Peer-to-Peer
Verbindungen werden Ihre
bestehenden WLAN-Verbindung, wenn Sie die Verbindung zum Peer-Gerät herstellen. Bis
Überprüfen Sie, ob diese Funktion unterstützt wird, verwenden Sie
WifiManager.isMultiStaConcurrencySupported()
„Display aus“ für NFC-Zahlungen aktivieren
In Apps, die auf Android 12 und höher ausgerichtet sind, können Sie NFC aktivieren
ohne dass der Bildschirm des Geräts eingeschaltet ist, indem du
requireDeviceScreenOn
bis
false
. Weitere Informationen zu NFC-Zahlungen bei gesperrtem oder gesperrtem Display finden Sie unter
Display aus und Sperrbildschirm
.
Speicher
Mit Android 12 wird die Speicherverwaltung wie folgt eingeführt: Funktionen:
- Media Store-Unterstützung für
MediaDocumentsProvider
, wenn Ihre App eine Medien-URI, der einem bestimmten Dokumentanbieter entspricht URI zu öffnen. - Ein Verzeichnis für voice .
- Die
MANAGE_MEDIA
Berechtigung, mit der eine App Medien verwalten kann Betriebsabläufe ohne dass dem Nutzer für jeden Vorgang ein Bestätigungsdialogfeld angezeigt wird. - Apps, die sowohl die
MANAGE_EXTERNAL_STORAGE
und dieQUERY_ALL_PACKAGES
wie z. B. Apps zur Dateiverwaltung, ein kundenspezifisches Aktivität zum Verwalten des Speicherplatzes einer anderen App, sofern diese ein der benutzerdefinierten Aktivität.
Hauptfunktion
Automatische App-Updates
Mit Android 12 wird die
setRequireUserAction()
für Apps, die die Methode
PackageInstaller
API verwenden.
Mit dieser Methode können Installer-Apps App-Updates ausführen, ohne dass die
um die Aktion zu bestätigen.
Informationen zum Chipsatz des Geräts
Android 12 fügt android.os.Build
zwei Konstanten hinzu, die
über das SDK Informationen zum
SoC-Chipsatzanbieter und zum Modell. Sie können diese
Informationen erhalten, indem Sie Build.SOC_MANUFACTURER
und Build.SOC_MODEL
aufrufen
.
Updates für Java-Kern-APIs
Aufgrund der Anfragen und der Zusammenarbeit mit Entwicklern haben wir Folgendes hinzugefügt: Hauptbibliotheken in Android 12:
Kurs | APIs |
---|---|
java.lang.Deprecated
|
|
java.lang.Byte
|
|
java.lang.Short
|
|
java.lang.Math
|
|
java.lang.StrictMath
|
|
java.util.Set
|
copyOf()
|
java.util.Map
|
copyOf()
|
java.util.List
|
copyOf()
|
java.time.Duration
|
|
java.time.LocalTime
|