Android 12 bietet tolle neue Funktionen und APIs für Entwickler. In den folgenden Abschnitten finden Sie Informationen zu den Funktionen Ihrer Apps und zu den ersten Schritten mit den zugehörigen APIs.
Eine detaillierte Liste der neuen, geänderten und entfernten APIs finden Sie im Bericht „API-Unterschiede“. Weitere Informationen zu neuen APIs findest du in der Android API-Referenz. Neue APIs werden zur besseren Sichtbarkeit hervorgehoben. Wenn du mehr darüber erfahren möchtest, in welchen Bereichen sich Plattformänderungen auf deine Apps auswirken können, solltest du dir die Verhaltensänderungen bei Android 12 für Apps, die auf Android 12 ausgerichtet sind und für alle Apps, ansehen.
Nutzererfahrung
Material You
Mit Android 12 wird eine neue Designsprache namens Material You eingeführt, mit der du personalisiertere, schönere Apps erstellen kannst. Wenn Sie alle neuesten Material Design 3-Updates in Ihre Apps einbinden möchten, können Sie eine Alphaversion der Material Design-Komponenten ausprobieren.
Verbesserungen bei Widgets
In Android 12 wird die vorhandene Widgets API umgestaltet, um die Plattform und Launcher für Nutzer und Entwickler zu verbessern. Wir haben einen Leitfaden erstellt, mit dem du prüfen kannst, ob dein Widget mit Android 12 kompatibel ist, und es mit neuen Funktionen aktualisieren kannst.
Weitere Informationen finden Sie unter Verbesserungen der Widgets für Android 12.
Rich Content einfügen
Mit Android 12 wird eine neue einheitliche API eingeführt, mit der deine App Rich-Content aus jeder verfügbaren Quelle empfangen kann: Zwischenablage, Tastatur oder Drag-and-drop.
Weitere Informationen findest du unter Rich Content empfangen.
API für Startbildschirme
Mit Android 12 wird eine neue App-Startanimation für alle Apps eingeführt, die eine In-App-Bewegung vom Zeitpunkt des Starts, einen Ladebildschirm mit dem App-Symbol und einen Übergang zur App selbst enthält. Weitere Informationen findest du im Entwicklerleitfaden für Startbildschirme.
APIs mit abgerundeten Ecken
In Android 12 werden RoundedCorner
und WindowInsets.getRoundedCorner(int
position)
eingeführt, die den Radius und den Mittelpunkt für abgerundete Ecken angeben.
Weitere Informationen finden Sie unter Abgerundete Ecken.
Viel haptisches Erlebnis
Android 12 erweitert die Tools zum Erstellen von informativem haptisches Feedback zu UI-Ereignissen, immersiven und reizvollen Effekten für Spiele und Aufmerksamkeitshaptik für mehr Produktivität.
Effekte von Aktuatoren
Android 12 bietet ausdrucksstarke Effekte wie einen niedrigen Ticks, der die größere Frequenzbandbreite der neuesten Bedienelemente nutzt. Spieleentwickler können jetzt unabhängig auf mehrere unterschiedliche Aktuatoren in Game-Controllern zugreifen, um denselben Effekt synchron oder unterschiedliche haptische Effekte auf mehrere Bedienelemente zu erzeugen. Für Entwickler empfehlen wir die Verwendung der Konstanten und Primitive als Bausteine für umfassende haptische Effekte – Konstanten zur Optimierung von UI-Ereignissen und haptisches Composer zum Sequenzieren von Primitiven für komplexere Effekte. Diese APIs können auf Pixel 4-Geräten getestet werden. Wir arbeiten weiterhin mit unseren Geräteherstellern zusammen, um Nutzern auf der ganzen Plattform die neueste Haptik-Unterstützung bereitzustellen.
Audiogekoppelte haptische Effekte
Android 12-Apps können haptisches Feedback aus einer Audiositzung über die Vibration des Smartphones generieren. Dies bietet die Möglichkeit für ein immersiveres Spiel- und Audioerlebnis. Mit haptisch verbesserten Klingeltönen können Anrufer beispielsweise identifiziert werden, oder ein Fahrspiel könnte das Gefühl eines unwegsamen Geländes simulieren.
Weitere Informationen finden Sie in der Referenzdokumentation zu HapticGenerator
.
App-Suche
Android 12 führt AppSearch als Systemdienst ein, eine leistungsstarke On-Device-Suchmaschine. Mit AppSearch können Anwendungen strukturierte Daten indexieren und mit den integrierten Volltextsuchfunktionen durchsuchen. Außerdem unterstützt AppSearch native Suchfunktionen wie die hocheffiziente Indexierung und das Abrufen, die Unterstützung mehrerer Sprachen und das Relevanzranking.
AppSearch gibt es in zwei Varianten: einen lokalen Index für Ihre Anwendung, der mit älteren Android-Versionen kompatibel ist, oder ein zentraler Index, der für das gesamte System unter Android 12 verwaltet wird. Mithilfe des zentralen Index kann Ihre Anwendung zulassen, dass ihre Daten von der vorinstallierten Intelligenzkomponente des Systems auf den Oberflächen der System-UI angezeigt werden. Welche Daten genau auf System-UI-Oberflächen angezeigt werden, hängt vom OEM ab. Darüber hinaus kann Ihre Anwendung Daten sicher für andere Anwendungen freigeben, damit diese ebenfalls in diesen Daten suchen können.
Weitere Informationen zu AppSearch finden Sie im Entwicklerleitfaden. Sie können das Tool auch mit der AppSearch Jetpack-Bibliothek verwenden, die eine entwicklerfreundliche API-Oberfläche sowie Unterstützung für den Annotationsprozessor bietet.
Spielmodus
Mit der Game Mode API und den Spielmodusinterventionen können Sie das Spiel optimieren, indem Sie Merkmale wie Leistung oder Akkulaufzeit basierend auf Nutzereinstellungen oder spielspezifischen Konfigurationen priorisieren.
Weitere Informationen finden Sie unter Spielmodus.
Empfehlungen und Verbesserungen für Bild im Bild (BiB)
In Android 12 wurden die folgenden Verbesserungen für den BiB-Modus vorgenommen:
Unterstützung neuer BiB-Gesten
Android 12 unterstützt jetzt Stashing- und Zoombewegungen für das BiB-Fenster:
Zum Verstecken des Fensters kann der Nutzer es zum linken oder rechten Rand ziehen. Um das Fenster zu entriegeln, kann der Nutzer entweder auf den sichtbaren Teil des verschobenen Fensters tippen oder es herausziehen.
Der Nutzer kann die Größe des BiB-Fensters jetzt durch Auseinander- und Zusammenziehen der Finger anpassen.
Empfohlene neue Funktionen für eine optimierte BiB-Umstellung
Unter Android 12 wurden den animierten Übergängen zwischen Vollbild- und BiB-Fenstern erhebliche kosmetische Verbesserungen hinzugefügt. Wir empfehlen dringend, alle relevanten Änderungen zu implementieren. Danach werden diese Änderungen automatisch auf große Bildschirme wie faltbare Smartphones und Tablets skaliert, ohne dass weitere Maßnahmen erforderlich sind.
Zu diesen Funktionen gehören:
Neues API-Flag für einen flüssigeren Wechsel in den BiB-Modus mit Bedienung über Gesten
Verwende das Flag
setAutoEnterEnabled
, um einen reibungsloseren Wechsel in den BiB-Modus zu ermöglichen, wenn du im Gesten-Navigationsmodus nach oben zum Startbildschirm wischst. Früher wartete Android, bis die Animation zum Wischen nach oben zu Ende war, bevor es im BiB-Fenster ausgeblendet wurde.Flüssigere Animationen beim Starten und Beenden des BiB-Modus
Das Flag
SourceRectHint
wird jetzt wiederverwendet, um beim Aufrufen und Beenden des BiP-Modus eine flüssigere Animation zu implementieren.-
Das Flag
SeamlessResizeEnabled
sorgt für eine viel flüssigere Überblendungsanimation, wenn die Größe von Nicht-Video-Inhalten im BiB-Fenster angepasst wird. Bisher konnte das Ändern der Größe von Inhalten, die keine Videos sind, in einem BiB-Fenster zu irritierenden visuellen Artefakten führen.
Neue Anrufbenachrichtigungen ermöglichen das Ranking eingehender Anrufe
Unter Android 12 wird der neue Benachrichtigungsstil Notification.CallStyle
für Anrufe hinzugefügt. Mit dieser Vorlage kann deine App auf die Bedeutung aktiver Anrufe hinweisen, indem ein auffälliger Chip mit der Uhrzeit des Anrufs in der Statusleiste angezeigt wird. Der Nutzer kann darauf tippen, um zu seinem Anruf zurückzukehren.
Da eingehende und laufende Anrufe für Nutzer am wichtigsten sind, werden diese Benachrichtigungen in der Leiste oben angezeigt. Diese Einstufung ermöglicht es dem System auch, diese priorisierten Aufrufe potenziell 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();
Verwenden Sie forIncomingCall()
, um eine Anrufbenachrichtigung für einen eingehenden Anruf 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);
Mit forOngoingCall()
können Sie eine Anrufbenachrichtigung für einen laufenden Anruf 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);
Mit forScreeningCall()
können Sie eine Benachrichtigung im Anrufstil zum Filtern eines Anrufs 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);
Unterstützung von erweiterten Bildern für Benachrichtigungen
Unter Android 12 kannst du jetzt die Benachrichtigungsfunktion deiner App optimieren, indem du animierte Bilder in MessagingStyle()
- und BigPictureStyle()
-Benachrichtigungen angibst. Außerdem kann Ihre App Nutzern jetzt das Senden von Bildnachrichten ermöglichen, wenn sie über die Benachrichtigungsleiste auf Nachrichten antworten.
Verbesserungen des immersiven Modus für die Bedienung über Gesten
In Android 12 wird das vorhandene Verhalten konsolidiert, damit Nutzer Befehle der Gestensteuerung im immersiven Modus einfacher ausführen können. Darüber hinaus bietet Android 12 Abwärtskompatibilität für den fixierten immersiven Modus.
Freigabe der letzten URL (nur Pixel)
Auf Pixel-Geräten können Nutzer jetzt Links zu zuletzt angesehenen Webinhalten direkt über den Bildschirm „Zuletzt verwendet“ teilen. Nachdem sie den Inhalt in einer App aufgerufen haben, können sie zum Bildschirm „Zuletzt verwendet“ wischen und die App suchen, in der sie sich die Inhalte angesehen haben. Tippen Sie dann auf die Schaltfläche „Link“, um die URL zu kopieren oder zu teilen.
Weitere Informationen finden Sie unter Freigabe der zuletzt verwendeten URLs aktivieren.
Sicherheit & Datenschutz
Privatsphäredashboard
Auf unterstützten Geräten mit Android 12 oder höher wird in den Systemeinstellungen der Bildschirm „Privatsphäredashboard“ angezeigt. Auf diesem Bildschirm können Nutzer separate Bildschirme aufrufen, auf denen angezeigt wird, wenn Apps auf Standort-, Kamera- und Mikrofoninformationen zugreifen. Auf jedem Bildschirm wird eine Zeitachse angezeigt, die Aufschluss darüber gibt, wann verschiedene Apps auf einen bestimmten Datentyp zugegriffen haben. Abbildung 1 zeigt die Zeitachse für den Datenzugriff für Standortinformationen.
Ihre App kann Nutzern eine Begründung liefern, die ihnen hilft zu verstehen, warum Ihre App auf Standort-, Kamera- oder Mikrofoninformationen zugreift. Diese Begründung kann auf dem Bildschirm des neuen Privatsphäredashboards, auf dem Berechtigungsbildschirm Ihrer App oder in beiden angezeigt werden.
Bluetooth-Berechtigungen
Unter Android 12 werden die Berechtigungen BLUETOOTH_SCAN
, BLUETOOTH_ADVERTISE
und BLUETOOTH_CONNECT
eingeführt. Diese Berechtigungen erleichtern es Apps, die auf Android 12 ausgerichtet sind, mit Bluetooth-Geräten zu interagieren, insbesondere für Apps, die keinen Zugriff auf den Gerätestandort benötigen.
Erklärungen zu Bluetooth-Berechtigungen Ihrer App aktualisieren
Wenn du dein Gerät für die Ausrichtung auf Android 12 oder höher vorbereiten möchtest, musst du die Logik deiner App aktualisieren. Deklarieren Sie keine alten Bluetooth-Berechtigungen, sondern modernere Bluetooth-Berechtigungen.
Suche nach Berechtigungsgruppen
Unter Android 12 oder höher können Sie abfragen, wie das System die von der Plattform bereitgestellten Berechtigungen in Berechtigungsgruppen organisiert:
- Um die Berechtigungsgruppe zu ermitteln, der das System eine plattformdefinierte Berechtigung zugewiesen hat, rufen Sie
getGroupOfPlatformPermission()
auf. - Rufen Sie
getPlatformPermissionsForGroup()
auf, um die plattformdefinierten Berechtigungen zu ermitteln, die das System einer bestimmten Berechtigungsgruppe zugewiesen hat.
Anwendungs-Overlay-Fenster ausblenden
Um Entwicklern mehr Kontrolle darüber zu geben, was Nutzer sehen, wenn sie mit der App des Entwicklers interagieren, bietet Android 12 die Möglichkeit, Overlay-Fenster auszublenden, die von Apps mit der Berechtigung SYSTEM_ALERT_WINDOW
gezeichnet werden.
Nach dem Deklarieren der Berechtigung HIDE_OVERLAY_WINDOWS
kann eine App setHideOverlayWindows()
aufrufen, um anzugeben, dass alle Fenster vom Typ TYPE_APPLICATION_OVERLAY
ausgeblendet werden sollen, wenn das eigene Fenster der App sichtbar ist. Apps können dies bei der Anzeige von sensiblen Bildschirmen, wie z. B. Transaktionsbestätigungsabläufen, tun.
Apps, in denen Fenster vom Typ TYPE_APPLICATION_OVERLAY
angezeigt werden, sollten Alternativen in Betracht ziehen, die für ihren Anwendungsfall besser geeignet sind, z. B. Bild im Bild oder Bubbles.
Flag zum Schutz der Berechtigung für bekannte Unterzeichner
Ab Android 12 können Sie mit dem Attribut knownCerts
für Berechtigungen auf Signaturebene auf die Digests bekannter Signaturzertifikate zum Zeitpunkt der Deklaration verweisen.
Ihre App kann dieses Attribut deklarieren und das Flag knownSigner
verwenden, damit Geräte und Apps anderen Apps Signaturberechtigungen erteilen können, ohne die Apps bei Herstellung und Versand des Geräts signieren zu müssen.
Attestierung von Geräteeigenschaften
Unter Android 12 wird die Gruppe von Apps erweitert, die die Geräteeigenschaften eines Attestierungszertifikats prüfen können, wenn diese Apps einen neuen Schlüssel generieren.
Ab Android 9 (API-Level 28) können Inhaber von Geräterichtlinien, die Keymaster 4.0 oder höher verwenden, die Geräteeigenschaften in diesen Attestierungszertifikaten prüfen. Ab Android 12 kann jede App, die auf Android 12 (API-Level 31) oder höher ausgerichtet ist, diese Überprüfung mit der Methode setDevicePropertiesAttestationIncluded()
durchführen.
Die generierten Geräteeigenschaften umfassen die folgenden Build
-Felder:
BRAND
DEVICE
MANUFACTURER
MODEL
PRODUCT
Aktionen für sichere Benachrichtigungen auf dem Sperrbildschirm
Ab Android 12 unterstützt die Klasse Notification.Action.Builder
die Methode setAuthenticationRequired()
. Diese ermöglicht es deiner App, ein Gerät zu entsperren, bevor sie eine bestimmte Benachrichtigungsaktion auslöst. Diese Methode bietet eine zusätzliche Sicherheitsebene für Benachrichtigungen auf gesperrten Geräten.
Lokalisierbare Strings für BiometricPrompt
Mit Android 12 werden neue APIs eingeführt, mit denen du die biometrische Authentifizierung deiner App für Nutzer verbessern kannst. Die neue verschachtelte Klasse BiometricManager.Strings
enthält die Methoden getButtonLabel()
, getPromptMessage()
und getSettingName()
, mit denen Ihre App ein für Nutzer lesbares und lokalisiertes Schaltflächenlabel, eine Prompt-Nachricht oder den Namen einer App-Einstellung abrufen kann. Verwenden Sie diese Labels, um genauere Anweisungen für Nutzer zu erstellen, die sich auf die verwendeten biometrischen Authentifizierungsmethoden beziehen, z. B. „Entsperrung per Gesichtserkennung verwenden“ oder „Mit Fingerabdruck fortfahren“.
Phishing-Erkennung in Messaging-Apps (nur Pixel)
Auf unterstützten Pixel-Geräten führt Android 12 eine Phishing-Erkennung für Nachrichten aus, die in gängigen Messaging-Apps empfangen werden. Das System nutzt maschinelles Lernen auf dem Gerät, um verdächtige Aktivitäten zu erkennen. Wenn sie erkannt werden, blendet das System über der Benutzeroberfläche der Messaging-App ein Sicherheits-Overlay ein, um Nutzer zu warnen. Beispielsweise kann die Phishing-Erkennung 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 kann der Nutzer nicht nur eine Warnung erhalten, sondern auch eine verdächtige Nachricht melden und Feedback zu Warnungen des Systems geben.
Entwickler können diese Funktion deaktivieren, indem sie ein neues Metadaten-Tag mit dem String com.google.android.ALLOW_PHISHING_DETECTION
in ihre App-Manifestdateien einfügen. Beispiele:
<manifest>
<application android:name="com.messagingapp">
<meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />
</application>
</manifest>
Medien
Transcodierung kompatibler Medien
Ab Android 12 (API-Level 31) kann das System auf dem Gerät aufgezeichnete HEVC(H.265)- und HDR-Videos (HDR10 und HDR10+) automatisch in das AVC-Format (H.264) transcodieren, das mit Standardplayern weithin kompatibel ist. Dadurch werden moderne Codecs genutzt, wenn sie verfügbar sind, ohne die Kompatibilität mit älteren Anwendungen zu beeinträchtigen.
Weitere Informationen finden Sie unter Kompatible Medientranscodierung.
Performance-Klasse
Mit Android 12 wird der Standard Leistungsklasse eingeführt. Eine Leistungsklasse gibt Hardwarefunktionen an, die über die Basisanforderungen von Android hinausgehen. Jedes Android-Gerät deklariert die von ihm unterstützte Leistungsklasse. Entwickler können die Leistungsklasse des Geräts zur Laufzeit prüfen und ein Upgrade bereitstellen, das die Funktionen des Geräts voll ausnutzt.
Weitere Informationen finden Sie unter Leistungsklasse.
Verbesserungen bei der Videocodierung
Android 12 definiert einen Standardsatz von Schlüsseln zum Steuern des Quantisierungsparameterwerts (QP) für die Videocodierung, damit Entwickler anbieterspezifischen Code vermeiden können.
Die neuen Schlüssel sind in der MediaFormat
API und in der NDK-Mediathek verfügbar.
Ab Android 12 setzen Videoencoder einen Mindestwert für die Qualität durch. So wird sichergestellt, dass die Codierung von Videos mit hoher Szenenkomplexität nicht mit extrem niedriger Qualität verbunden ist.
Audiofokus
Ab Android 12 (API-Level 31): Wenn eine App den Audiofokus anfordert, während eine andere App im Fokus ist und wiedergegeben wird, wird die laufende App ausgeblendet.
Weitere Informationen finden Sie unter Audiofokus unter Android 12 und höher.
MediaDrm-Updates
So ermitteln Sie, ob für die aktuellen MediaDrm
APIs eine sichere Decoderkomponente erforderlich ist:
- Erstellen Sie ein
MediaDrm
. - Öffnen Sie eine Sitzung, um eine Sitzungs-ID zu erhalten.
- Erstellen Sie ein
MediaCrypto
mithilfe der Sitzungs-ID. 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
Kamera2-Anbietererweiterungen
Viele unserer Gerätehersteller haben benutzerdefinierte Kameraerweiterungen wie z. B. Bokeh, HDR und Nachtmodus entwickelt, mit denen sie Apps auf ihren Geräten für besondere Erlebnisse verwenden möchten. Diese benutzerdefinierten Anbietererweiterungen werden bereits von der CameraX-Bibliothek unterstützt. In Android 12 sind diese Anbietererweiterungen jetzt direkt auf der Plattform verfügbar.
Dadurch können Anwendungen mit komplexen Camera2
-Implementierungen die Vorteile von Anbietererweiterungen nutzen, ohne wesentliche Änderungen am Legacy-Code vornehmen zu müssen. Die Camera2-Erweiterungs-APIs stellen genau die gleichen Erweiterungen wie in CameraX bereit und werden bereits auf vielen verschiedenen Geräten unterstützt, sodass Sie sie ohne zusätzliche Konfiguration verwenden können.
Weitere Informationen findest du unter CameraExtensionCharacteristics
.
Unterstützung für Vier-Bayer-Kamerasensoren
Viele Android-Geräte werden heute mit extrem hochauflösenden Kamerasensoren ausgestattet, üblicherweise mit Quad- oder Nona-Bayer-Mustern, und diese bieten eine große Flexibilität in puncto Bildqualität und Leistung bei schlechten Lichtverhältnissen. Mit Android 12 werden neue Plattform-APIs eingeführt, mit denen Drittanbieter-Apps diese vielseitigen Sensoren optimal nutzen können. Die neuen APIs unterstützen das einzigartige Verhalten dieser Sensoren und berücksichtigen, dass sie beim Betrieb in voller Auflösung oder im Modus „Maximale Auflösung“ statt „Standard“ unterschiedliche Streamkonfigurationen und ‐kombinationen unterstützen können.
Grafiken und Bilder
Apps direkten Zugriff auf Tombstone-Traces gewähren
Ab Android 12 können Sie über die Methode ApplicationExitInfo.getTraceInputStream()
als Protokollpuffer auf das native Absturz-Tombstone Ihrer App zugreifen. Der Protokollpuffer wird mithilfe dieses Schemas serialisiert.
Bisher war die einzige Möglichkeit, auf diese Informationen zuzugreifen, über die Android Debug Bridge (ADB).
Weitere Informationen finden Sie unter Apps direkten Zugriff auf Tombstone-Traces gewähren.
Unterstützung von AVIF-Bildern
Mit Android 12 werden Bilder im AV1 Image File Format (AVIF) unterstützt. AVIF ist ein Containerformat für Bilder und Bildsequenzen, die mit AV1 codiert wurden. AVIF nutzt den Intraframe-codierten Inhalt aus der Videokomprimierung. Dadurch wird die Bildqualität für dieselbe Dateigröße im Vergleich zu älteren Bildformaten wie JPEG erheblich verbessert. Ausführliche Informationen zu den Vorteilen dieses Formats finden Sie in Jake Archibalds Blogpost.
Einfacheres Weichzeichnen, Farbfilter und andere Effekte
Unter Android 12 wird das neue RenderEffect
hinzugefügt, mit dem gängige Grafikeffekte wie Weichzeichner, Farbfilter, Android-Shader-Effekte und mehr auf View
s und Rendering-Hierarchien angewendet werden. Effekte können entweder als Ketteneffekte (die einen inneren und äußeren Effekt ergeben) oder als Mischeffekte kombiniert werden. Aufgrund begrenzter Rechenleistung wird die Funktion von verschiedenen Android-Geräten unterstützt, möglicherweise aber auch nicht.
Effekte können auch auf das zugrunde liegende RenderNode
für View
-Elemente angewendet werden, indem View.setRenderEffect(RenderEffect)
aufgerufen wird.
So implementieren Sie ein RenderEffect
:
view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))
Native animierte Bilddecodierung
In Android 12 wurde die NDK ImageDecoder
API erweitert, um alle Frames und Timing-Daten aus Bildern zu decodieren, die das animierte GIF- und animierte WebP-Dateiformat verwenden. Bei der Einführung in Android 11 wurde mit dieser API nur das erste Bild aus Animationen in diesen Formaten decodiert.
Verwende ImageDecoder
anstelle von Bibliotheken von Drittanbietern, um die APK-Größe weiter zu verringern und von zukünftigen Updates in Bezug auf Sicherheit und Leistung zu 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 zur Verwaltung des Geräts weiterhin ausgeführt werden müssen, werden in Android 12 APIs eingeführt, die Folgendes ermöglichen:
- Ermöglicht es Ihnen, den Ruhemodus einer App zu beenden, wenn sich ein Begleitgerät in Reichweite befindet.
- Es wird sichergestellt, dass der Prozess weiterläuft, während das Gerät innerhalb des Bereichs bleibt.
Damit Sie die APIs verwenden können, müssen Ihre Geräte über den Companion-Gerätemanager verbunden sein. Weitere Informationen finden Sie unter CompanionDeviceManager.startObservingDevicePresence()
und CompanionDeviceService.onDeviceAppeared()
.
Profile des Companion-Geräte-Managers
Partner-Apps unter Android 12 (API-Level 31) und höher können Companion-Geräteprofile verwenden, um eine Verbindung zu einer Uhr herzustellen. Die Verwendung eines Profils vereinfacht den Registrierungsprozess, da das Gewähren von gerätetypspezifischen Berechtigungen in einem Schritt gebündelt wird.
Die Berechtigungen im Set werden der Companion-App gewährt, sobald das Gerät verbunden ist, und gelten nur, solange das Gerät verknüpft ist. Wenn Sie die App löschen oder die Verknüpfung aufheben, werden die Berechtigungen entfernt.
Weitere Informationen findest du unter AssociationRequest.Builder.setDeviceProfile()
.
Verbesserungen bei der Schätzung der Bandbreite
In Android 12 wurden die Funktionen zur Schätzung der Bandbreite von getLinkDownstreamBandwidthKbps()
und getLinkUpstreamBandwidthKbps()
sowohl für WLAN- als auch für Mobilfunkverbindungen verbessert. Die zurückgegebenen Werte geben jetzt den gewichteten durchschnittlichen Gesamtdurchsatz des Nutzers pro Mobilfunkanbieter oder WLAN-SSID, Netzwerktyp und Signalebene für alle Anwendungen auf dem Gerät wieder.
Dies kann eine genauere und realistischere Schätzung des erwarteten Durchsatzes zurückgeben, Schätzungen zu einem Kaltstart Ihrer Anwendung liefern und erfordert im Vergleich zu anderen Methoden zur Durchsatzschätzung weniger Zyklen.
Wi-Fi Aware (NAN)-Verbesserungen
Unter Android 12 wurden einige Verbesserungen für Wi-Fi Aware vorgenommen:
- Auf Geräten mit Android 12 (API-Level 31) und höher kannst du den
onServiceLost()
-Callback verwenden, um dich zu benachrichtigen, wenn deine App einen erkannten Dienst verloren hat, weil der Dienst angehalten wurde oder sich außerhalb des Bereichs bewegt hat. - Die Einrichtung mehrerer Datenpfade (NAN-Datenpfade) wird derzeit noch effizienter. Frühere Versionen verwendeten L2-Messaging, um Peer-Informationen der Initiatoren auszutauschen, was Latenz verursachte. Auf Geräten mit Android 12 und höher kann der Listener (Server) so konfiguriert werden, dass er beliebige Peers akzeptiert. Das heißt, er muss die Initiatorinformationen nicht im Voraus kennen. Dies beschleunigt das Bereitstellen des Datenpfads und ermöglicht mehrere Punkt-zu-Punkt-Verbindungen mit nur einer Netzwerkanfrage.
- Auf Geräten mit Android 12 und höher können Sie
WifiAwareManager.getAvailableAwareResources()
aufrufen, um zu verhindern, dass das Framework Erkennungs- oder Verbindungsanfragen aufgrund fehlender Ressourcen ablehnt. Mit dem Rückgabewert dieser Methode können Sie die Anzahl der verfügbaren Datenpfade, die Anzahl der verfügbaren Veröffentlichungssitzungen und die Anzahl der verfügbaren Abo-Sitzungen abrufen.
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 Hardwareunterstützung ausgeführt werden, wird Ihre vorhandene WLAN-Verbindung beim Herstellen der Verbindung zum Peer-Gerät nicht durch Verwendung von Peer-to-Peer-Verbindungen getrennt. Mit WifiManager.isMultiStaConcurrencySupported()
können Sie prüfen, ob dieses Feature unterstützt wird.
Bildschirm für NFC-Zahlungen aktivieren
In Apps, die auf Android 12 und höher ausgerichtet sind, kannst du NFC-Zahlungen aktivieren, ohne dass der Bildschirm des Geräts eingeschaltet ist. Dazu setzt du requireDeviceScreenOn
auf false
. Weitere Informationen zu NFC-Zahlungen bei ausgeschaltetem oder gesperrtem Display findest du unter Bildschirm ab und Sperrbildschirm.
Datenspeicher
Android 12 bietet die folgenden Funktionen zur Speicherverwaltung:
- Media Store-Unterstützung für
MediaDocumentsProvider
, wenn Ihre Anwendung einen Medien-URI abruft, der einem bestimmten Dokumentanbieter-URI entspricht. - Ein Verzeichnis für Sprachaufnahmen.
- Die Berechtigung
MANAGE_MEDIA
, mit der eine App Medienverwaltungsvorgänge ausführen kann, ohne dem Nutzer für jeden Vorgang ein Bestätigungsdialogfeld anzeigen zu müssen. - Anwendungen, die sowohl die Berechtigung
MANAGE_EXTERNAL_STORAGE
als auch die BerechtigungQUERY_ALL_PACKAGES
haben (z. B. Apps zur Dateiverwaltung), können eine benutzerdefinierte Aktivität aufrufen, um den Speicherplatz einer anderen App zu verwalten, sofern die andere App die benutzerdefinierte Aktivität erstellt.
Hauptfunktion
Automatische App-Updates
In Android 12 wird die Methode setRequireUserAction()
für Apps eingeführt, die die PackageInstaller
API verwenden.
Mit dieser Methode können Installationsanwendungen App-Updates ausführen, ohne dass der Nutzer die Aktion bestätigen muss.
Informationen zum Geräte-Chipsatz
Android 12 fügt android.os.Build
zwei Konstanten hinzu, die Informationen zum SoC-Chipsatz-Anbieter und zum Modell über das SDK zur Verfügung stellen. Sie können diese Informationen abrufen, indem Sie Build.SOC_MANUFACTURER
bzw. Build.SOC_MODEL
aufrufen.
Updates für die wichtigsten Java-APIs
Auf Anfragen und in Zusammenarbeit mit Entwicklern haben wir Android 12 die folgenden Kernbibliotheken hinzugefügt:
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
|