Mit Android 12 werden tolle neue Funktionen und APIs für Entwickler eingeführt. In den folgenden Abschnitten erfahren Sie mehr über Funktionen für Ihre Apps und erhalten einen Einstieg in die zugehörigen APIs.
Eine detaillierte Liste der neuen, geänderten und entfernten APIs finden Sie im Bericht zu API-Unterschieden. Details zu neuen APIs finden Sie in der Android API-Referenz. Neue APIs sind hervorgehoben. Wenn du wissen möchtest, in welchen Bereichen sich Plattformänderungen auf deine Apps auswirken können, sieh dir die Verhaltensänderungen bei Android 12 für Apps, die auf Android 12 ausgerichtet sind und für alle Apps, an.
Nutzererfahrung
Material You
Mit Android 12 wird eine neue Designsprache namens Material You eingeführt, mit der du personalisierte und ansprechende Apps erstellen kannst. Um alle aktuellen Updates von Material Design 3 in deine Apps zu integrieren, kannst du eine Alphaversion der Material Design-Komponenten ausprobieren.
Verbesserungen bei Widgets
In Android 12 wird die bestehende Widgets API überarbeitet, um die Nutzer- und Entwicklererfahrung auf der Plattform und in Launchern zu verbessern. Wir haben einen Leitfaden erstellt, mit dem Sie prüfen können, ob Ihr Widget mit Android 12 kompatibel ist, und es mit neuen Funktionen aktualisieren können.
Weitere Informationen finden Sie unter Verbesserungen bei Widgets in Android 12.
Einfügen von Rich Content
Mit Android 12 wird eine neue einheitliche API eingeführt, mit der Ihre App Rich Content aus jeder verfügbaren Quelle empfangen kann: Zwischenablage, Tastatur oder Drag-and-drop.
Weitere Informationen finden Sie unter Rich Content empfangen.
App-Startbildschirm-API
Android 12 führt eine neue App-Startanimation für alle Apps ein, die eine Bewegung in der App ab dem Startpunkt, einen Splashscreen mit dem App-Symbol und einen Übergang zur App selbst umfasst. Weitere Informationen finden Sie im Entwicklerleitfaden für Splashscreens.
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.
Umfangreiche haptische Funktionen
Android 12 bietet zusätzliche Tools zum Erstellen von informativem haptischem Feedback für UI-Ereignisse, immersiven und ansprechenden Effekten für Spiele und haptische Haptik für mehr Produktivität.
Bedienelemente
Android 12 bietet ausdrucksstarke Effekte wie Low-Tick, die die breitere Frequenzbandbreite der neuesten Aktuatoren nutzen. Spieleentwickler können jetzt unabhängig in Gamecontrollern auf mehrere unterschiedliche Bedienelemente zugreifen, um denselben Effekt synchron oder unterschiedliche haptische Effekte auf mehrere Bedienelemente zu erzeugen. Entwicklern empfehlen wir die Verwendung der Konstanten und Primitive als Bausteine für umfassende haptische Effekte – Konstanten zur Optimierung von UI-Ereignissen und haptisches Composer zur Abfolge von Primitiven für komplexere Effekte. Diese APIs können auf Google Pixel 4 getestet werden. Wir arbeiten auch weiterhin mit unseren Geräteherstellern zusammen, um Nutzern im gesamten Ökosystem die neuesten haptischen Funktionen zur Verfügung zu stellen.
Audiogekoppelte haptische Effekte
Android 12-Apps können über den Vibrationsalarm des Smartphones haptisches Feedback generieren, das aus einer Audiositzung abgeleitet wird. Dies bietet die Möglichkeit für ein immersiveres Spiel- und Audioerlebnis. So können haptisch verstärkte Klingeltöne beispielsweise helfen, Anrufer zu identifizieren, oder ein Rennspiel könnte das Gefühl von rauem Gelände simulieren.
Weitere Informationen finden Sie in der Referenzdokumentation zu HapticGenerator
.
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. Darüber hinaus unterstützt AppSearch native Suchfunktionen wie hocheffiziente Indexierung und Abrufe, mehrsprachige Unterstützung und Relevanzranking.

AppSearch gibt es in zwei Varianten: einen lokalen Index, den Ihre App verwenden kann, der mit älteren Android-Versionen kompatibel ist, oder einen zentralen Index, der für das gesamte System in Android 12 verwaltet wird. Mithilfe des zentralen Index kann Ihre Anwendung zulassen, dass ihre Daten durch die vorinstallierte Informationskomponente des Systems auf Oberflächen der System-UI angezeigt werden. Welche Daten genau auf System-UI-Oberflächen angezeigt werden, hängt vom OEM ab. Außerdem kann Ihre Anwendung Daten auf sichere Weise mit anderen Anwendungen teilen, damit diese auch in diesen Daten suchen können.
Weitere Informationen zu AppSearch finden Sie im Entwicklerleitfaden. Die AppSearch-Jetpack-Bibliothek bietet eine entwicklerfreundliche API-Oberfläche sowie Unterstützung für Annotationsprozessoren.
Spielmodus
Mit der Game Mode API und den Spielmodus-Eingriffen können Sie das Spiel optimieren, indem Eigenschaften wie Leistung oder Akkulaufzeit basierend auf Nutzereinstellungen oder spielspezifischen Konfigurationen priorisiert werden.
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 Touch-Gesten zum Verpacken und Zoomen durch Auseinander- und Zusammenziehen der Finger für das BiB-Fenster:
Um das Fenster zu verstecken, kann der Nutzer es zum linken oder rechten Rand ziehen. Zum Aufheben der Verriegelung kann der Nutzer entweder auf den sichtbaren Teil des versteckten Fensters tippen oder ihn aus dem Versteck ziehen.
Nutzer können die Größe des PiP-Fensters jetzt durch Zusammen- oder Auseinanderziehen anpassen.
Empfohlene neue Funktionen für eine reibungslose PiP-Übergangsfunktion
In Android 12 wurden die animierten Übergänge zwischen Vollbild- und PiP-Fenstern deutlich verbessert. Wir empfehlen dringend, alle erforderlichen Änderungen vorzunehmen. Anschließend werden diese Änderungen automatisch auf große Bildschirme wie faltbare Smartphones und Tablets skaliert, ohne dass Sie weitere Maßnahmen ergreifen müssen.
Dazu gehören:
Neues API-Flag für einen reibungsloseren Wechsel in den BiB-Modus bei der Bedienung über Gesten
Verwende das Flag
setAutoEnterEnabled
, um reibungslosere Übergänge in den BiB-Modus zu ermöglichen, wenn im Navigationsmodus mit Touch-Gesten nach oben zum Startbildschirm wischst. Bisher wartete Android darauf, dass die Animation zum Wischen nach oben abgeschlossen war, bevor das BiB-Fenster ausgeblendet wurde.Flüssigere Animationen beim Aufrufen und Verlassen des BiB-Modus
Das Flag
SourceRectHint
wird jetzt wiederverwendet, um eine flüssigere Animation beim Aktivieren und Deaktivieren des PiP-Modus zu implementieren.Neues API-Flag zum Deaktivieren der nahtlosen Größenänderung für nicht-videobasierte Inhalte
Mit dem Flag
SeamlessResizeEnabled
wird die Animation beim Überblenden von Inhalten, die keine Videos sind, im PiP-Fenster viel flüssiger. Bisher konnten durch die Größenanpassung von Inhalten ohne Videos in einem BiB-Fenster verwirrende visuelle Artefakte entstehen.
Neue Anrufbenachrichtigungen, mit denen die Wichtigkeit eingehender Anrufe bewertet werden kann
In Android 12 wird der neue Benachrichtigungsstil für Anrufe Notification.CallStyle
verwendet. Wenn Sie diese Vorlage verwenden, kann Ihre App die Wichtigkeit aktiver Anrufe erkennen. Dazu wird ein gut sichtbarer Chip in der Statusleiste angezeigt, der die Uhrzeit des Anrufs anzeigt. 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 in der Schattierung ganz oben angezeigt. Durch diese Einstufung kann das System diese priorisierten Aufrufe möglicherweise an andere Geräte weiterleiten.
Implementiere 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 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);
Verwenden Sie forOngoingCall()
, um eine Benachrichtigung zum Stil des laufenden Anrufs 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);
Mit forScreeningCall()
können Sie eine Anrufbenachrichtigung zum Filtern von Anrufen 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 kannst du die Benachrichtigungsfunktion deiner App jetzt optimieren, indem du in MessagingStyle()
- und BigPictureStyle()
-Benachrichtigungen animierte Bilder zur Verfügung stellst. Außerdem können Nutzer in Ihrer App jetzt Bildnachrichten senden, wenn sie über den Benachrichtigungs-Schirm auf Nachrichten antworten.
Verbesserungen beim immersiven Modus für die Bedienung per Geste
In Android 12 wird das bisherige Verhalten konsolidiert, damit Nutzer Gestenbefehle im Vollbildmodus leichter ausführen können. Außerdem bietet Android 12 Abwärtskompatibilität für den fixierten immersiven Modus.
Teilen der URL der letzten Aufrufe (nur Google Pixel)
Auf Pixel-Geräten können Nutzer jetzt Links zu zuletzt angesehenen Webinhalten direkt über den Bildschirm „Zuletzt verwendet“ teilen. Nachdem der Nutzer die Inhalte in einer App besucht hat, kann er zum Bildschirm „Letzte Aktivitäten“ wischen, die App suchen, in der er die Inhalte angesehen hat, und dann auf die Schaltfläche „Link“ tippen, um die URL zu kopieren oder zu teilen.
Weitere Informationen finden Sie unter URL-Freigabe für zuletzt aufgerufene Websites aktivieren.
Sicherheit und Datenschutz
Privatsphäredashboard
Auf unterstützten Geräten mit Android 12 oder höher wird in den Systemeinstellungen ein Datenschutz-Dashboard angezeigt. Auf diesem Bildschirm können Nutzer auf separate Bildschirme zugreifen, die anzeigen, wenn 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 die Zeitachse für den Datenzugriff auf Standortinformationen.
Ihre App kann eine Begründung für Nutzer bereitstellen, damit sie verstehen, warum Ihre App auf Standort-, Kamera- oder Mikrofoninformationen zugreift. Diese Begründung kann auf dem neuen Bildschirm des Privatsphäredashboards, 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 es Apps, die auf Android 12 ausgerichtet sind, mit Bluetooth-Geräten zu interagieren. Dies gilt insbesondere für Apps, die keinen Zugriff auf den Gerätestandort benötigen.
Erklärungen zu Bluetooth-Berechtigungen deiner 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. Anstatt eine alte Bluetooth-Berechtigungsgruppe zu deklarieren, sollten Sie eine modernere Bluetooth-Berechtigungsgruppe deklarieren.
Suche nach Berechtigungsgruppe
Unter Android 12 oder höher können Sie abfragen, wie das System von der Plattform bereitgestellte Berechtigungen in Berechtigungsgruppen einordnet:
- Wenn Sie die Berechtigungsgruppe ermitteln möchten, in die das System eine plattformdefinierte Berechtigung eingeordnet hat, rufen Sie
getGroupOfPlatformPermission()
auf. - Wenn Sie die vom System in einer bestimmten Berechtigungsgruppe festgelegten plattformdefinierten Berechtigungen ermitteln möchten, rufen Sie
getPlatformPermissionsForGroup()
auf.
Overlay-Fenster von Anwendungen ausblenden
Damit Entwickler besser steuern können, 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.
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. Transaktionsbestätigungsabläufe.
Für Apps, die Fenster vom Typ TYPE_APPLICATION_OVERLAY
anzeigen, sollten Alternativen in Betracht gezogen werden, die für den jeweiligen Anwendungsfall besser geeignet sind, wie Bild im Bild oder Bubbles.
Flag für den Berechtigungsschutz für bekannte Unterzeichner
Ab Android 12 können Sie mit dem Attribut knownCerts
für Berechtigungen auf Signaturebene zum Zeitpunkt der Deklaration auf die Digests bekannter Signaturzertifikate verweisen.
Deine App kann dieses Attribut deklarieren und das Flag knownSigner
verwenden, damit Geräte und Apps anderen Apps Signaturberechtigungen erteilen können, ohne sie bei der Herstellung und Lieferung des Geräts signieren zu müssen.
Attestierung von Geräteeigenschaften
Unter Android 12 können mehr Apps die Geräteeigenschaften in einem Attestierungszertifikat überprüfen, wenn sie einen neuen Schlüssel generieren.
Ab Android 9 (API-Level 28) können Inhaber von Geräterichtlinien (Device Policy Owners, DPOs), die Keymaster 4.0 oder höher verwenden, die Geräteeigenschaften in diesen Attestierungszertifikaten überprüfen. Ab Android 12 kann diese Überprüfung mit der Methode setDevicePropertiesAttestationIncluded()
in jeder App durchgeführt werden, die auf Android 12 (API-Level 31) oder höher ausgerichtet ist.
Die generierten Geräteattribute umfassen die folgenden Build
-Felder:
BRAND
DEVICE
MANUFACTURER
MODEL
PRODUCT
Sichere Aktionen für Benachrichtigungen auf dem Sperrbildschirm
Ab Android 12 unterstützt die Notification.Action.Builder
-Klasse die Methode setAuthenticationRequired()
. Damit kann Ihre App verlangen, dass ein Gerät entsperrt ist, 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 Nutzerfreundlichkeit der biometrischen Authentifizierung 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 Prompt-Nachricht oder den Namen der App-Einstellung abrufen kann. Mit diesen Labels kannst du präzisere Anweisungen für den Nutzer erstellen, die sich speziell auf die verwendeten biometrischen Authentifizierungsmethoden beziehen, z. B. „Entsperrung per Gesichtserkennung verwenden“ oder „Fingerabdruck zum Fortfahren verwenden“.
Phishing-Erkennung in Messaging-Apps (nur Google Pixel)

Auf unterstützten Pixel-Geräten führt Android 12 die Phishing-Erkennung bei Nachrichten durch, 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 das System eine solche Situation erkennt, wird ein Sicherheits-Overlay über der Benutzeroberfläche der Messaging-App angezeigt, um die Nutzer zu warnen. Beispielsweise können Nutzer durch die Phishing-Erkennung vor den folgenden potenziellen Risiken gewarnt werden:
- Verdächtige Anfragen, z. B. zum Senden eines Codes, Geldes oder Ähnlichem
- Nicht vertrauenswürdige URLs
- Schädliche Anhänge
- Links zu schädlichen Apps
Mit dem Overlay wird der Nutzer gewarnt. Außerdem kann er 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. 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 auf dem Gerät aufgenommene HEVC-(H.265)- und HDR-Videos (HDR10 und HDR10+) automatisch in AVC (H.264) umwandeln, ein Format, das mit vielen Standardplayern kompatibel ist. Dabei werden moderne Codecs genutzt, sofern sie verfügbar sind, ohne Abstriche bei der Kompatibilität mit älteren Anwendungen.
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 grundlegenden Anforderungen von Android hinausgehen. Für jedes Android-Gerät wird die von ihm unterstützte Leistungsklasse deklariert. Entwickler können die Leistungsklasse des Geräts zur Laufzeit prüfen und optimierte Funktionen bereitstellen, die die Möglichkeiten des Geräts voll ausschöpfen.
Weitere Informationen finden Sie unter Leistungsklasse.
Verbesserungen bei der Videocodierung
Android 12 definiert eine Reihe von Standardschlüsseln zur Steuerung des Quantisierungsparameters (QP) für die Videocodierung. So können Entwickler anbieterspezifischen Code vermeiden.
Die neuen Schlüssel sind in der MediaFormat
API und in der NDK-Mediathek verfügbar.
Ab Android 12 gelten für Videoencoder bestimmte Mindestqualitätsanforderungen. Dadurch wird sichergestellt, dass die Qualität der Codierung von Videos mit hoher Szenenkomplexität nicht besonders schlecht ist.
Audiofokus
Ab Android 12 (API-Level 31) wird die Wiedergabe der App ausgeblendet, wenn eine andere App den Audiofokus hat und gerade wiedergegeben wird.
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 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 festlegen, sobald Sie eine MediaDrm
erstellen.
Kamera
Camera2-Anbietererweiterungen
Viele unserer Geräteherstellerpartner haben benutzerdefinierte Kameraerweiterungen wie Bokeh, HDR und Nachtmodus entwickelt, die Apps verwenden sollen, um auf ihren Geräten eine differenzierte Nutzung zu ermöglichen. Die CameraX-Bibliothek unterstützt bereits diese benutzerdefinierten Anbietererweiterungen. Unter Android 12 werden diese Anbietererweiterungen jetzt direkt auf der Plattform angezeigt.
Dadurch können Anwendungen mit komplexen Camera2
-Implementierungen Anbietererweiterungen nutzen, ohne größere Änderungen am Legacy-Code vornehmen zu müssen. Die Camera2 Extension APIs stellen genau dieselben Erweiterungen wie in CameraX bereit. Diese werden bereits auf vielen verschiedenen Geräten unterstützt und können daher ohne zusätzliche Konfiguration verwendet werden.
Weitere Informationen finden Sie unter CameraExtensionCharacteristics
.
Unterstützung von Quad Bayer-Kamerasensor
Viele Android-Geräte sind heute mit extrem hochauflösenden Kamerasensoren ausgestattet, in der Regel mit Quad- oder Nona-Bayer-Mustern. Diese bieten eine große Flexibilität in Bezug auf Bildqualität und Leistung bei wenig Licht. Mit Android 12 werden neue Plattform-APIs eingeführt, mit denen Drittanbieter-Apps diese vielseitigen Sensoren in vollem Umfang 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 im Modus „Maximale Auflösung“ statt im Modus „Standard“ arbeiten.
Grafiken und Bilder
Apps direkten Zugriff auf Tombstone-Spuren gewähren
Ab Android 12 können Sie über die Methode ApplicationExitInfo.getTraceInputStream()
auf den nativen Crash-Tombstone Ihrer App als Protokollbuffer zugreifen. Der Protokollzwischenspeicher 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
Android 12 unterstützt jetzt Images, die das AV1-Bilddateiformat (AVIF) verwenden. AVIF ist ein Containerformat für Bilder und Bildsequenzen, die mit AV1 codiert sind. AVIF nutzt die Intra-Frame-codierten Inhalte der Videokomprimierung. Dadurch wird die Bildqualität im Vergleich zu älteren Bildformaten wie JPEG bei derselben Dateigröße erheblich verbessert. Eine detaillierte Übersicht über die Vorteile dieses Formats finden Sie in dem Blogpost von Jake Archibald.
Einfachere Weichzeichner, Farbfilter und andere Effekte
In Android 12 wird die neue RenderEffect
hinzugefügt, die gängige Grafikeffekte wie Weichzeichner, Farbfilter, Android-Shader-Effekte und mehr auf View
s und Renderinghierarchien anwendet. Effekte können entweder als Ketteneffekte (die einen inneren und äußeren Effekt bilden) oder als gemischte Effekte kombiniert werden. Aufgrund der begrenzten Prozessorleistung wird diese Funktion möglicherweise nicht von 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))
Dekodierung von animierten Bildern
In Android 12 wurde die NDK-ImageDecoder
API erweitert, um alle Frames und Timing-Daten aus Bildern zu decodieren, die die animierten Dateiformate GIF und WebP verwenden. Bei der Einführung in Android 11 hat diese API nur das erste Bild aus Animationen in diesen Formaten decodiert.
Verwenden Sie ImageDecoder
anstelle von Drittanbieterbibliotheken, um die APK-Größe weiter zu reduzieren und von zukünftigen Sicherheits- und Leistungsupdates zu profitieren.
Weitere Informationen zur API findest du in der API-Referenz und im Beispiel auf GitHub.
Konnektivität
Companion-Apps aktiv halten
Damit Companion-Apps zur Verwaltung des Geräts aktiv bleiben 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.
- Achte darauf, dass der Prozess weiterhin ausgeführt wird, während sich das Gerät in Reichweite befindet.
Damit Sie die APIs verwenden können, müssen Ihre Geräte über den Companion Device Manager verbunden sein. Weitere Informationen finden Sie unter CompanionDeviceManager.startObservingDevicePresence()
und CompanionDeviceService.onDeviceAppeared()
.
Companion Device Manager-Profile

Partner-Apps auf Geräten mit Android 12 (API-Level 31) und höher können Profile von Companion-Geräten verwenden, um eine Verbindung mit einer Smartwatch herzustellen. Die Verwendung eines Profils vereinfacht den Registrierungsprozess, da die Gewährung eines gerätetypspezifischen Satzes von Berechtigungen in einem Schritt gebündelt wird.
Die gebündelten Berechtigungen werden der Companion-App gewährt, sobald eine Verbindung mit dem Gerät hergestellt wird, und gelten nur so lange, wie das Gerät verknüpft ist. Wenn Sie die App löschen oder die Verknüpfung entfernen, werden die Berechtigungen aufgehoben.
Weitere Informationen finden Sie unter AssociationRequest.Builder.setDeviceProfile()
.
Verbesserungen bei der Schätzung der Bandbreite
In Android 12 wurden die von getLinkDownstreamBandwidthKbps()
und getLinkUpstreamBandwidthKbps()
bereitgestellten Funktionen zur Bandbreitenschätzung sowohl für WLAN- als auch für Mobilfunkverbindungen verbessert. Die zurückgegebenen Werte stellen nun den gesamten gewichteten durchschnittlichen Durchsatz des Nutzers pro Mobilfunkanbieter oder WLAN-SSID, Netzwerktyp und Signalebene für alle Anwendungen auf dem Gerät dar.
Dies kann eine genauere und realistischere Schätzung des erwarteten Durchsatzes sowie beim Kaltstart Ihrer Anwendung liefern und erfordert im Vergleich zur Verwendung anderer Methoden zur Durchsatzschätzung weniger Zyklen.
Verbesserungen bei 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 sich über den
onServiceLost()
-Callback benachrichtigen lassen, wenn Ihre App einen erkannten Dienst verloren hat, weil der Dienst angehalten wird oder sich außerhalb des Bereichs befindet. - Die Einrichtung mehrerer Datenpfade (NAN-Datenpfade) ändert sich, um effizienter zu werden. Frühere Versionen verwendeten L2-Messaging, um Peer-Informationen der Initiatoren auszutauschen, was zu Latenz geführt hat. Auf Geräten mit Android 12 und höher kann der Responder (Server) so konfiguriert werden, dass er jeden Peer akzeptiert. Das bedeutet, dass die Informationen zum Initiator nicht vorab bekannt sein müssen. Dies beschleunigt die Bereitstellung von Datenpfaden und ermöglicht mehrere Punkt-zu-Punkt-Verbindungen mit nur einer Netzwerkanfrage.
- Damit das Framework keine Erkennungs- oder Verbindungsanfragen ablehnt, weil die Ressourcen aufgebraucht sind, können Sie auf Geräten mit Android 12 und höher
WifiAwareManager.getAvailableAwareResources()
aufrufen. Über den Rückgabewert dieser Methode kannst du die Anzahl der verfügbaren Datenpfade, die Anzahl der verfügbaren Veröffentlichungssitzungen und die Anzahl der verfügbaren Abositzungen 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 laufen, wird Ihre bestehende WLAN-Verbindung beim Herstellen der Verbindung zum Peer-Gerät nicht durch Peer-to-Peer-Verbindungen getrennt. Verwenden Sie WifiManager.isMultiStaConcurrencySupported()
, um zu prüfen, ob diese Funktion unterstützt wird.
Display aus für NFC-Zahlungen 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. Legen Sie dazu requireDeviceScreenOn
auf false
fest. Weitere Informationen zu NFC-Zahlungen bei ausgeschaltetem oder gesperrtem Display finden Sie unter Verhalten bei ausgeschaltetem Display und gesperrtem Sperrbildschirm.
Speicher
Mit Android 12 werden die folgenden Funktionen zur Speicherverwaltung eingeführt:
- Media Store-Unterstützung für
MediaDocumentsProvider
, wenn Ihre Anwendung einen Medien-URI abruft, der einem bestimmten URI des Dokumentanbieters entspricht. - Ein Verzeichnis für Sprachaufnahmen.
- Die Berechtigung
MANAGE_MEDIA
, mit der eine App Medienverwaltungsvorgänge ausführen kann, ohne dass dem Nutzer für jeden Vorgang ein Bestätigungsdialogfeld angezeigt wird. - Apps, 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 zur Verwaltung des Speicherplatzes einer anderen App aufrufen, sofern die andere App die benutzerdefinierte Aktivität erstellt.
Hauptfunktion
Automatische App-Updates
Mit Android 12 wird die Methode setRequireUserAction()
für Apps eingeführt, die die PackageInstaller
API verwenden.
Mit dieser Methode können Installations-Apps App-Updates ausführen, ohne dass der Nutzer die Aktion bestätigen muss.
Informationen zum Chipsatz des Geräts
In Android 12 werden android.os.Build
zwei Konstanten hinzugefügt, die über das SDK Informationen zum SoC-Chipsatzanbieter und zum Modell bereitstellen. Sie können diese Informationen durch Aufrufen von Build.SOC_MANUFACTURER
bzw. Build.SOC_MODEL
abrufen.
Aktualisierungen der Java-Kern-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
|