Zmiany platformy zgodności (Android 15)

Rysunek 1 Ekran Zmiany zgodności aplikacji w opcjach programisty zawiera listę zmian, które możesz przełączyć.

Na tej stronie opisujemy zmiany, które można przełączać, będące częścią struktury zgodności na Androidzie 15 (poziom interfejsu API 35). Użyj tej listy w połączeniu z opcjami programisty i poleceniami ADB, aby przetestować i debugować aplikację w ramach przygotowań do wprowadzenia jej na rynek i dodania jej do wersji docelowej na Androida 15.

Oto niektóre czynności, które można wykonać za pomocą narzędzi platformy zgodności:

  • Przetestuj docelowe zmiany bez zmiany wartości targetSdkVersion w aplikacji. Za pomocą przełączników możesz wymusić włączenie określonych docelowych zmian działania i ocenić ich wpływ na istniejącą aplikację.
  • Skup się na testowaniu tylko konkretnych zmian. Zamiast wprowadzać wszystkie docelowe zmiany jednocześnie, przełączniki pozwalają wyłączyć wszystkie docelowe zmiany z wyjątkiem tych, które chcesz przetestować.
  • Zarządzanie przełącznikami w narzędziu adb Za pomocą poleceń adb możesz włączać i wyłączać przełączane zmiany w automatycznym środowisku testowym.
  • Szybsze debugowanie przy użyciu standardowych identyfikatorów zmian Każda z możliwością przełączania zmian ma unikalny identyfikator i nazwę, które pozwalają szybko debugować główną przyczynę w danych wyjściowych logu.

Szczegółowe informacje o korzystaniu z narzędzi w każdym z tych przypadków znajdziesz w artykule Narzędzia platformy zgodności.

Zmiany w działaniu uwzględnione w ramach zgodności

Lista w tej sekcji opisuje możliwe do zmiany zmiany uwzględnione w platformie zgodności z Androidem 15 oraz zmiany z możliwością przełączania, które mogą pomóc w ogólnym testowaniu aplikacji.

Listę zmian możesz filtrować według stanu domyślnego.

Zmiany w platformie zgodności z możliwością przełączania w Androidzie 15

CAMERA_MIC_INDICATORS_NOT_PRESENT

Identyfikator zmiany: 162547999
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Wskazuje, że urządzenie obsługuje wskaźniki aparatu i mikrofonu. Wartość wynosi false, ponieważ metoda CompatChanges#isChangeEnabled zwraca true, jeśli nie podano identyfikatora zmiany.

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

Identyfikator zmiany: 320741775
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, isSessionConfigurationSupported sprawdza też zgodność parametrów sesji, jeśli jest obsługiwana przez HAL.

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

Identyfikator zmiany: 296478951
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, twórca elementu PendingIntent domyślnie blokuje uruchamianie aktywności w tle.

Więcej informacji o tej zmianie znajdziesz na stronie Zmiany w działaniu Androida 15 w sekcji poświęconej uruchamianiu bezpiecznej aktywności w tle.

DEPRECATE_UI_FONT

Identyfikator zmiany: 279646685
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, atrybut elegantTextHeight TextView domyślnie zmienia wartość na true, gdy Twoja aplikacja działa na urządzeniu z Androidem 15 lub nowszym. Zmniejszoną domyślnie czcionkę zastąpiliśmy skryptami z dużymi danymi pionowymi, które są bardziej czytelne.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie Zmiany w działaniu Androida 15 dotyczącej domyślnego ustawienia atrybutu eleganckiTextHeight o wartości „true”.

DOWNSCALED

Identyfikator zmiany: 168419799
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Ta zmiana umożliwia obserwowanie wszystkich zmian skalowania buforów w buforze aplikacji. Włączenie tej zmiany umożliwia zastosowanie tych współczynników skalowania:

Gdy ta zmiana zostanie włączona dla pakietu aplikacji, rozmiar aplikacji zostanie wymuszony na najwyższym, włączonym współczynniku skalowania. Na przykład wartość 80% jest używana, jeśli włączone jest zarówno 80%, jak i 70% (DOWNSCALE_80 i DOWNSCALE_70). Gdy zarówno ta zmiana, jak i parametr DOWNSCALED_INVERSE są włączone, DOWNSCALED_INVERSE ma pierwszeństwo, a współczynnik skalowania jest stosowany odwrotnie.

DOWNSCALED_INVERSE

Identyfikator zmiany: 273564678
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Ta zmiana ma wpływ na wszystkie zmiany odwrócone skalowania w buforze poszczególnych aplikacji. Włączenie tej zmiany umożliwia odwrotne zastosowanie tych współczynników skalowania (tzn. zwiększa rozdzielczość):

Gdy ta zmiana zostanie włączona w przypadku pakietu aplikacji, rozmiar aplikacji zostanie wymuszony na poziomie najniższego, włączonego współczynnika skalowania. Na przykład wartość 80% jest używana, jeśli włączono zarówno 80%, jak i 70% (DOWNSCALE_80 oraz DOWNSCALE_70), ponieważ w odwrotnym zastosowaniu współczynnik skalowania 80% równa się 125%, czyli mniej niż przy skalowaniu 142,86% stosowanego przy odwrotnym stosowaniu współczynnika skalowania 70%. Gdy zarówno ta zmiana, jak i parametr DOWNSCALED są włączone, DOWNSCALED_INVERSE ma pierwszeństwo, a współczynnik skalowania jest stosowany odwrotnie.

DOWNSCALE_30

Identyfikator zmiany: 189970040
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 30% rozdzielczości pionowego i poziomego ekranu rzeczywistego. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie o rozdzielczości wynoszącej 333,33% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_35

Identyfikator zmiany: 189969749
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 35% rozdzielczości pionowego i poziomego ekranu rzeczywistego. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie o rozdzielczości wynoszącej 285,71% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_40

Identyfikator zmiany: 189970038
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na wyświetlaczu o rozdzielczości wynoszącej 40% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa ona na ekranie o rozdzielczości pionowej i poziomej o rozdzielczości wynoszącej 250% rozdzielczości pionowego i poziomego wyświetlacza.

DOWNSCALE_45

Identyfikator zmiany: 189969782
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 45% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na wyświetlaczu o rozdzielczości wynoszącej 222,22% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_50

Identyfikator zmiany: 176926741
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 50% rozdzielczości pionowego i poziomego ekranu rzeczywistego. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji założenia, że działa ona na wyświetlaczu o rozdzielczości pionowej i poziomej w rozdzielczości wynoszącej 200% rozdzielczości pionowego i poziomego wyświetlacza.

DOWNSCALE_55

Identyfikator zmiany: 189970036
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 55% rozdzielczości pionowego i poziomego ekranu rzeczywistego. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na wyświetlaczu o rozdzielczości 181,82% odtwarzanej w pionie i poziomie rzeczywistego wyświetlacza.

DOWNSCALE_60

Identyfikator zmiany: 176926771
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na wyświetlaczu o rozdzielczości wynoszącej 60% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na wyświetlaczu o rozdzielczości wynoszącej 166,67% w pionie i poziomie rzeczywistego wyświetlacza.

DOWNSCALE_65

Identyfikator zmiany: 189969744
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 65% rozdzielczości obrazu w pionie i poziomie rzeczywistego wyświetlacza. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie o rozdzielczości wynoszącej 153,85% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_70

Identyfikator zmiany: 176926829
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 70% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na wyświetlaczu o rozdzielczości 142,86% w pionie i poziomie rzeczywistego wyświetlacza.

DOWNSCALE_75

Identyfikator zmiany: 189969779
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 75% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie o rozdzielczości wynoszącej 133,33% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_80

Identyfikator zmiany: 176926753
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 80% rozdzielczości pionowego i poziomego ekranu rzeczywistego. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej w rozdzielczości wynoszącej 125% rozdzielczości pionowego i poziomego wyświetlacza.

DOWNSCALE_85

Identyfikator zmiany: 189969734
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 85% rozdzielczości pionowego i poziomego ekranu rzeczywistego. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na wyświetlaczu o rozdzielczości wynoszącej 117,65% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_90

Identyfikator zmiany: 182811243
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 90% rozdzielczości pionowego i poziomego ekranu rzeczywistego. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie o rozdzielczości wynoszącej 111,11% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

Identyfikator zmiany: 202956589
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Po włączeniu tej opcji przy korzystaniu z Arrays.asList(...).toArray() typ komponentu tablicy wynikowej to teraz Object, a nie typ elementów tablicy bazowej. Tak więc ten kod zgłasza ClassCastException:

String[] elements = (String[]) Arrays.asList("one", "two").toArray();

Aby w tym przypadku zachować String jako typ komponentu w tablicy wynikowej, możesz zamiast tego użyć Collection.toArray(Object[]):

String[] elements = Arrays.asList("two", "one").toArray(new String[0]);

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie Zmiany w działaniu Androida 15 dotyczącej zmian w interfejsie OpenJDK API.

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

Identyfikator zmiany: 324203798
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, aby istniejące aplikacje nie miały problemów ze zgodnością w przypadku użycia ClientTransaction#getActivityToken() innego niż SDK, zezwól na grupowanie tylko LaunchActivityItem.

ENABLE_MATCH_LOCAL_NETWORK

Identyfikator zmiany: 319212206
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, aplikacje domyślnie otrzymują wywołania zwrotne z sieci lokalnych. Aplikacje kierowane na Androida 14 (poziom interfejsu API 34) lub starszego nadal muszą dodać NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK do NetworkCapabilities elementu NetworkRequest, aby otrzymywać ConnectivityManager.NetworkCallback z sieci lokalnych.

ENABLE_STRICT_FORMATTER_VALIDATION

Identyfikator zmiany: 270674727
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, weryfikacja indeksu argumentów, flag, szerokości i dokładności jest teraz bardziej rygorystyczna podczas korzystania z interfejsów API String.format() i Formatter.format().

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie Zmiany w działaniu Androida 15 dotyczącej zmian w interfejsie OpenJDK API.

ENFORCE_EDGE_TO_EDGE

Identyfikator zmiany: 309578419
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, aplikacje na urządzeniach z Androidem 15 lub nowszym będą domyślnie działały w trybie brzegowym.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie Zmiany w działaniu Androida 15 poświęconej egzekwowaniu zasad od krawędzi do krawędzi.

ENFORCE_STRICT_QUERY_BUILDER

Identyfikator zmiany: 143231523
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, SQLiteQueryBuilder weryfikuje wszystkie wybrane zapytania w usłudze CalendarProvider2 pod kątem szkodliwych argumentów.

FGS_BOOT_COMPLETED_RESTRICTIONS

Identyfikator zmiany: 296558535
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, wyłącza uruchamianie transmisji w tle usługi na pierwszym planie od transmisji BOOT_COMPLETED w przypadku wszystkich typów z wyjątkiem:

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie Zmiany w działaniu Androida 15 dotyczącej ograniczeń dotyczących odbiorników transmisji BOOT_COMPLETED uruchamiających usługi na pierwszym planie.

FGS_INTRODUCE_TIME_LIMITS

Identyfikator zmiany: 317799821
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, określone typy usług działających na pierwszym planie mają limit czasu. Jeśli usługa działająca na pierwszym planie niewłaściwego typu nie zostanie zatrzymana w przydzielonym czasie, otrzyma wywołanie zwrotne za pomocą funkcji Service.onTimeout(int, int), a następnie musi zostać zatrzymane w ciągu kilku sekund. Jeśli aplikacja tego nie zrobi, zostanie zgłoszona jako błąd ANR.

Więcej informacji o tej zmianie znajdziesz w sekcjach na stronie Zmiany w działaniu Androida 15, w których opisaliśmy zachowanie limitu czasu w przypadku usług działających na pierwszym planie typu synchronizacja danych i przetwarzanie multimediów.

FGS_SAW_RESTRICTIONS

Identyfikator zmiany: 319471980
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, powoduje wyłączenie usługi działającej na pierwszym planie w oknie alertu systemowego dla wszystkich typów, chyba że ma już okno nakładki systemowej.

Aby dowiedzieć się więcej o tej zmianie, zapoznaj się z sekcją na stronie Zmiany w działaniu Androida 15 poświęconej ograniczeniom uruchamiania usług działających na pierwszym planie, gdy aplikacja ma uprawnienie SYSTEM_ALERT_WINDOW.

FORCE_DISABLE_HEVC_SUPPORT

Identyfikator zmiany: 174227820
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Wymuszaj wyłączenie obsługi multimediów HEVC przez aplikację. Aplikacje powinny zadeklarować w pliku manifestu obsługiwane możliwości związane z multimediami, ale za pomocą tej flagi można wymusić brak obsługi HEVC, dlatego wymuszanie transkodowania podczas uzyskiwania dostępu do multimediów zakodowanych w HEVC. Ustawienie tej flagi zastępuje wszystkie domyślne ustawienia systemu operacyjnego dla aplikacji. Domyślnie jest wyłączona, co oznacza, że pierwszeństwo mają ustawienia domyślne systemu operacyjnego. Jeśli włączona jest zarówno ta flaga, jak i FORCE_ENABLE_HEVC_SUPPORT, system operacyjny ignoruje obie flagi.

FORCE_ENABLE_HEVC_SUPPORT

Identyfikator zmiany: 174228127
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Wymuś włączenie obsługi funkcji multimediów HEVC w aplikacji. Aplikacje powinny zadeklarować obsługiwane możliwości multimediów w pliku manifestu, ale tej flagi można użyć do wymuszenia w aplikacji obsługi HEVC, dzięki czemu unikniesz transkodowania podczas korzystania z multimediów zakodowanych w HEVC. Ustawienie tej flagi zastępuje wszystkie domyślne ustawienia na poziomie systemu operacyjnego dla aplikacji. Domyślnie jest wyłączona, co oznacza, że pierwszeństwo mają ustawienia domyślne systemu operacyjnego. Jeśli włączona jest zarówno ta flaga, jak i zasada FORCE_DISABLE_HEVC_SUPPORT, system operacyjny ignoruje obie flagi.

FORCE_NON_RESIZE_APP

Identyfikator zmiany: 181146395
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Wymusza, aby w pakietach, do których jest stosowany, nie można było zmieniać ich rozmiaru.

FORCE_RESIZE_APP

Identyfikator zmiany: 174042936
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Wymusza zmianę rozmiaru pakietów, do których jest stosowany. Zmiana rozmiaru jest dozwolona tylko w trybie wyświetlania okien na pełnym ekranie. Aplikacja nie wymusza jednak przejścia w tryb wielu okien z możliwością zmiany rozmiaru.

GWP_ASAN

Identyfikator zmiany: 145634846
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Umożliwia wykrywanie błędów w próbkowanej pamięci natywnej w aplikacjach.

Więcej informacji o korzystaniu z GWP-ASan znajdziesz w przewodniku GWP-ASan.

IS_DEVICE_OWNER_USER_AWARE

Identyfikator zmiany: 307233716
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, metoda isDeviceOwnerApp(String) używa użytkownika znajdującego się w kontekście. W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub starszego będzie używany użytkownik procesu nawiązywania połączenia (Process.myUserHandle()).

MANAGE_GLOBAL_ZEN_VIA_IMPLICIT_RULES

Identyfikator zmiany: 308670109
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Po włączeniu tej funkcji aplikacje nie mogą już zmieniać globalnego stanu ani zasad trybu Nie przeszkadzać na urządzeniu (przez modyfikowanie ustawień użytkownika lub wyłączenie trybu Nie przeszkadzać). Zamiast tego aplikacje muszą dodać element AutomaticZenRule, który system łączy w globalną zasadę z obecnym schematem zapewniającym największą restrykcyjność.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie Zmiany w zachowaniu Androida 15 poświęconej zmianom, które aplikacje mogą modyfikować globalny stan trybu Nie przeszkadzać.

NATIVE_HEAP_ZERO_INIT

Identyfikator zmiany: 178038272
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Włącz automatyczne zerowe inicjowanie alokacji natywnej pamięci sterty.

NATIVE_MEMTAG_ASYNC

Identyfikator zmiany: 145772972
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Włącz w tym procesie asynchroniczne sprawdzanie tagów pamięci (ASYNC). Ta flaga ma wpływ tylko na sprzęt obsługujący rozszerzenie ARM Memory Grouping Extension (MTE).

NATIVE_MEMTAG_SYNC

Identyfikator zmiany: 177438394
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Włącza synchroniczne (SYNC) sprawdzanie tagów pamięci w tym procesie. Ta flaga ma wpływ tylko na sprzęt obsługujący rozszerzenie ARM Memory Grouping Extension (MTE). Jeśli włączona jest zarówno opcja NATIVE_MEMTAG_ASYNC, jak i ta opcja, ta opcja ma pierwszeństwo, a MTE jest włączone w trybie SYNC.

OVERRIDE_ANY_ORIENTATION

Identyfikator zmiany: 265464455
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Włączenie tej opcji umożliwia stosowanie następujących zastąpień orientacji niezależnie od orientacji żądanej przez działanie:

OVERRIDE_ANY_ORIENTATION_TO_USER

Identyfikator zmiany: 310816437
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, włączana jest SCREEN_ORIENTATION_USER, co zastępuje dowolną orientację żądanej przez aktywność. Aplikacje z poprawną orientacją można zastępować na urządzeniach z dużym ekranem, aby wyświetlały się na pełnym ekranie, gdy funkcja ignoreOrientationRequest jest włączona.

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

Identyfikator zmiany: 314961188
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, pakiety, do których jest stosowane zastępowanie, są wykluczane z procedury zgodności z aparatem w trybie okien swobodnych w aplikacjach o stałej orientacji.

W trybie swobodnego wyświetlania okien tryb zgodności emuluje działanie na urządzeniu w orientacji pionowej przez ustawienie czarnych pasów w oknie aplikacji i zmianę właściwości aparatu zgodnie z oczekiwaniami aplikacji w orientacji pionowej: odpowiednio 90 i 270 obrót czujnika dla tylnego i przedniego aparatu oraz ustawienie obrotu wyświetlacza na 0.

Użyj tej flagi, aby wyłączyć oznaczenie zgodności w przypadku aplikacji, które nie reagują dobrze na eksperyment.

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

Identyfikator zmiany: 191514214
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, ta zmiana wymusza, aby stosowane przez nią pakiety ignorowały bieżącą wartość android:resizeableActivity oraz docelowy pakiet SDK w wersji na Androida 6.0 (poziom interfejsu API 23 lub niższy) i uznawał ją za niemożliwą do zmiany rozmiaru. W tym przypadku wartość obracania i przycięcia kamery zależy tylko od potrzebnego kompensacji przy obecnym obrocie wyświetlacza.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

Identyfikator zmiany: 189229956
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, ta zmiana wymusza na pakietach, do których jest stosowane, zastąpienie domyślnego zachowania kamery dotyczącej obracania i przycinania oraz zawsze zwracanie wartości CaptureRequest.SCALER_ROTATE_AND_CROP_NONE.

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

Identyfikator zmiany: 316897322
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, podczas inicjowania sesji MediaProjection użytkownicy mogą wybrać, czy chcą zarejestrować pojedynczą aplikację, czy cały ekran. Ta opcja nie ma wpływu na użycie MediaProjectionConfig#createConfigForDefaultDisplay.

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

Identyfikator zmiany: 266124927
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Włącza SCREEN_ORIENTATION_REVERSE_LANDSCAPE w aplikacji, do której jest zastosowany. Jeśli nie włączono również OVERRIDE_ANY_ORIENTATION, właściwość SCREEN_ORIENTATION_REVERSE_LANDSCAPE jest używana tylko wtedy, gdy aktywność ma orientację poziomą. Włączenie tej zmiany pomoże Ci testować działanie aplikacji pod kątem różnic między urządzeniami, na których orientacja pozioma odpowiada wartości Surface.ROTATION_90, a urządzeniami, na których odpowiada ona Surface.ROTATION_270.

OVERRIDE_LAYOUT_IN_DISPLAY_CUTOUT_MODE

Identyfikator zmiany: 332679525
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, zastępuje układ w trybie wycięcia w ekranie. Ma zastosowanie tylko wtedy, gdy nie jest wymuszone połączenie od krawędzi do krawędzi.

OVERRIDE_MIN_ASPECT_RATIO

Identyfikator zmiany: 174042980
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Ta zmiana to strażnik wszystkich zmian, które wymuszają użycie danego minimalnego współczynnika proporcji. Włączenie tej zmiany umożliwia stosowanie tych minimalnych formatów obrazu:

Po włączeniu tej zmiany w pakiecie aplikacji minimalny współczynnik proporcji podany w pliku manifestu aplikacji zostanie zastąpiony największym włączonym współczynnikiem, chyba że wartość w pliku manifestu aplikacji jest wyższa.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

Identyfikator zmiany: 218959984
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, zastępuje minimalne ograniczenie formatu obrazu na pełnym ekranie w orientacji pionowej, aby wykorzystać całą dostępną przestrzeń na ekranie.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

Identyfikator zmiany: 180326787
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Jeśli także włączona jest właściwość OVERRIDE_MIN_ASPECT_RATIO, włączenie tej zmiany w pakiecie powoduje ustawienie minimalnego współczynnika proporcji działania na dużą wartość zdefiniowaną przez OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

Identyfikator zmiany: 180326845
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Jeśli także włączona jest właściwość OVERRIDE_MIN_ASPECT_RATIO, włączenie tej zmiany dla pakietu powoduje ustawienie minimalnego współczynnika proporcji działania na średnią wartość zdefiniowaną przez OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_ONLY_FOR_CAMERA

Identyfikator zmiany: 325586858
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, ogranicza stosowanie ograniczeń, które wymuszają stosowanie danego minimalnego współczynnika proporcji. Dzięki temu są one stosowane tylko wtedy, gdy aplikacja jest połączona z kamerą.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

Identyfikator zmiany: 203647190
Stan domyślny: włączony w przypadku wszystkich aplikacji.

Jeśli dodatkowo włączona jest właściwość OVERRIDE_MIN_ASPECT_RATIO, ta zmiana ogranicza wszelkie inne zmiany, które wymuszają minimalny współczynnik proporcji działania do określonej wartości, np. OVERRIDE_MIN_ASPECT_RATIO_LARGE lub OVERRIDE_MIN_ASPECT_RATIO_MEDIUM, do aktywności o orientacji pionowej.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

Identyfikator zmiany: 236283604
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, powoduje wykluczenie pakietów, do których są stosowane, z ograniczeń ignorowania orientacji, które mogą ustawić producenci urządzeń.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

Identyfikator zmiany: 265451093
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Włącza SCREEN_ORIENTATION_NOSENSOR w aplikacji, do której jest zastosowany. Jeśli nie włączono również OVERRIDE_ANY_ORIENTATION, wartość SCREEN_ORIENTATION_NOSENSOR jest używana tylko wtedy, gdy aktywność nie określa żadnej innej stałej orientacji.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

Identyfikator zmiany: 265452344
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Włącza SCREEN_ORIENTATION_PORTRAIT w aplikacji, do której jest zastosowany. Jeśli nie włączono również OVERRIDE_ANY_ORIENTATION, wartość SCREEN_ORIENTATION_PORTRAIT jest używana tylko wtedy, gdy aktywność nie określa żadnej innej stałej orientacji.

PARSE_CONTENT_DISPOSITION_USING_RFC_6266

Identyfikator zmiany: 319400769
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, umożliwia analizowanie nagłówków Content-Disposition zgodnych ze standardem RFC 6266. Umożliwia to w szczególności analizowanie wartości filename*, które mogą mieć inne kodowanie znaków.

RATE_LIMIT_TOASTS

Identyfikator zmiany: 174840628
Stan domyślny: tej zmiany nie można przełączyć. Jest rejestrowany tylko przez platformę zgodności.

Umożliwia ograniczenie liczby wywołań Toast.show(), aby zapobiec nadmiernemu obciążeniu użytkownika zbyt dużą liczbą powiadomień w ograniczonym czasie. Każda próba wyświetlenia większej liczby powiadomień niż dozwolona w określonym przedziale czasu powoduje odrzucenie komunikatu.

STREAM_INT_DIFFERS_FROM_NEXT_INT

Identyfikator zmiany: 308103782
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Gdy ta opcja jest włączona, metody Random.ints() zwracają teraz inną sekwencję liczb niż metody Random.nextInt(). Wynika to ze zmian wprowadzonych na stronie https://bugs.openjdk.org/browse/JDK-8301574.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie Zmiany w działaniu Androida 15 dotyczącej zmian w interfejsie OpenJDK API.

USE_EXPERIMENTAL_COMPONENT_ALIAS

Identyfikator zmiany: 196254758
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, system zezwala pakietowi „android” na używanie aliasów komponentów.

USE_NEW_ISO_LOCALE_CODES

Identyfikator zmiany: 291868760
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu API 35) lub nowszego.

Po włączeniu tej opcji kody języków dla hebrajskiego, jidysz i indonezyjskiego nie są już konwertowane do nieaktualnej formy (hebrajski: iw, jidysz: ji i indonezyjski: in).

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie Zmiany w działaniu Androida 15 dotyczącej zmian w interfejsie OpenJDK API.