Omówienie funkcji i interfejsów API

Android 13 wprowadza programistów – świetne nowe funkcje i interfejsy API. Sekcje poniżej znajdziesz informacje o funkcjach dostępnych w Twoich aplikacjach i rozpoczęcie korzystania z powiązanych interfejsów API.

Szczegółową listę nowych, zmodyfikowanych i usuniętych interfejsów API znajdziesz w Raport Różnice między interfejsami API. Szczegółowe informacje o nowych interfejsach API znajdziesz w dokumentacji interfejsu Android API. widoczność. Aby dowiedzieć się więcej o obszarach, w których zmiany na platformie mogą wpływają na działanie aplikacji, zapoznaj się ze zmianami w działaniu Androida 13 kierowane na Androida 13 oraz wszystkich użytkowników aplikacji.

Produktywność i narzędzia programistów

Ikony aplikacji zgodne z wybranym motywem

Użytkownik wybierający tematyczne ikony aplikacji
Włączanie motywunych ikon aplikacji na Androidzie 13

Od Androida 13 możesz włączyć ikony aplikacji z motywem. W związku z tym , ikony aplikacji w obsługiwanych programach uruchamiających Androida mają podbarwienie, by dziedziczyć wybranej przez użytkownika tapety i innych motywów.

Aby można było korzystać z tej funkcji, aplikacja musi mieć ikonę adaptacyjną i monochromatycznej ikony aplikacji i wskaż monochromatyczną ikonę aplikacji <adaptive-icon> element w pliku manifestu. Jeśli użytkownik włączył aplikację z motywem (czyli włączenie przełącznika Ikony z motywem w ustawieniach systemowych), a program uruchamiający obsługuje tę funkcję, system używa kolorów wybraną przez użytkownika tapetę i motyw, aby określić kolor odcienia, dotyczy monochromatycznej ikony aplikacji.

Na ekranie głównym NIE wyświetla się ikona aplikacji z motywem adaptacyjną lub standardową ikonę aplikacji w tych sytuacjach:

  • Jeśli użytkownik nie włączył ikon aplikacji z motywem
  • Jeśli aplikacja nie ma monochromatycznej ikony
  • Jeśli launcher nie obsługuje ikon aplikacji z motywem

Więcej informacji i instrukcje znajdziesz w artykule Ikony adaptacyjne.

Wybór języka według aplikacji

Języki według aplikacji w ustawieniach systemu

W wielu przypadkach użytkownicy wielojęzyczni ustawiają język systemu na jeden język – jak angielski, ale chcą wybrać inne języki dla konkretnych aplikacji, niderlandzki, chiński lub hindi. Aby zwiększyć wygodę korzystania z aplikacji użytkowników, Android 13 wprowadza te funkcje w przypadku aplikacji obsługujących wiele języków:

  • Ustawienia systemu: scentralizowane miejsce, w którym użytkownicy mogą wybrać preferowanego języka dla każdej aplikacji.

    Aplikacja musi zadeklarować atrybut android:localeConfig w tagu android:localeConfig manifestu, aby poinformować system, że obsługuje on wiele języków. Aby się uczyć więcej, zapoznaj się z instrukcjami dla utworzyć plik zasobów i zadeklarować go w pliku manifestu aplikacji.

  • Dodatkowe interfejsy API: publiczne interfejsy API, takie jak setApplicationLocales(). oraz getApplicationLocales(). w LocaleManager, zezwól aplikacjom ustawić w czasie działania inny język niż język systemu.

    Te interfejsy API są automatycznie synchronizowane z ustawieniami systemowymi. dlatego aplikacje korzystające z tych interfejsów API do tworzenia niestandardowych selektorów języka że użytkownicy mają takie same wrażenia niezależnie od tego, co wybiorą swoje ustawienia językowe. Publiczne interfejsy API pomagają również bazują na stałym kodzie, obsługują dzielone pakiety APK Automatyczna kopia zapasowa aplikacji na poziomie aplikacji ustawień języka.

    Aby zapewnić zgodność wsteczną z poprzednimi wersjami Androida, odpowiednie interfejsy API są też dostępne na Androidzie X. Zalecamy użycie interfejsy API dodano w Appcompat 1.6.0-beta01. lub wyższą.

Te zmiany nie dotyczą aplikacji, które nie obsługują wielu języków.

Ulepszona obsługa tekstu i języków

Android 13 ma kilka funkcji, które poprawiają tekst i język aby poprawić jakość obsługi, co opisano w tych sekcjach:

Szybsze dzielenie się łącznikami

Dzielenie się łącznikami ułatwia czytanie opakowanego tekstu i ułatwia korzystanie z interfejsu. adaptacyjną. Począwszy od Androida 13 działanie łączników jest optymalizowane przez nawet 200%, więc możesz włączyć ją w: TextView. Nie ma to niemal żadnego wpływu na wydajność renderowania. Aby włączyć szybsze dzielenie, użyj fullFast lub normalFast częstotliwości w setHyphenationFrequency().

Interfejsy API konwersji tekstowych

Osoby posługujące się językami takimi jak japoński i chiński używają liter fonetycznych metody wprowadzania, które często spowalniają wyszukiwanie i spowalniają działanie takich funkcji jak do końca. W Androidzie 13 aplikacje mogą wywoływać nową konwersję tekstową API, aby użytkownicy mogli znaleźć aby szybciej i łatwiej je znaleźć. Wcześniej, na przykład wyszukiwanie, użytkownik z Japonii musi wykonać te czynności:

  1. Wprowadź alfabet hiragana jako fonetyczną wymowę wyszukiwanego hasła (np. miejsce lub nazwa aplikacji)
  2. Za pomocą klawiatury możesz przekonwertować znaki hiragana na kanji
  3. Wyszukiwanie przy użyciu znaków kanji
  4. Na koniec sprawdź wyniki wyszukiwania

Dzięki nowemu interfejsowi API do konwersji tekstu użytkownicy w Japonii mogą pisać w języku Hiragana, natychmiast pojawią się wyniki wyszukiwania kanji, z pominięciem kroków 2 i 3.

Poprawione wysokości wierszy w alfabetach innych niż łacińskie

Android 13 poprawia wyświetlanie alfabetu niełacińskiego (np. języka tamilskiego, birmańskiego, telugu i tybetańskiego) dzięki użyciu wysokości wiersza, która została dostosowana do poszczególnych języków. Nowe wysokości wierszy zapobiegają obcinaniu tekstu i poprawiają rozmieszczenie znaków. Twoja aplikacja może korzystać z tych ulepszeń, jeśli jest kierowana na Androida 13. Przetestuj swoje aplikacje, jeśli używasz nowych odstępów między wierszami, bo zmiany może wpływać na interfejs w językach opartych na alfabecie innym niż łaciński.

Wysokość wierszy przyciętych na Androidzie 12 (powyżej), która jest teraz w Androidzie 13 (poniżej) i mają lepszą pozycję.

Ulepszone zawijanie tekstu w języku japońskim

Począwszy od Androida 13 obiekty TextView mogą zawijać tekst przy użyciu Bunsetsu (najmniejszej jednostki słów, która brzmi naturalne) lub wyrażenia, a nie po znakach, aby były bardziej dopracowane i czytelne japońskie aplikacje. Możesz z niego skorzystać, używając parametru android:lineBreakWordStyle="phrase" dzięki obiektom TextView.

Zawijanie tekstu w języku japońskim z włączonym stylem wyrażenia (poniżej) i bez (powyżej).

Aktualizacje biblioteki Unicode

Android 13 dodaje najnowsze ulepszenia, poprawki i zmiany Unicode ICU 70, Unicode CLDR 40 i Unicode 14.0.

Oto kilka ważnych zmian:

  • angielski (Kanada) en‑CA i angielski (Republika Filipiny) en‑PH używają języka angielskiego (USA) en zasoby tłumaczeniowe, gdy nie są dostępne zasoby tłumaczeniowe zamiast angielskiego (Wielka Brytania) en‑GB.
  • Kategoria liczby mnogiej many została wprowadzona dla hiszpańskich (es) i włoskich (it), Portugalski pt i portugalski (Portugalia) pt‑PT. Podobna na język francuski wprowadzony w CLDR w wersji 38, a w przypadku dużych liczb.

Czcionki kolorów wektorowych

Emotikony wektorowe COLRv1 (po lewej) i emotikony bitmapy (po prawej)

Począwszy od Androida 13 system zawiera obsługę renderowania COLR w wersji 1. (COLRv1) tworzy czcionki i aktualizuje emotikony systemowe do formatu COLRv1. COLRv1 to kompaktowy, wyrazisty format czcionki, który renderuje się szybko i wyraźnie w dowolnym rozmiarze.

W przypadku większości aplikacji system obsługuje wszystko, a COLRv1 po prostu działa. Pamiętaj jednak: jeśli aplikacja ma własne renderowanie tekstu i korzysta z czcionek systemowych, zalecamy przetestowanie renderowania emotikonów.

Więcej informacji o COLRv1 znajdziesz w tych materiałach:

Interfejs API rozmieszczania Szybkich ustawień

Szybkie ustawienia w obszarze powiadomień to wygodny sposób na zmianę ustawień aplikacji lub wykonywania szybkich działań bez wychodzenia z kontekstu aplikacji. Aplikacje które udostępniają niestandardowe kafelki, ułatwiamy użytkownikom znajdowanie i dodawanie kafelków do karty Szybkie Ustawienia. Korzystanie z nowego tileplacement API, aplikacja może teraz prosić użytkownika o bezpośrednie dodanie niestandardowego kafelka do zestaw aktywnych kafelków Szybkich ustawień. W nowym oknie systemowym użytkownik może dodać w jednym kroku, bez wychodzenia z aplikacji, bez konieczności przechodzenia do Ustawienia, aby dodać kafelek.

Okno z pytaniem, czy użytkownik chce dodać kartę do
          Szybkie ustawienia.

Podgląd schowka

Od Androida 13 system wyświetla standardowe potwierdzenie wizualne, gdy: treść zostanie dodana do schowka. Nowe potwierdzenie wygląda tak:

  • Potwierdza, że treść została skopiowana.
  • Udostępnia podgląd skopiowanej treści.

Ta funkcja ustandaryzuje różne powiadomienia wyświetlane przez aplikacje po skopiowaniu i zapewnia użytkownikom większą kontrolę nad schowek. Dodatkowe informacje znajdziesz zapoznaj się z funkcją Kopiuj i wklej stronę.

Widżet Kopiuj/wklej
Nowy interfejs wyświetlany, gdy zawartość schowka znajduje się w schowku.

Gest przewidywania

Android 13 wprowadza gest przewidywania gestu cofania na urządzeniach z Androidem, takich jak: telefonach, dużych ekranach i urządzeniach składanych. Obsługa tej funkcji wymaga: zaktualizować aplikację.

Szczegółową dokumentację znajdziesz w artykule Aktualizowanie aplikacji na potrzeby obsługi prognozowanego wstecznego gest. Możesz też spróbować znajdziesz w naszych ćwiczeniach z programowania.

Bluetooth LE Audio

Low Energy (LE) Audio to bezprzewodowy dźwięk zaprojektowany, aby zastąpić klasycznego Bluetootha i włącz określone przypadki użycia oraz topologie połączeń. it umożliwia użytkownikom udostępnianie i przesyłanie dźwięku znajomym i rodzinie lub subskrybować publiczne transmisje informacyjne i rozrywkowe lub związane z ułatwieniami dostępu; Dzięki niemu użytkownicy mogą odbierać dźwięk wysokiej jakości bez mniej pracy na baterii i płynne przełączanie między użytkowaniem są niedostępne w klasycznej wersji Bluetooth. Począwszy od Androida 13 ma wbudowaną obsługę technologii LE Audio. na zgodnych urządzeniach.

MIDI 2.0

Począwszy od Androida 13 system zawiera obsługę standardu MIDI 2.0, np. możliwość podłączenia sprzętu MIDI 2.0 przez USB. Ten standard oferuje funkcje, takie jak większa rozdzielczość kontrolerów, lepsza obsługa nie będzie totonacja zachodnia i bardziej wyrazista muzyka dzięki zastosowaniu poszczególnych nut. i kontrolerach.

Ulepszony ekran powitalny

Android 13 poprawia działanie animowanych ekranów powitalnych w aplikacji Splash Interfejs Screen API:

  • System określa czas trwania animacji bezpośrednio na podstawie wartości parametru AnimatedVectorDrawable Przed Androidem 13 trzeba było skonfigurować windowSplashScreenAnimationDuration.

  • Używaj nowego atrybutu windowSplashScreenBehavior, aby mieć większą kontrolę nad Czy aplikacja na Androidzie 13 zawsze wyświetla ikonę na ekranie powitalnym i wyższe.

Szczegółowe informacje znajdziesz w sekcji Ekrany powitalne.

Optymalizacja reklam ART

W Androidzie 13 (poziom interfejsu API 33) i nowszych ART umożliwia przełączanie się między trybami natywnymi kodowanie znacznie szybciej – połączenia JNI są teraz nawet 2, 5 razy szybsze. Dokumentacja środowiska wykonawczego Przetwarzanie danych także zostało zmienione tak, aby w większości nie blokować ruchu, mniej bałaganu. Ponadto możesz użyć parametru Reference.refersTo() publicznego interfejsu API, aby szybciej odzyskać nieosiągalne obiekty. Tłumacz jest teraz szybszy dzięki zoptymalizowanemu wyszukiwaniu klas i metod. ART również przeprowadza większą weryfikację przy użyciu kodu bajtowego podczas instalacji, co pozwala uniknąć weryfikacji w czasie działania i szybkiego uruchomienia aplikacji.

Prywatność i bezpieczeństwo

Bezpieczniejsze eksportowanie odbiorców zarejestrowanych kontekstowo

Aby zwiększyć bezpieczeństwo odbiorników środowiska wykonawczego, w Androidzie 13 wprowadzamy możliwość określenia przez aplikację, czy zarejestrowany odbiornik powinny zostać wyeksportowane i widoczne dla innych aplikacji na urządzeniu. W poprzednich wersjach Androida, każda aplikacja na urządzeniu może wysłać niechronioną wiadomość do dynamicznie zarejestrowany adresat, chyba że był on strzeżony uprawnienia do podpisania.

Ta konfiguracja eksportowania jest dostępna w aplikacjach, które wykonują co najmniej jedną z :

Selektor zdjęć

Android 13 (poziom API 33) i nowszy zawiera: selektor zdjęć i uzyskiwanie dodatkowych informacji. Po uruchomieniu aplikacji selektor zdjęć, użytkownicy wybierają określone obrazy i filmy do udostępnienia w aplikacji, np. zdjęć profilowych, zamiast udostępniać aplikacji biblioteki multimediów. Jest to zalecany sposób uzyskiwania dostępu do zdjęć i zdjęć użytkownika filmy.

Selektor zdjęć zapewnia użytkownikom większą prywatność, ponieważ Twoja aplikacja zadeklarować uprawnienia w czasie działania. Selektor zdjęć pozwala też z wbudowanym, ustandaryzowanym interfejsem aplikacji, i uzyskiwanie dodatkowych informacji.

Nowe uprawnienia w czasie działania dla urządzeń Wi-Fi w pobliżu

Android 13 (poziom API 33) wprowadza uprawnienia środowiska wykonawczego Grupa uprawnień NEARBY_DEVICES dla aplikacji, które zarządzają połączeniami urządzenia z pobliskich punktów dostępu przez Wi-Fi. Aplikacje te muszą zadeklarować nowe uprawnienia. NEARBY_WIFI_DEVICES kiedy wywołania kilku różnych interfejsów API Wi-Fi. Ponadto, o ile aplikacje nie określają fizycznej lokalizacji użytkownika z sieci Wi-Fi API, nie muszą deklarować ACCESS_FINE_LOCATION gdy są kierowane na Androida 13 lub nowszego.

Dowiedz się więcej o uprawnienia dostępu do urządzeń Wi-Fi w pobliżu.

Nowe uprawnienia do używania alarmów precyzyjnych

Jeśli Twoja aplikacja jest kierowana na Androida 13 lub nowszego, możesz użyć USE_EXACT_ALARM które jest automatycznie przyznawane Twojej aplikacji. Aby aplikacja nie korzysta z tego uprawnienia, jednak musi spełniać co najmniej 1 z tych warunków kryteria:

  • Aplikacja to budzik lub minutnik.
  • Twoja aplikacja to aplikacja kalendarza, która wyświetla powiadomienia o nadchodzących wydarzeniach.
.

Jeśli aplikacja ustawia alarmy precyzyjne, ale nie spełnia warunków podanych na poprzedniej listy, kontynuuj deklarowanie SCHEDULE_EXACT_ALARM i przygotuj się na sytuację, w której użytkownik odmówi zgody, dostępu do aplikacji.

Uprawnienia dewelopera, które można zmniejszyć

Od Androida 13 aplikacja może unieważniać dostęp do nieużywanych aplikacji uprawnienia czasu działania. Ten interfejs API umożliwia aplikacji wykonywanie tych działań zwiększających prywatność, takich jak:

  • Usuń nieużywane uprawnienia.
  • Stosuj sprawdzone metody dotyczące uprawnień, aby zwiększyć zaufanie użytkowników. Więcej informacji wyświetlić użytkownikom okno z Twoimi uprawnieniami, odwołane bezterminowo.

Schemat podpisu APK w wersji 3.1

Android 13 obsługuje schemat podpisu plików APK w wersji 3.1, ulepsza istniejące Schemat podpisu pliku APK w wersji 3. Ten schemat rozwiązano niektóre znane problemy ze schematem podpisu plików APK w wersji 3 dotyczącym rotacji. Przede wszystkim wersja 3.1 schemat podpisu obsługuje kierowanie na wersję pakietu SDK, co umożliwia rotację do kierować reklamy na nowszą wersję platformy.

Schemat podpisu w wersji 3.1 wykorzystuje identyfikator bloku, który nie jest rozpoznawany 12 l lub mniej. Dlatego platforma stosuje to zachowanie osoby podpisującej:

  • Urządzenia z Androidem 13 lub nowszym używają obróconego sygnatariusza w wersji 3.1.
  • Urządzenia ze starszymi wersjami Androida ignorują obracający się sygnatariusz. zamiast tego użyj oryginalnego sygnatariusza w bloku wersji 3.0.

Aplikacje, w których nie została jeszcze poddana rotacja klucza podpisywania, nie wymagają dodatkowych działania. Za każdym razem, gdy te aplikacje zdecydują się przeprowadzić rotację, system stosuje wersję 3.1 schemat podpisu.

Aplikacje, które zostały już poddane rotacji i chcą nadal korzystać z tej rotacji w bloku podpisywania wersji 3.0 muszą zaktualizować swoje apksigner wywołanie:

apksigner sign --ks keystore.jks |
  --key key.pk8 --cert cert.x509.pem
  --rotation-min-sdk-version API_LEVEL
  [signer_options] app-name.apk

...gdzie API_LEVEL wynosi 32 lub mniej.

Lepsze raportowanie błędów w magazynie kluczy i Mint

W przypadku aplikacji generujących klucze Magazyn kluczy i KeyMint udostępniają teraz bardziej szczegółowe i szczegółowe wskaźniki błędów. Dodaliśmy hierarchię klas wyjątków w java.security.ProviderException z wyjątkami związanymi z Androidem, które obejmują Kody błędów Keystore/KeyMint, oraz czy można spróbować ponownie. Możesz też modyfikować metody dla klucza generowanie i wykorzystywanie (podpisywanie, szyfrowanie) do zgłaszania nowych wyjątków. lepsze raportowanie błędów nie ogranicza się tylko do generowania kluczy czego potrzebujesz, aby spróbować ponownie wygenerować klucz.

Obsługa tabletów i dużych ekranów

Android 13 opiera się na optymalizacji dotyczących tabletów wprowadzone w Androidzie 12 oraz 12 l nowych funkcji – w tym optymalizacje interfejsu systemu, usprawnienia wielozadaniowości, i ulepszone tryby zgodności. W ramach testowania upewnij się, że Twoje aplikacje na tabletach i innych urządzeniach z dużym ekranem.

Więcej informacji o nowościach i elementach do testowania znajdziesz w Obsługa tabletów i dużych ekranów stronę.

Grafika

Programowalne cieniowanie

Animowany program do cieniowania AGSL zaadaptowany na podstawie tego shader GLSL.

Począwszy od Androida 13, system zawiera obsługę RuntimeShader obiektów, z zachowania zdefiniowane za pomocą języka cieniowania grafiki Androida (AGSL). Akcje AGSL składni za pomocą GLSL, ale działa w ramach silnika renderowania Androida, dostosować obraz w obszarze roboczym Androida oraz filtrować zawartość widoku. Android używa wewnętrznie tych modułów do cieniowania, efekty fali, rozmycie, oraz rozciągnięciem w trybie dalekim. Android 13 i nowsze umożliwiają tworzenie podobnych zaawansowanych efektów .

Ulepszenia dotyczące choreografa

Android 13 wprowadza publiczne metody interfejsu API Choreographer i ASurfaceControl tam więcej informacji o możliwych osiach czasu klatek i dodać więcej kontekstu SurfaceFlinger na temat cyklu życia klatek. Podobnie jak wcześniej, aplikacje mogą oddzwonienie do Choreographer i otrzymać informacje o osi czasu klatek. W Androidzie 13 (interfejs API) poziom 33), funkcja Choreographer zwraca wiele możliwych czasów prezentacji i odpowiednie terminy kadrowania. Aplikacje mogą określać czas prezentacji i następnie powiadom użytkownika SurfaceFlinger z wyboru. SurfaceFlinger wtedy nie próbuje zastosować transakcji lub zatrzask buforuje się przed żądanym czasem prezentacji.

Jeśli Twoja aplikacja używa nowych metod Choreographer i SurfaceControl, możesz wyświetlić cykl życia klatek w aplikacji w śladzie Perfetto.

Aparat

Nagrywanie filmów HDR

Począwszy od Androida 13 Interfejsy API Camera2 obsługują nagrywanie filmów High Dynamic Range (HDR), co pozwala na podgląd i nagrywaj filmy HDR za pomocą aparatu. W porównaniu do standardowych kreacji dynamicznych Zakres (SDR) zapewnia szerszy zakres kolorów i zwiększa zakres dynamiki. składnika luminancji (od 100 cd/m2 do 1000 s w przypadku cd/m2). Dzięki temu jakość filmów jest bardziej zbliżona do rzeczywistych i bogatsza kolorów, jaśniejszych podświetleń i ciemniejszych cieni.

Więcej informacji o nagrywaniu filmów HDR znajdziesz w Dokumentacja rejestrowania wideo HDR.

Multimedia

Dźwięk przestrzenny

Dźwięk przestrzenny to niezwykłe doznania dźwiękowe, które kojarzą się z treściami multimedialnymi bardziej realistyczne dla użytkowników. Zobacz dźwięk przestrzenny dokumentacji ze szczegółowymi informacjami na temat integracji z tą funkcją.

Przewidywane kierowanie dźwięku

Android 13 pomaga aplikacjom do multimediów określać, jak będzie kierowany dźwięk, Android 13 wprowadzamy interfejsy API tras audio w AudioManager. getAudioDevicesForAttributes() Interfejs API umożliwia pobranie listy urządzeń, które mogą służyć do odtwarzania określonego dźwięku, a getDirectProfilesForAttributes() Interfejs API pomaga określić, czy strumień audio można odtwarzać bezpośrednio. Używaj za pomocą tych interfejsów API, AudioFormat – do wykorzystania w przypadku dźwięku śledzić.

Ułatwienia dostępu

Audiodeskrypcja

Android 13 (poziom API 33) wprowadza nowe systemowe preferencje ułatwień dostępu który umożliwia użytkownikom włączenie audiodeskrypcji we wszystkich aplikacjach. Dźwięk „description” to dodatkowa ścieżka narracji, w której lektor mówi przez prezentację, opisując, co dzieje się na ekranie w trakcie naturalne pauzy. Aplikacje mogą korzystać z preferowanych przez użytkownika ścieżek audiodeskrypcji przez i wysyła zapytanie za pomocą narzędzia isAudioDescriptionRequested(), Jak widać w tym fragmencie kodu:

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
}

Aplikacje mogą monitorować zmianę preferencji użytkownika, dodając detektor do AccessbilityManager:

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);
}

Główna funkcja

Aktualizacje OpenJDK 11

Android 13 rozpoczyna pracę nad odświeżaniem podstawowych bibliotek Androida, aby dostosować wersja LTS OpenJDK 11 z aktualizacjami bibliotek i językiem Java 11 z pomocą dla programistów aplikacji i platform. Podstawowa biblioteka zmienia się wprowadzone w Androidzie 13 będą również dostępne na urządzeniach z tym systemem Aktualizacja systemowa Google Play do modułu ART Mainline.

Android 13 wprowadza te zmiany w bibliotekach podstawowych:

  • Obsługa słowa kluczowego var w przypadku zmiennych lokalnych i parametrów lambda.
  • Nowe metody w klasie String:

    • isBlank()
    • lines()
    • repeat()
    • strip()
    • stripLeading()
    • stripTrailing()
  • Obsługa Collection.toArray(IntFunction), ułatwiająca adaptację do tablicy.

  • Pomoc dotycząca ifPresentOrElse(), isEmpty(), orElseThrow() i stream() w java.util zajęciach: Optional, OptionalDouble, OptionalInt i OptionalLong.

  • Rozszerzona obsługa funkcji SocketOptions, w tym możliwość ponownego użycia gniazdek.

  • NullReader, NullWriter, InputStream, OutputStream i transferTo() Funkcja Reader, która przenosi odczytywane znaki na Writer.

  • Dodano funkcję kodowania i dekodowania adresów URL za pomocą Charsets.

  • Funkcja Charset w usługach FileReader, FileWriter, PrintStream i PrintWriter.

  • Nowe: transferTo(), readNBytes(), readAllBytes() i writeBytes() funkcji ByteArrayInput lub OutputStream i Input lub OutputStream.

  • Obsługa środowiska wykonawczego i kompilatora dla języka java.lang.invoke.VarHandle.

  • Aktualizuje interfejs java.util.concurrent do interfejsu OpenJDK 11 API za pomocą wewnętrznego interfejsu VarHandle.

Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi firmy Oracle lub jej podmiotów stowarzyszonych.