Funktionen und APIs – Übersicht

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.

Material You

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.

Diagramm zur Veranschaulichung der Indexierung und Suche in AppSearch

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.

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:

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

Eine vertikale Zeitachse mit den verschiedenen Apps, die auf Standortinformationen zugegriffen haben, und dem Zeitpunkt der Zugriffe
Abbildung 1: Bildschirm „Standortnutzung“, der Teil des Privatsphäredashboard ist.

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)

Einem Nutzer wird eine Nachricht wie diese angezeigt, wenn eine verdächtige Nachricht erkannt wird.

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:

  1. Erstellen Sie ein MediaDrm.
  2. Öffnen Sie eine Sitzung, um eine Sitzungs-ID zu erhalten.
  3. Erstellen Sie ein MediaCrypto mithilfe der Sitzungs-ID.
  4. 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 Views 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

Ein Berechtigungsdialogfeld, in dem ein Companion-Geräteprofil verwendet wird, um mehrere Berechtigungen in einer einzelnen Anfrage anzufordern.

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.

Speicher

Android 12 bietet die folgenden Funktionen zur Speicherverwaltung:

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