Android 12 bietet Entwicklern viele neue Funktionen und APIs. In den folgenden Abschnitten erfahren Sie mehr über die Funktionen für Ihre Apps und wie Sie mit den zugehörigen APIs beginnen.
Eine detaillierte Liste der neuen, geänderten und entfernten APIs finden Sie im API-Diff-Bericht. Details zu neuen APIs finden Sie in der Android-API-Referenz. Neue APIs sind zur besseren Übersichtlichkeit hervorgehoben. Informationen zu Bereichen, in denen sich Plattformänderungen auf Ihre Apps auswirken können, finden Sie unter Verhaltensänderungen in Android 12 für Apps, die auf Android 12 ausgerichtet sind und für alle Apps.
Nutzererfahrung
Material You
Mit Android 12 wird eine neue Designsprache namens Material You eingeführt, mit der Sie personalisierte, ansprechende Apps entwickeln können. Wenn Sie alle aktuellen Material Design 3-Updates in Ihre Apps einbinden möchten, können Sie eine Alphaversion von Material Design Components ausprobieren.
Verbesserungen bei Widgets
In Android 12 wurde die vorhandene Widgets API überarbeitet, um die Nutzer- und Entwicklerfreundlichkeit der Plattform und der Launcher zu verbessern. Wir haben einen Leitfaden erstellt, der Ihnen dabei helfen soll, Ihr Widget mit Android 12 kompatibel zu machen und es mit neuen Funktionen zu aktualisieren.
Weitere Informationen finden Sie unter Verbesserungen bei Android 12-Widgets.
Einfügen von Rich Content
Mit Android 12 wird eine neue einheitliche API eingeführt, mit der Ihre App Rich Content aus beliebigen verfügbaren Quellen empfangen kann: Zwischenablage, Tastatur oder Drag-and-drop.
Weitere Informationen finden Sie unter Rich Content empfangen.
API für App-Splashscreens
Mit Android 12 wird eine neue App-Startanimation für alle Apps eingeführt. Sie umfasst eine Bewegung von der Startposition in die App, einen Ladebildschirm mit dem App-Symbol und einen Übergang zur App selbst. Weitere Informationen finden Sie im Entwicklerleitfaden für Splash-Screens.
APIs für abgerundete 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.
Umfassende haptische Erlebnisse
Android 12 bietet mehr Tools zum Erstellen von informativem haptischem Feedback für UI-Ereignisse, immersiven und ansprechenden Effekten für Spiele und aufmerksamen Haptik für die Produktivität.
Stellgliedeffekte
In Android 12 wurden ausdrucksstarke Effekte wie low tick eingeführt, die die größere Frequenzbandbreite der neuesten Aktuatoren nutzen. Spieleentwickler können jetzt unabhängig voneinander auf mehrere verschiedene Aktuatoren in Gamecontrollern zugreifen, um denselben Effekt synchron oder verschiedene haptische Effekte auf mehreren Aktuatoren zu erzielen. Entwicklern empfehlen wir, die Konstanten und Grundelemente als Bausteine für komplexe haptische Effekte zu verwenden. Konstanten können zur Verbesserung von UI-Ereignissen eingesetzt werden und mit dem Haptic Composer lassen sich Grundelemente für komplexere Effekte sequenzieren. Diese APIs können auf Pixel 4-Geräten getestet werden. Wir arbeiten weiterhin mit unseren Geräteherstellerpartnern zusammen, um Nutzern im gesamten Ökosystem die neuesten Haptikfunktionen zur Verfügung zu stellen.
Audio-gekoppelte haptische Effekte
Android 12-Apps können haptisches Feedback aus einer Audiositzung mit dem Vibrator des Smartphones erzeugen. Das ermöglicht ein noch intensiveres Spiel- und Audioerlebnis. So können beispielsweise durch haptische Signale verstärkte Klingeltöne Anrufer identifizieren oder ein Fahrspiel kann das Gefühl von unebenem Gelände simulieren.
Weitere Informationen finden Sie in der HapticGenerator
-Referenzdokumentation.
AppSearch
Mit Android 12 wird AppSearch, eine leistungsstarke On-Device-Suchmaschine, als Systemdienst eingeführt. Mit AppSearch können Anwendungen strukturierte Daten indexieren und mit integrierten Volltextsuchfunktionen durchsuchen. Außerdem unterstützt AppSearch native Suchfunktionen wie hocheffiziente Indexierung und Abruf, mehrsprachige Unterstützung und Relevanzranking.

AppSearch ist in zwei Varianten verfügbar: ein lokaler Index für Ihre Anwendung, der mit älteren Android-Versionen kompatibel ist, oder ein zentraler Index, der in Android 12 für das gesamte System verwaltet wird. Über den zentralen Index kann Ihre App ihre Daten auf System-UI-Oberflächen anzeigen lassen, die von der vorinstallierten Intelligenzkomponente des Systems bereitgestellt werden. Welche Daten genau auf Oberflächen der System-UI angezeigt werden, hängt vom OEM ab. Außerdem kann Ihre Anwendung Daten sicher mit anderen Anwendungen teilen, damit diese auch in diesen Daten suchen können.
Weitere Informationen zu AppSearch und zur Verwendung der AppSearch Jetpack-Bibliothek, die eine entwicklerfreundliche API-Oberfläche sowie Unterstützung für Annotationsprozessoren bietet.
Spielmodus
Mit der Game Mode API und den Game Mode-Interventionen können Sie das Gameplay optimieren, indem Sie Eigenschaften wie Leistung oder Akkulaufzeit basierend auf den Einstellungen der Nutzer oder spieleigenen Konfigurationen priorisieren.
Weitere Informationen finden Sie unter Spielmodus.
Empfehlungen und Verbesserungen für die Bild-im-Bild-Funktion (BiB)
Mit Android 12 werden die folgenden Verbesserungen für den BiB-Modus eingeführt:
Unterstützung für neue BiB-Gesten
Android 12 unterstützt jetzt Gesten zum Verkleinern und Vergrößern für das BiB-Fenster:
Um das Fenster zu minimieren, kann der Nutzer es an den linken oder rechten Rand ziehen. Um das Fenster wieder zu öffnen, kann der Nutzer entweder auf den sichtbaren Teil des minimierten Fensters tippen oder es herausziehen.
Der Nutzer kann das BiB-Fenster jetzt durch Zusammen- oder Auseinanderziehen vergrößern oder verkleinern.
Empfohlene neue Funktionen für einen reibungslosen PiP-Übergang
In Android 12 wurden erhebliche kosmetische Verbesserungen an den animierten Übergängen zwischen Vollbild- und BiB-Fenstern vorgenommen. Wir empfehlen dringend, alle anwendbaren Änderungen zu implementieren. Sobald Sie dies getan haben, werden diese Änderungen automatisch auf große Bildschirme wie Foldables und Tablets skaliert, ohne dass weitere Maßnahmen erforderlich sind.
Dazu gehören:
Neues API-Flag für einen reibungsloseren Übergang in den BiB-Modus bei der Gestennavigation
Verwende das Flag
setAutoEnterEnabled
, um für sanftere Übergänge in den BiB-Modus zu sorgen, wenn du im Gestensteuerungsmodus nach oben wischst, um zum Startbildschirm zu gelangen. Bisher hat Android gewartet, bis die Animation „Nach oben wischen, um zum Startbildschirm zu gelangen“ abgeschlossen war, bevor das BiB-Fenster eingeblendet wurde.Flüssigere Animationen beim Wechseln in den BiB-Modus und beim Beenden des BiB-Modus
Das Flag
SourceRectHint
wird jetzt wiederverwendet, um beim Aufrufen und Beenden des BiB-Modus eine flüssigere Animation zu ermöglichen.Neues API-Flag zum Deaktivieren der nahtlosen Größenanpassung für Nicht-Videoinhalte
Das Flag
SeamlessResizeEnabled
sorgt für eine viel flüssigere Überblendungsanimation beim Anpassen der Größe von Nicht-Videoinhalten im BiB-Fenster. Bisher konnte es beim Anpassen der Größe von Nicht-Videoinhalten in einem BiB-Fenster zu störenden visuellen Artefakten kommen.
Neue Benachrichtigungen für Telefonanrufe, mit denen die Wichtigkeit eingehender Anrufe eingestuft werden kann
In Android 12 wurde der neue Benachrichtigungsstil Notification.CallStyle
für Anrufe eingeführt. Mit dieser Vorlage kann Ihre App die Wichtigkeit aktiver Anrufe angeben, indem in der Statusleiste ein auffälliger Chip mit der Anrufzeit angezeigt wird. Der Nutzer kann auf diesen Chip tippen, um zum Anruf zurückzukehren.
Da eingehende und laufende Anrufe für Nutzer am wichtigsten sind, werden diese Benachrichtigungen im Benachrichtigungsfeld oben angezeigt. Durch diese Priorisierung kann das System diese Anrufe möglicherweise an andere Geräte weiterleiten.
Implementieren Sie den folgenden Code für alle Arten von Anrufen.
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 Benachrichtigung im Anrufstil 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);
Verwenden Sie forOngoingCall()
, 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);
Verwenden Sie forScreeningCall()
, um eine Benachrichtigung im Anrufstil für die Anrufüberprüfung 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);
Unterstützung von Rich-Media-Bildern für Benachrichtigungen
In Android 12 können Sie die Benachrichtigungen Ihrer App jetzt mit animierten Bildern in MessagingStyle()
- und BigPictureStyle()
-Benachrichtigungen anreichern. Außerdem können Nutzer jetzt Bildnachrichten senden, wenn sie über die Benachrichtigungsleiste auf Nachrichten antworten.
Verbesserungen des Immersionsmodus für die Bedienung über Gesten
In Android 12 wird das vorhandene Verhalten konsolidiert, um Nutzern die Ausführung von Gestennavigationsbefehlen im Immersive-Modus zu erleichtern. Außerdem bietet Android 12 Abwärtskompatibilitätsverhalten für den klebrigen immersiven Modus.
URL-Freigabe für zuletzt verwendete Elemente (nur Google Pixel)
Auf Pixel-Geräten können Nutzer jetzt Links zu kürzlich aufgerufenen Webinhalten direkt über den Bildschirm „Letzte Apps“ teilen. Nachdem der Nutzer die Inhalte in einer App aufgerufen hat, kann er zum Bildschirm „Zuletzt verwendet“ wischen und die App suchen, in der er die Inhalte angesehen hat. Anschließend kann er auf die Link-Schaltfläche tippen, um die URL zu kopieren oder zu teilen.
Weitere Informationen finden Sie unter Freigabe von URLs für zuletzt besuchte Seiten aktivieren.
Sicherheit und Datenschutz
Privatsphäredashboard
Auf unterstützten Geräten mit Android 12 oder höher wird in den Systemeinstellungen der Bildschirm „Datenschutz-Dashboard“ angezeigt. Auf diesem Bildschirm können Nutzer auf separate Bildschirme zugreifen, auf denen angezeigt wird, wann Apps auf Standort-, Kamera- und Mikrofoninformationen zugreifen. Auf jedem Bildschirm wird eine Zeitachse angezeigt, auf der zu sehen ist, wann verschiedene Apps auf einen bestimmten Datentyp zugegriffen haben. Abbildung 1 zeigt den Zeitplan für den Datenzugriff auf Standortinformationen.
Ihre App kann Nutzern eine Begründung liefern, damit sie nachvollziehen können, warum Ihre App auf Standort-, Kamera- oder Mikrofoninformationen zugreift. Diese Begründung kann auf dem neuen Privatsphäredashboard, auf dem Berechtigungsbildschirm Ihrer App oder auf beiden angezeigt werden.
Bluetooth-Berechtigungen
In Android 12 werden die Berechtigungen BLUETOOTH_SCAN
, BLUETOOTH_ADVERTISE
und BLUETOOTH_CONNECT
eingeführt. Diese Berechtigungen erleichtern Apps, die auf Android 12 ausgerichtet sind, die Interaktion mit Bluetooth-Geräten, insbesondere für Apps, die keinen Zugriff auf den Gerätestandort benötigen.
Erklärungen zu Bluetooth-Berechtigungen Ihrer App aktualisieren
Um Ihr Gerät für die Ausrichtung auf Android 12 oder höher vorzubereiten, müssen Sie die Logik Ihrer App aktualisieren. Deklarieren Sie anstelle einer alten Gruppe von Bluetooth-Berechtigungen eine modernere Gruppe von Bluetooth-Berechtigungen.
Berechtigungsgruppe suchen
Unter Android 12 oder höher können Sie abfragen, wie das System plattformseitig bereitgestellte Berechtigungen in Berechtigungsgruppen organisiert:
- Rufen Sie
getGroupOfPlatformPermission()
auf, um die Berechtigungsgruppe zu ermitteln, in die das System eine plattformdefinierte Berechtigung eingeordnet hat. - Um die plattformdefinierten Berechtigungen zu ermitteln, die das System in eine bestimmte Berechtigungsgruppe eingeordnet hat, rufen Sie
getPlatformPermissionsForGroup()
auf.
Anwendungs-Overlay-Fenster ausblenden
Damit Entwickler mehr Kontrolle darüber haben, was Nutzer sehen, wenn sie mit der App des Entwicklers interagieren, können in Android 12 Overlay-Fenster ausgeblendet werden, die von Apps mit der Berechtigung SYSTEM_ALERT_WINDOW
gezeichnet werden.
Nachdem die Berechtigung HIDE_OVERLAY_WINDOWS
deklariert wurde, 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 tun, wenn sensible Bildschirme angezeigt werden, z. B. Abläufe zur Bestätigung von Transaktionen.
Apps, die Fenster vom Typ TYPE_APPLICATION_OVERLAY
anzeigen, sollten Alternativen in Betracht ziehen, die für ihren Anwendungsfall möglicherweise besser geeignet sind, z. B. Bild-im-Bild oder Bubbles.
Angabe, dass die Berechtigung für bekannte Unterzeichner geschützt ist
Ab Android 12 können Sie mit dem Attribut knownCerts
für Berechtigungen auf Signaturlaufzeitebene bei der Deklaration auf die Digests bekannter Signaturzertifikate verweisen.
Ihre App kann dieses Attribut deklarieren und das Flag knownSigner
verwenden, um Geräten und Apps zu erlauben, Signaturberechtigungen für andere Apps zu erteilen, ohne dass die Apps zum Zeitpunkt der Geräteherstellung und des Versands signiert werden müssen.
Attestierung der Geräteeigenschaften
Unter Android 12 kann eine größere Anzahl von Apps die Geräteeigenschaften überprüfen, die in einem Bestätigungszertifikat enthalten sind, wenn diese Apps einen neuen Schlüssel generieren.
Ab Android 9 (API-Level 28) können Geräterichtlinieninhaber (Device Policy Owners, DPOs), die Keymaster 4.0 oder höher verwenden, die Geräteeigenschaften in diesen Attestierungszertifikaten überprü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äteattribute enthalten die folgenden Build
-Felder:
BRAND
DEVICE
MANUFACTURER
MODEL
PRODUCT
Sichere Aktionen für Benachrichtigungen auf dem Sperrbildschirm
Ab Android 12 unterstützt die Klasse Notification.Action.Builder
die Methode setAuthenticationRequired()
, mit der Ihre App erzwingen kann, dass ein Gerät entsperrt wird, bevor Ihre App eine bestimmte Benachrichtigungsaktion aufruft. Diese Methode bietet zusätzlichen Schutz für Benachrichtigungen auf gesperrten Geräten.
Lokalisierbare Strings für BiometricPrompt
Mit Android 12 werden neue APIs eingeführt, mit denen Sie die biometrische Authentifizierung in Ihrer App verbessern können. 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 Aufforderung oder einen Namen für eine App-Einstellung abrufen kann. Mit diesen Labels können Sie präzisere, nutzerorientierte Anleitungen erstellen, die sich auf die verwendeten biometrischen Authentifizierungsmethoden beziehen, z. B. „Gesichtserkennung verwenden“ oder „Mit Ihrem Fingerabdruck fortfahren“.
Phishing-Erkennung in Messaging-Apps (nur Pixel)

Auf unterstützten Pixel-Geräten mit Android 12 wird die Phishing-Erkennung für Nachrichten ausgeführt, die in häufig verwendeten Messaging-Apps empfangen werden. Das System verwendet maschinelles Lernen auf dem Gerät, um verdächtige Aktivitäten zu erkennen. Wenn das System eine solche Nachricht erkennt, wird ein Sicherheits-Overlay über der Benutzeroberfläche der Messaging-App angezeigt, um Nutzer zu warnen. Die Phishing-Erkennung kann Nutzer beispielsweise vor den folgenden potenziellen Risiken warnen:
- Verdächtige Anfragen, z. B. zum Senden eines Codes, von Geld oder Ähnlichem
- Nicht vertrauenswürdige URLs
- Schädliche Anhänge
- Links zu schädlichen Apps
Das Overlay warnt den Nutzer nicht nur, sondern ermöglicht es ihm auch, verdächtige Nachrichten zu melden und Feedback zu den vom System ausgegebenen Warnungen zu geben.
Entwickler können diese Funktion deaktivieren, indem sie ihren App-Manifestdateien ein neues Metadatentag mit dem String com.google.android.ALLOW_PHISHING_DETECTION
hinzufügen. Beispiel:
<manifest>
<application android:name="com.messagingapp">
<meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />
</application>
</manifest>
Medien
Transcodierung in kompatibles Medienformat
Ab Android 12 (API-Level 31) kann das System automatisch HEVC(H.265)- und HDR-Videos (HDR10 und HDR10+), die auf dem Gerät aufgenommen wurden, in AVC (H.264) transkodieren. Dieses Format ist weitgehend mit Standardplayern kompatibel. Dabei 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.
Leistungsklasse
Mit Android 12 wird ein Standard namens Leistungsklasse eingeführt. Eine Leistungsklasse gibt Hardwarefunktionen an, die über die Android-Basisanforderungen hinausgehen. Jedes Android-Gerät deklariert die unterstützte Leistungsklasse. Entwickler können die Leistungsklasse des Geräts zur Laufzeit prüfen und verbesserte Funktionen bereitstellen, die die Möglichkeiten des Geräts voll ausschöpfen.
Weitere Informationen finden Sie unter Leistungsklasse.
Verbesserungen bei der Videocodierung
In Android 12 wird ein Standardsatz von Schlüsseln zum Steuern des QP-Werts (Quantization Parameter) für die Videocodierung definiert. So können Entwickler anbieterspezifischen Code vermeiden.
Die neuen Schlüssel sind in der MediaFormat
API und in der NDK-Medienbibliothek verfügbar.
Ab Android 12 erzwingen Video-Encoder einen Mindestqualitätsgrenzwert. So wird sichergestellt, dass Nutzer beim Codieren von Videos mit hoher Szenenkomplexität keine extrem niedrige Qualität erleben.
Audiofokus
Ab Android 12 (API‑Level 31) blendet das System die App, die gerade Audio wiedergeben, aus, wenn eine andere App den Audiofokus anfordert.
Weitere Informationen finden Sie unter Audiofokus in Android 12 und höher.
MediaDrm-Updates
So ermitteln Sie, ob mit den aktuellen MediaDrm
-APIs eine sichere Decoderkomponente erforderlich ist:
- Erstellen Sie einen
MediaDrm
. - Öffnen Sie eine Sitzung, um eine Sitzungs-ID zu erhalten.
- Erstellen Sie mit der Sitzungs-ID ein
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 festlegen, sobald Sie ein MediaDrm
erstellen.
Kamera
Camera2-Anbietererweiterungen
Viele unserer Partner unter den Geräteherstellern haben benutzerdefinierte Kameraerweiterungen wie Bokeh, HDR und Nachtmodus entwickelt, die Apps verwenden sollen, um auf ihren Geräten differenzierte Funktionen zu ermöglichen. Die CameraX-Bibliothek unterstützt diese benutzerdefinierten Anbietererweiterungen bereits. In Android 12 werden diese Anbietererweiterungen jetzt direkt in der Plattform verfügbar gemacht.
Diese Ergänzung hilft Apps mit komplexen Camera2
-Implementierungen, Vendor-Erweiterungen zu nutzen, ohne dass wesentliche Änderungen am Legacy-Code vorgenommen werden müssen. Die Camera2 Extension APIs bieten genau dieselbe Reihe von Erweiterungen wie CameraX. Diese werden bereits auf vielen verschiedenen Geräten unterstützt, sodass Sie sie ohne zusätzliche Konfiguration verwenden können.
Weitere Informationen finden Sie unter CameraExtensionCharacteristics
.
Unterstützung für Quad-Bayer-Kamerasensoren
Viele Android-Geräte werden heute mit Kamerasensoren mit ultrahoher Auflösung ausgeliefert, in der Regel mit Quad- oder Nona-Bayer-Mustern. Diese bieten eine hohe Flexibilität in Bezug auf Bildqualität und Restlichtleistung. 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 möglicherweise unterschiedliche Streamkonfigurationen und ‑kombinationen unterstützen, wenn sie im Modus „Volle Auflösung“ oder „Maximale Auflösung“ im Vergleich zum „Standardmodus“ betrieben werden.
Grafiken und Bilder
Apps direkten Zugriff auf Tombstone-Traces gewähren
Ab Android 12 können Sie über die Methode ApplicationExitInfo.getTraceInputStream()
auf den nativen Absturz-Tombstone Ihrer App als Protocol Buffer zugreifen. Der Protokollpuffer wird mit diesem Schema serialisiert.
Bisher war der Zugriff auf diese Informationen nur über die Android Debug Bridge (adb) möglich.
Weitere Informationen finden Sie unter Apps direkten Zugriff auf Tombstone-Traces gewähren.
Unterstützung von AVIF-Bildern
Unter 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 sind. AVIF nutzt die Intra-Frame-codierten Inhalte aus der Videokomprimierung. Dadurch wird die Bildqualität bei gleicher Dateigröße im Vergleich zu älteren Bildformaten wie JPEG deutlich verbessert. Einen detaillierten Überblick über die Vorteile dieses Formats finden Sie im Blogpost von Jake Archibald.
Einfachere Weichzeichner, Farbfilter und andere Effekte
In Android 12 wird die neue RenderEffect
eingeführt, mit der gängige Grafikeffekte wie Unschärfe, Farbfilter und Android-Shader-Effekte auf View
s und Rendering-Hierarchien angewendet werden können. Effekte können entweder als Ketteneffekte (mit einem inneren und einem äußeren Effekt) oder als kombinierte Effekte kombiniert werden. Aufgrund der begrenzten Rechenleistung wird die Funktion möglicherweise nicht auf allen Android-Geräten unterstützt.
Effekte können auch auf das zugrunde liegende RenderNode
für View
s angewendet werden, indem View.setRenderEffect(RenderEffect)
aufgerufen wird.
So implementieren Sie ein RenderEffect
:
view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))
Decodierung nativer animierter Bilder
In Android 12 wurde die NDK-API ImageDecoder
erweitert, um alle Frames und Zeitmessungsdaten aus Bildern zu decodieren, die die Dateiformate animiertes GIF und animiertes WebP verwenden. Als sie in Android 11 eingeführt wurde, wurde mit dieser API nur das erste Bild aus Animationen in diesen Formaten decodiert.
Verwenden Sie ImageDecoder
anstelle von Drittanbieterbibliotheken, 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 halten
Damit Companion-Apps zur Verwaltung des Geräts ausgeführt werden können, werden in Android 12 APIs eingeführt, die Folgendes ermöglichen:
- Ermöglicht es, eine App zu aktivieren, wenn sich ein Begleitgerät in Reichweite befindet.
- So wird sichergestellt, dass der Vorgang fortgesetzt wird, solange sich das Gerät in Reichweite befindet.
Damit Sie die APIs verwenden können, müssen Ihre Geräte über Companion Device Manager verbunden sein. Weitere Informationen finden Sie unter CompanionDeviceManager.startObservingDevicePresence()
und CompanionDeviceService.onDeviceAppeared()
.
Companion Device Manager-Profile

Partner-Apps unter Android 12 (API-Level 31) und höher können beim Herstellen einer Verbindung zu einer Smartwatch Profile für Companion-Geräte verwenden. Die Verwendung eines Profils vereinfacht die Registrierung, da die Erteilung eines gerätetypspezifischen Satzes von Berechtigungen in einem Schritt erfolgt.
Die gebündelten Berechtigungen werden der Companion-App gewährt, sobald das Gerät verbunden wird, und gelten nur, solange das Gerät verknüpft ist. Wenn Sie die App löschen oder die Verknüpfung entfernen, werden die Berechtigungen entfernt.
Weitere Informationen finden Sie unter AssociationRequest.Builder.setDeviceProfile()
.
Verbesserungen bei der Bandbreitenschätzung
In Android 12 wurden die Funktionen zur Bandbreitenschätzung von
getLinkDownstreamBandwidthKbps()
und
getLinkUpstreamBandwidthKbps()
sowohl für WLAN als auch für Mobilfunkverbindungen verbessert. Die zurückgegebenen Werte stellen jetzt den gewichteten Durchschnitt des Durchsatzes des Nutzers pro Mobilfunkanbieter oder WLAN-SSID, Netzwerktyp und Signalstärke über alle Anwendungen auf dem Gerät hinweg dar.
So lässt sich eine genauere und realistischere Schätzung des erwarteten Durchsatzes erzielen. Außerdem können Schätzungen für einen Kaltstart Ihrer Anwendung bereitgestellt werden. Im Vergleich zu anderen Methoden zur Schätzung des Durchsatzes sind weniger Zyklen erforderlich.
Verbesserungen bei Wi‑Fi Aware (NAN)
In Android 12 wurden einige Verbesserungen an Wi-Fi Aware vorgenommen:
- Auf Geräten mit Android 12 (API‑Level 31) und höher können Sie den Callback
onServiceLost()
verwenden, um benachrichtigt zu werden, wenn Ihre App einen erkannten Dienst verloren hat, weil der Dienst beendet wurde oder sich außerhalb der Reichweite befindet. - Die Einrichtung mehrerer Datenpfade (NAN-Datenpfade) wird effizienter gestaltet. In früheren Versionen wurde L2-Messaging verwendet, um Peer-Informationen der Initiatoren auszutauschen, was zu Latenz führte. Auf Geräten mit Android 12 und höher kann der Responder (Server) so konfiguriert werden, dass er alle Peers akzeptiert. Das bedeutet, dass er die Initiatorinformationen nicht im Voraus kennen muss. Dadurch wird die Einrichtung des Datenpfads beschleunigt und es sind mehrere Point-to-Point-Verbindungen mit nur einer Netzwerkanfrage möglich.
- Damit das Framework keine Erkennungs- oder Verbindungsanfragen ablehnt, weil die Ressourcen erschöpft sind, können Sie auf Geräten mit Android 12 und höher
WifiAwareManager.getAvailableAwareResources()
aufrufen. 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 Abonnementsitzungen 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 bei Verwendung von Peer-to-Peer-Verbindungen die vorhandene WLAN-Verbindung nicht getrennt, wenn die Verbindung zum Peer-Gerät hergestellt wird. Verwenden Sie WifiManager.isMultiStaConcurrencySupported()
, um zu prüfen, ob diese Funktion unterstützt wird.
NFC-Zahlungen bei ausgeschaltetem Display aktivieren
In Apps, die auf Android 12 und höher ausgerichtet sind, können Sie NFC-Zahlungen aktivieren, ohne dass das Display des Geräts eingeschaltet ist. Dazu müssen Sie requireDeviceScreenOn
auf false
festlegen. Weitere Informationen zu NFC-Zahlungen bei ausgeschaltetem Display oder gesperrtem Gerät finden Sie unter Verhalten bei ausgeschaltetem Display und Sperrbildschirm.
Speicher
Mit Android 12 werden die folgenden Funktionen zur Speicherverwaltung eingeführt:
- Unterstützung des Medienspeichers für
MediaDocumentsProvider
, wenn Ihre App einen Medien-URI abruft, der einem bestimmten URI des Dokumentanbieters entspricht. - Ein Verzeichnis für Sprachaufnahmen.
- Die Berechtigung
MANAGE_MEDIA
, mit der eine App Medienverwaltungsfunktionen ausführen kann, ohne dem Nutzer für jede Funktion ein Bestätigungsdialogfeld anzuzeigen. - Apps, die sowohl die Berechtigung
MANAGE_EXTERNAL_STORAGE
als auch die BerechtigungQUERY_ALL_PACKAGES
haben, z. B. Dateimanager-Apps, 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 Installer-Apps App-Updates durchführen, ohne dass der Nutzer die Aktion bestätigen muss.
Informationen zum Geräte-Chipsatz
In Android 12 werden android.os.Build
zwei Konstanten hinzugefügt, über die Informationen zum SoC-Chipsatzanbieter und -modell über das SDK verfügbar gemacht werden. Sie können diese Informationen durch Aufrufen von Build.SOC_MANUFACTURER
bzw. Build.SOC_MODEL
abrufen.
Aktualisierungen der wichtigsten Java-APIs
Aufgrund von Anfragen und der Zusammenarbeit mit Entwicklern haben wir in 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
|