Mit Android 13 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 API-Diff-Bericht. Weitere Informationen zu neuen APIs finden Sie in der Android API-Referenz. Neue APIs sind hervorgehoben. Informationen zu Bereichen, in denen sich Plattformänderungen auf Ihre Apps auswirken können, finden Sie in den Änderungen am Verhalten von Android 13 für Apps, die auf Android 13 ausgerichtet sind und in den Änderungen am Verhalten von Android 13 für alle Apps.
Produktivität und Tools für Entwickler
Designs für App-Symbole
Ab Android 13 können Sie thematische App-Symbole aktivieren. Bei dieser Funktion werden App-Symbole in unterstützten Android-Launchern eingefärbt, um die Farbgebung des ausgewählten Hintergrunds und anderer Themen des Nutzers zu übernehmen.
Damit diese Funktion unterstützt wird, muss Ihre App sowohl ein adaptives Symbol als auch ein einfarbiges App-Symbol enthalten. Außerdem muss das einfarbige App-Symbol über das Element <adaptive-icon>
im Manifest referenziert werden. Wenn ein Nutzer thematische App-Symbole aktiviert hat (d. h. die Option Thematische Symbole in den Systemeinstellungen aktiviert hat) und der Launcher diese Funktion unterstützt, verwendet das System die Farben des ausgewählten Hintergrunds und des ausgewählten Designs des Nutzers, um die Tönung zu bestimmen, die dann auf das einfarbige App-Symbol angewendet wird.
In den folgenden Fällen wird auf dem Startbildschirm NICHT das App-Symbol des Designs, sondern das adaptive oder standardmäßige App-Symbol angezeigt:
- Wenn der Nutzer keine symboldesigns für Apps aktiviert hat
- Wenn Ihre App kein einfarbiges App-Symbol hat
- Wenn der Launcher keine App-Symboldesigns unterstützt
Weitere Informationen und eine Anleitung finden Sie im Hilfeartikel Adaptive Symbole.
App-spezifische Spracheinstellungen
In vielen Fällen legen mehrsprachige Nutzer für ihre Systemsprache eine Sprache fest, z. B. Englisch, möchten aber für bestimmte Apps auch andere Sprachen auswählen, z. B. Niederländisch, Chinesisch oder Hindi. Damit Apps für diese Nutzer besser geeignet sind, werden in Android 13 die folgenden Funktionen für Apps eingeführt, die mehrere Sprachen unterstützen:
Systemeinstellungen: Zentraler Ort, an dem Nutzer eine bevorzugte Sprache für jede App auswählen können.
Ihre App muss das Attribut
android:localeConfig
im Manifest der App angeben, um dem System mitzuteilen, dass sie mehrere Sprachen unterstützt. Weitere Informationen finden Sie in der Anleitung zum Erstellen einer Ressourcendatei und Deklarieren in der Manifestdatei Ihrer App.Zusätzliche APIs: Mit diesen öffentlichen APIs, z. B. den Methoden
setApplicationLocales()
undgetApplicationLocales()
inLocaleManager
, können Apps zur Laufzeit eine andere Sprache als die Systemsprache festlegen.Diese APIs werden automatisch mit den Systemeinstellungen synchronisiert. Apps, die diese APIs zum Erstellen einer benutzerdefinierten In-App-Sprachauswahl verwenden, sorgen daher für eine einheitliche Nutzererfahrung, unabhängig davon, wo sie ihre Spracheinstellungen auswählen. Mit den öffentlichen APIs lässt sich auch die Menge an Boilerplate-Code reduzieren. Außerdem unterstützen sie unterteilte APKs und die automatische Sicherung für Apps zum Speichern von Spracheinstellungen auf App-Ebene.
Aus Gründen der Abwärtskompatibilität mit früheren Android-Versionen sind entsprechende APIs auch in AndroidX verfügbar. Wir empfehlen die Verwendung der APIs, die in Appcompat 1.6.0-beta01 oder höher hinzugefügt wurden.
Apps, die keine Sprachen unterstützen, sind von diesen Änderungen nicht betroffen.
Verbesserte Unterstützung für Text und Sprache
Android 13 enthält verschiedene Text- und Sprachverbesserungen, mit denen du eine noch ausgefeiltere Version bieten kannst. Diese werden in den folgenden Abschnitten beschrieben:
Schnellere Silbentrennung
Die Bindestrichfunktion macht umgebrochenen Text leichter zu lesen und trägt dazu bei, Ihre UI flexibler zu gestalten. Ab Android 13 wurde die Silbentrennung um bis zu 200 % optimiert. Sie können sie also in Ihrer TextView
aktivieren, ohne dass sich das merklich auf die Renderingleistung auswirkt. Verwenden Sie für eine schnellere Bindestrichsetzung die Frequenz fullFast
oder normalFast
in setHyphenationFrequency()
.
Textkonvertierungs-APIs
Nutzer von Sprachen wie Japanisch und Chinesisch verwenden phonetische Eingabemethoden, die die Suche und Funktionen wie die automatische Vervollständigung oft verlangsamen. In Android 13 können Apps die neue Textkonvertierungs-API aufrufen, damit Nutzer schneller und einfacher das Gesuchte finden. Bisher musste zum Beispiel ein japanischer Nutzer bei der Suche folgende Schritte ausführen:
- Hiragana als phonetische Aussprache des Suchbegriffs eingeben (z. B. ein Ort oder ein App-Name)
- Hiragana-Zeichen mit der Tastatur in Kanji umwandeln
- Noch einmal mit den Kanji-Zeichen suchen
- Endlich Suchergebnisse erhalten
Mit der neuen Textkonvertierungs-API können japanische Nutzer Hiragana eingeben und sofort Kanji-Suchergebnisse sehen, ohne die Schritte 2 und 3 ausführen zu müssen.
Verbesserte Zeilenhöhen für nicht lateinische Schriften
In Android 13 wird die Darstellung nicht lateinischer Schriften wie Tamil, Birmanisch, Telugu und Tibetisch verbessert. Dazu wird eine für jede Sprache angepasste Zeilenhöhe verwendet. Die neuen Zeilenhöhen verhindern das Überschneiden und verbessern die Positionierung von Zeichen. Sie können diese Verbesserungen für Ihre App nutzen, indem Sie sie auf Android 13 ausrichten. Testen Sie Ihre Apps unbedingt, wenn Sie das neue Zeilenabstand verwenden, da sich die Änderungen auf die Benutzeroberfläche in nicht lateinischen Sprachen auswirken können.
Verbesserter Textumbruch für japanische Texte
Ab Android 13 können TextViews Text nach Bunsetsu (die kleinste natürliche Worteinheit) oder nach Wortgruppen statt nach Zeichen umbrechen, um japanische Apps ansprechender und leserlicher zu gestalten. Sie können diesen Umbruch nutzen, indem Sie android:lineBreakWordStyle="phrase"
mit TextViews verwenden.
Unicode-Bibliotheksupdates
Android 13 enthält die neuesten Verbesserungen, Fehlerkorrekturen und Änderungen aus Unicode ICU 70, Unicode CLDR 40 und Unicode 14.0.
Hier sind einige wichtige Änderungen:
- Für Englisch (Kanada)
en‑CA
und Englisch (Republik der Philippinen)en‑PH
werden jeweils die Übersetzungsressourcen Englisch (USA)en
verwendet, wenn statt Englisch (Vereinigtes Königreich)en‑GB
keine Übersetzungsressourcen verfügbar sind. - Die Pluralkategorie
many
wurde für Spanisches
, Italienischit
, Portugiesischpt
und Portugiesisch (Portugal)pt‑PT
eingeführt. Ähnlich wie im Französischen, das in CLDR v38 eingeführt wurde, wird diese Option für große Zahlen verwendet.
Farbige Vektorschriften
Ab Android 13 unterstützt das System Renderingunterstützung für COLR Version 1-Schriftarten (COLRv1) und aktualisiert System-Emojis auf das COLRv1-Format. COLRv1 ist ein äußerst kompaktes Schriftformat, das in jeder Größe schnell und scharf gerendert wird.
Bei den meisten Apps übernimmt das System alles und COLRv1 funktioniert einfach. Wenn deine App jedoch ein eigenes Textrendering implementiert und die Schriftarten des Systems verwendet, empfehlen wir, das Emoji-Rendering zu testen.
Weitere Informationen zu COLRv1 finden Sie in den folgenden Ressourcen:
- Ankündigung im Chrome Developers-Blog
- COLRv1-Farbvektorschriften in Chrome (Video)
- COLR-Tabellenspezifikation
Placement API für die Schnelleinstellungen
Über die Schnelleinstellungen im Benachrichtigungs-Schieberegler können Nutzer ganz einfach Einstellungen ändern oder schnell Aktionen ausführen, ohne den Kontext einer App zu verlassen. Bei Apps mit benutzerdefinierten Kacheln können Nutzer Ihre Kacheln jetzt noch einfacher finden und den Schnelleinstellungen hinzufügen. Mit einer neuen API für das Kachel-Placement kann der Nutzer in deiner App aufgefordert werden, deine benutzerdefinierte Kachel direkt zu den aktiven Kacheln für Schnelleinstellungen hinzuzufügen. Über ein neues Systemdialogfeld kann der Nutzer die Kachel in einem Schritt hinzufügen, ohne Ihre App verlassen zu müssen. Er muss also nicht mehr die Schnelleinstellungen aufrufen, um die Kachel hinzuzufügen.
Zwischenablagevorschau
Ab Android 13 zeigt das System eine standardmäßige visuelle Bestätigung an, wenn Inhalte der Zwischenablage hinzugefügt werden. Die neue Bestätigung hat folgende Auswirkungen:
- Bestätigt, dass die Inhalte erfolgreich kopiert wurden.
- Eine Vorschau der kopierten Inhalte.
Diese Funktion standardisiert die verschiedenen Benachrichtigungen, die Apps nach dem Kopieren anzeigen, und bietet Nutzern mehr Kontrolle über ihre Zwischenablage. Weitere Informationen finden Sie auf der Seite Kopieren und Einfügen.
Intelligente „Zurück“-Touch-Geste
Mit Android 13 wird eine vorausschauende Zurück-Touch-Geste für Android-Geräte wie Smartphones, große Displays und faltbare Geräte eingeführt. Wenn Sie diese Funktion unterstützen möchten, müssen Sie Ihre App aktualisieren.
Eine ausführliche Dokumentation finden Sie unter App so aktualisieren, dass eine vorweggenommene Geste zum Zurückgehen unterstützt wird. Sie können auch unser Codelab ausprobieren.
Bluetooth LE Audio
Low Energy (LE) Audio ist eine kabellose Audiotechnologie, die Bluetooth Classic ersetzen und bestimmte Anwendungsfälle und Verbindungstopologien ermöglichen soll. Nutzer können Audioinhalte mit Freunden und Familie teilen und übertragen oder öffentliche Übertragungen für Informationen, Unterhaltung oder Barrierefreiheit abonnieren. Sie wurde entwickelt, damit Nutzer High-Fidelity-Audio ohne Abstriche bei der Akkulaufzeit empfangen und nahtlos zwischen verschiedenen Anwendungsfällen wechseln können, die mit Bluetooth Classic nicht möglich sind. Ab Android 13 unterstützt das System LE Audio, sodass Entwickler diese Funktionen auf kompatiblen Geräten kostenlos zur Verfügung stellen können.
MIDI 2.0
Ab Android 13 unterstützt das System den MIDI 2.0-Standard, einschließlich der Möglichkeit, MIDI 2.0-Hardware über USB anzuschließen. Dieser Standard bietet Funktionen wie eine höhere Auflösung für Controller, eine bessere Unterstützung für nicht westliche Intonation und eine ausdrucksstärkere Leistung durch Controller pro Note.
Verbesserungen bei der Effizienz des Startbildschirms
Unter Android 13 wird die Effizienz animierter Startbildschirme in der SplashScreen API verbessert:
Das System leitet die Dauer der Animation direkt aus
AnimatedVectorDrawable
ab. Vor Android 13 musstewindowSplashScreenAnimationDuration
direkt festgelegt werden.Mit dem neuen Attribut
windowSplashScreenBehavior
kannst du besser steuern, ob in deiner App unter Android 13 und höher das Symbol immer auf dem Ladebildschirm angezeigt wird.
Eine ausführliche Dokumentation finden Sie unter Startbildschirme.
ART-Optimierungen
In Android 13 (API-Level 33) und höher beschleunigt ART den Wechsel zu und von nativem Code erheblich.JNI-Aufrufe sind jetzt bis zu 2,5-mal schneller. Die Verarbeitung von Laufzeitreferenzen wurde ebenfalls überarbeitet, damit sie größtenteils nicht blockierend ist. Dadurch wird die Ruckelung weiter reduziert. Außerdem können Sie die öffentliche API Reference.refersTo()
verwenden, um nicht erreichbare Objekte früher wiederzuverwenden. Außerdem ist der Interpreter jetzt dank optimierter Klassen- und Methodenabfragen schneller. Außerdem führt ART bei der Installation mehr Bytecode-Überprüfungen durch, wodurch die Kosten für die Überprüfung zur Laufzeit vermieden und die App-Startzeiten verkürzt werden.
Datenschutz und Sicherheit
Sicherer Export kontextregistrierter Empfänger
In Android 13 kann Ihre App festlegen, ob ein registrierter Übertragungsempfänger exportiert werden und für andere Apps auf dem Gerät sichtbar sein soll, um Laufzeitempfänger sicherer zu machen. In früheren Android-Versionen konnte jede App auf dem Gerät eine ungeschützte Übertragung an einen dynamisch registrierten Empfänger senden, sofern dieser Empfänger nicht durch eine Signaturberechtigung geschützt wurde.
Diese Exportkonfiguration ist für Apps verfügbar, die mindestens eine der folgenden Funktionen bieten:
- Verwenden Sie die Klasse
ContextCompat
ab Version 1.9.0 der AndroidX Core-Bibliothek. - Richten Sie Ihre App auf Android 13 oder höher aus.
Bildauswahl
Android 13 (API-Level 33) und höher bietet eine Bildauswahl. Wenn Ihre App die Bildauswahl startet, wählen Nutzer bestimmte Bilder und Videos aus, die sie für Ihre App freigeben möchten, z. B. Profilbilder, anstatt Ihrer App Zugriff auf die gesamte Mediathek zu gewähren. Dies ist die empfohlene Methode, um auf die Fotos und Videos des Nutzers zuzugreifen.
Die Bildauswahl bietet Nutzern einen besseren Datenschutz, da für Ihre App keine Laufzeitberechtigungen deklariert werden müssen. Außerdem bietet die Bildauswahl eine integrierte, standardisierte Benutzeroberfläche für Apps, was für eine einheitlichere Nutzererfahrung sorgt.
Neue Laufzeitberechtigung für WLAN-Geräte in der Nähe
In Android 13 (API-Level 33) wird eine neue Laufzeitberechtigung in der Berechtigungsgruppe NEARBY_DEVICES
für Apps eingeführt, die die Verbindungen eines Geräts zu nahe gelegenen Zugangspunkten über WLAN verwalten. Diese Apps müssen die neue Berechtigung NEARBY_WIFI_DEVICES
angeben, wenn sie verschiedene WLAN-APIs aufrufen.
Außerdem müssen Apps, die den physischen Standort nicht aus den WLAN-APIs ableiten, die Berechtigung ACCESS_FINE_LOCATION
nicht deklarieren, wenn sie auf Android 13 oder höher ausgerichtet sind.
Weitere Informationen zur Berechtigung „WLAN-Geräte in der Nähe“
Neue Berechtigung zur Verwendung exakter Alarme
Wenn deine App auf Android 13 oder höher ausgerichtet ist, kannst du die Berechtigung USE_EXACT_ALARM
verwenden, die deiner App automatisch gewährt wird. Damit deine App diese Berechtigung nutzen kann, muss sie jedoch mindestens eines der folgenden Kriterien erfüllen:
- Ihre App ist ein Wecker oder ein Timer.
- Ihre App ist eine Kalender-App, die Benachrichtigungen zu anstehenden Terminen anzeigt.
Wenn Ihre App exakte Wecker stellt, aber keiner der in der vorherigen Liste aufgeführten Fälle zutrifft, müssen Sie weiterhin die Berechtigung SCHEDULE_EXACT_ALARM
angeben und sich darauf vorbereiten, dass der Nutzer den Zugriff auf Ihre App verweigert.
Vom Entwickler aufgehobene App-Berechtigungen
Ab Android 13 kann Ihre App den Zugriff auf nicht verwendete Laufzeitberechtigungen widerrufen. Mit dieser API kann Ihre App datenschutzfreundliche Aufgaben wie die folgenden ausführen:
- Entfernen Sie nicht verwendete Berechtigungen.
- Beachten Sie die Best Practices für Berechtigungen, um das Vertrauen der Nutzer zu stärken. Sie können den Nutzern ein Dialogfeld mit den Berechtigungen anzeigen, die Sie proaktiv widerrufen haben.
APK-Signaturschema v3.1
Android 13 unterstützt das APK-Signaturschema 3.1, das das vorhandene APK-Signaturschema 3 verbessert. Mit diesem Schema werden einige der bekannten Probleme mit dem APK-Signaturschema v3 in Bezug auf die Rotation behoben. Das v3.1-Signaturschema unterstützt insbesondere das SDK-Versions-Targeting, wodurch die Rotation auf einen späteren Release der Plattform ausgerichtet werden kann.
Das Signaturschema v3.1 verwendet eine Block-ID, die unter 12L nicht erkannt wird. Daher wendet die Plattform das folgende Verhalten für Unterzeichner an:
- Auf Geräten mit Android 13 oder höher wird der rotierende Unterzeichner im Block v3.1 verwendet.
- Auf Geräten mit älteren Android-Versionen wird der rotierende Signaturschlüssel ignoriert und stattdessen der ursprüngliche Signaturschlüssel im Block „v3.0“ verwendet.
Bei Apps, deren Signaturschlüssel noch nicht rotiert wurde, sind keine weiteren Maßnahmen erforderlich. Wenn diese Apps die Bildschirmausrichtung ändern, wendet das System standardmäßig das Signaturschema v3.1 an.
Bei Apps, bei denen der Signaturschlüssel bereits rotiert wurde und die den rotierten Signaturschlüssel weiterhin im Signaturblock von Version 3.0 verwenden möchten, muss die apksigner
-Aufrufanweisung aktualisiert werden:
apksigner sign --ks keystore.jks | --key key.pk8 --cert cert.x509.pem --rotation-min-sdk-version API_LEVEL [signer_options] app-name.apk
...wobei API_LEVEL
32 oder niedriger ist.
Verbesserte Fehlerberichte in Keystore und KeyMint
Für Apps, die Schlüssel generieren, bieten Keystore und KeyMint jetzt detailliertere und genauere Fehlerindikatoren. Unter java.security.ProviderException
haben wir eine Hierarchie von Ausnahmeklassen hinzugefügt, die Android-spezifische Ausnahmen wie Keystore-/KeyMint-Fehlercodes und Informationen dazu enthält, ob der Fehler noch einmal versucht werden kann. Sie können auch die Methoden zur Schlüsselgenerierung und -verwendung (Signatur, Verschlüsselung) ändern, um die neuen Ausnahmen zu werfen. Die verbesserte Fehlermeldung ist nicht auf die Schlüsselgenerierung beschränkt und sollte Ihnen jetzt alles Notwendige zur Wiederholung der Schlüsselgenerierung liefern.
Unterstützung für Tablets und große Bildschirme
Android 13 baut auf den Tablet-Optimierungen, die in Android 12 eingeführt wurden, und dem Feature Drop 12L auf – einschließlich Optimierungen für die System-UI, verbessertem Multitasking und verbesserter Kompatibilitätsmodi. Prüfe im Rahmen der Tests, ob deine Apps auf Tablets und anderen Geräten mit großen Bildschirmen optimal dargestellt werden.
Weitere Informationen zu den Neuigkeiten und zu den zu testenden Elementen finden Sie auf der Seite Unterstützung für Tablets und große Bildschirme.
Grafik
Programmierbare Shader
Ab Android 13 unterstützt das System programmierbare RuntimeShader
-Objekte, deren Verhalten mithilfe der Android Graphics Shading Language (AGSL) definiert wird. AGSL hat einen Großteil seiner Syntax mit GLSL gemeinsam, funktioniert aber innerhalb der Android-Rendering-Engine, um das Malen im Canvas von Android sowie das Filtern von Ansichtsinhalten anzupassen.
Android verwendet diese Shader intern, um Welleneffekte, Weichzeichner und Überscroll-Dehnung zu implementieren.
Mit Android 13 und höher können Sie ähnliche erweiterte Effekte für Ihre App erstellen.
Verbesserungen bei der Choreografie
In Android 13 werden öffentliche API-Methoden für Choreographer
und ASurfaceControl
eingeführt, die Apps mehr Informationen zu den möglichen Zeitachsen für Frames und mehr Kontext zum SurfaceFlinger
-Lebenszyklus bieten. Ähnlich wie zuvor können Anwendungen einen Callback an Choreographer
posten und Frame-Zeitachseninformationen empfangen. In Android 13 (API-Level 33) gibt Choreographer
mehrere mögliche Präsentationszeiten und die entsprechenden Frame-Frist zurück. Anwendungen können den Zeitpunkt der Präsentation auswählen und anschließend SurfaceFlinger
Ihrer Wahl benachrichtigen. SurfaceFlinger
versucht dann nicht, vor der gewünschten Präsentationszeit Transaktionen oder Latch-Buffer anzuwenden.
Kamera
HDR-Videoaufnahme
Ab Android 13 unterstützen die Camera2 APIs die Videoaufnahme mit High Dynamic Range (HDR). So können Sie sich eine Vorschau von HDR-Videoinhalten ansehen und diese mit Ihrer Kamera aufnehmen. Im Vergleich zu Standard Dynamic Range (SDR) bietet HDR einen größeren Farbumfang und erhöht den Dynamikbereich der Leuchtdichtekomponente (von derzeit 100 cd/m2 auf 1.000 cd/m2). Das Ergebnis ist eine Videoqualität, die der Realität näher kommt, mit satteren Farben, helleren Highlights und dunkleren Schatten.
Weitere Informationen zur HDR-Videoaufnahme finden Sie in der Dokumentation zur HDR-Videoaufnahme.
Medien
Spatial Audio
Spatial Audio ist ein immersives Audioerlebnis, durch das Medieninhalte für Nutzer realistischer klingen. Weitere Informationen zur Integration dieser Funktion finden Sie in unserer Dokumentation zu Spatial Audio.
Antizipatorisches Audiorouting
Damit Medien-Apps besser nachvollziehen können, wie ihr Audiosignal weitergeleitet wird, werden in Android 13 Audio-Routing-APIs in der Klasse AudioManager
eingeführt. Mit der getAudioDevicesForAttributes()
API kannst du eine Liste der Geräte abrufen, die zur Wiedergabe der angegebenen Audioinhalte verwendet werden können. Mit der getDirectProfilesForAttributes()
API kannst du feststellen, ob dein Audiostream direkt wiedergegeben werden kann. Mit diesen APIs kannst du die beste AudioFormat
für deinen Audiotrack ermitteln.
Bedienungshilfen
Audiodeskription
Android 13 (API-Level 33) führt eine neue systemweite Einstellung für Bedienungshilfen ein, mit der Nutzer Audiobeschreibungen für alle Apps aktivieren können. Eine Audiobeschreibung ist ein zusätzlicher Erzähltrack, bei dem ein Erzähler die Präsentation kommentiert und während natürlicher Pausen im Audiotrack beschreibt, was auf dem Bildschirm passiert.
Apps können die vom Nutzer bevorzugte Audiobeschreibungstracks verfolgen, indem sie diese mit isAudioDescriptionRequested()
abfragen, wie im folgenden Code-Snippet gezeigt:
Kotlin
private lateinit var accessibilityManager: AccessibilityManager // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager::class.java) // Where your media player is initialized if (accessibilityManager.isAudioDescriptionRequested) { // User has requested to enable audio descriptions }
Java
private AccessibilityManager accessibilityManager; // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager.class); // Where your media player is initialized if(accessibilityManager.isAudioDescriptionRequested()) { // User has requested to enable audio descriptions }
Apps können die Einstellungsänderungen von Nutzern überwachen, indem sie einen Listener zu AccessbilityManager
hinzufügen:
Kotlin
private val listener = AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled -> // Preference changed; reflect its state in your media player } override fun onStart() { super.onStart() accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener) } override fun onStop() { super.onStop() accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener) }
Java
private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> { // Preference changed; reflect its state in your media player }; @Override protected void onStart() { super.onStart(); accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener); } @Override protected void onStop() { super.onStop(); accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener); }
Hauptfunktion
Updates zu OpenJDK 11
Unter Android 13 werden die Kernbibliotheken von Android aktualisiert, um sie an den LTS-Release OpenJDK 11 mit Bibliotheksupdates und Java 11-Sprachunterstützung für Anwendungs- und Plattformentwickler anzupassen. Die in Android 13 eingeführten Änderungen an der Kernbibliothek sind auch für Android 12-Geräte über ein Google Play-Systemupdate für das ART Mainline-Modul verfügbar.
In Android 13 wurden die folgenden Änderungen an den Kernbibliotheken vorgenommen:
- Unterstützung des Keywords
var
für lokale Variablen und als Parameter-Lambdas. Neue Methoden in der String-Klasse:
isBlank()
lines()
repeat()
strip()
stripLeading()
stripTrailing()
Unterstützung für
Collection.toArray(IntFunction)
zur einfacheren Anpassung einer Sammlung an ein Array.Unterstützung für
ifPresentOrElse()
,isEmpty()
,orElseThrow()
undstream()
in denjava.util
-KlassenOptional
,OptionalDouble
,OptionalInt
undOptionalLong
.Erweiterte Unterstützung für
SocketOptions
, einschließlich Wiederverwendung von Sockets.Funktionen
NullReader
,NullWriter
,InputStream
,OutputStream
undtransferTo()
Reader
, die gelesene Zeichen an einenWriter
übertragen.Es wurden Funktionen für die URL-Codierung und ‑Dekodierung mit
Charsets
hinzugefügt.Charset
-Funktion fürFileReader
,FileWriter
,PrintStream
undPrintWriter
.Neue
transferTo()
-,readNBytes()
-,readAllBytes()
- undwriteBytes()
-Funktionen fürByteArrayInput
oderOutputStream
undInput
oderOutputStream
Laufzeit- und Compilerunterstützung für
java.lang.invoke.VarHandle
Aktualisiert
java.util.concurrent
auf die OpenJDK 11 API, wobeiVarHandle
intern verwendet wird.
Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.