Zmiany w systemie sprawdzania zgodności (Android 15)

Rysunek 1. Na ekranie Zmiany zgodności aplikacji w opcjach dla deweloperów znajdziesz listę zmian, które możesz włączyć lub wyłączyć.

Na tej stronie opisaliśmy zmiany, które można włączyć lub wyłączyć w ramach frameworku zgodności w Androidzie 15 (poziom interfejsu API 35). Korzystaj z tej listy w połączeniu z opcjami dla deweloperów i poleceniami ADB, aby testować i debugować aplikację podczas przygotowywania jej do obsługi i ustawienia jako docelowej wersji Android 15.

Oto kilka czynności, które możesz wykonać za pomocą narzędzi ramowych zgodności:

  • Testowanie zmian docelowych bez faktycznej zmiany wartości targetSdkVersion aplikacji. Za pomocą przełączników możesz wymusić włączenie określonych zmian w docelowanym zachowaniu, aby ocenić ich wpływ na dotychczasową aplikację.
  • Skup się na testowaniu tylko konkretnych zmian. Zamiast modyfikować wszystkie zmiany docelowe jednocześnie, możesz wyłączyć wszystkie zmiany docelowe oprócz tych, które chcesz przetestować.
  • Zarządzaj przełącznikami za pomocą adb Za pomocą poleceń adb możesz włączać i wyłączać zmiany w automatycznym środowisku testowym.
  • Szybsze debugowanie dzięki standardowym identyfikatorom zmian. Każda zmiana, którą można włączać i wyłączać, ma unikalny identyfikator i nazwę, które możesz wykorzystać do szybkiego debugowania przyczyny błędu w wyprowadzach z dziennika.

Szczegółowe informacje o używaniu narzędzi w przypadku każdego z tych zastosowań znajdziesz w artykule Narzędzia dotyczące ram kompatybilności.

Zmiany zachowania uwzględnione w systemie sprawdzania zgodności

Lista w tej sekcji zawiera zmiany, które można włączyć lub wyłączyć, a które są uwzględnione w ramach kompatybilności z Androidem 15. Opisuje też zmiany, które mogą pomóc w ogólnym testowaniu aplikacji.

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

Zmiany w systemie sprawdzania zgodności w Androidzie 15, które można włączać i wyłączać

CAMERA_MIC_INDICATORS_NOT_PRESENT

Identyfikator zmiany: 162547999
Stan domyślny: wyłączone we wszystkich aplikacjach.

Wskaźnik, że urządzenie obsługuje kamerę i mikrofon. Jeśli jest obecny, to wartość to false, ponieważ metoda CompatChanges#isChangeEnabled zwraca true, jeśli identyfikator zmiany jest nieobecny.

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

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

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

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

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

Po włączeniu twórca pakietu PendingIntent domyślnie blokuje uruchamianie aktywności w tle.

Więcej informacji o tej zmianie znajdziesz w sekcji dotyczącej zmian w zachowaniu Androida 15 na stronie poświęconej Androidowi 15. Uruchamianie zabezpieczonej aktywności w tle

DEPRECATE_UI_FONT

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

Gdy ta opcja jest włączona, a aplikacja działa na urządzeniu z Androidem 15 lub nowszym, atrybut elegantTextHeight TextView staje się domyślnie true, co powoduje zastąpienie czcionki kompaktowej używanej domyślnie w niektórych skryptach o dużej wysokości czcionki, która jest znacznie łatwiejsza do odczytania.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie poświęconej zmianom zachowania w Androidzie 15, w której opisano, że atrybut elegantTextHeight ma domyślnie wartość true.

DOWNSCALED

Identyfikator zmiany: 168419799
Stan domyślny: wyłączone we wszystkich aplikacjach.

Ta zmiana jest bramką dla wszystkich zmian dotyczących zmniejszania rozmiaru bufora w poszczególnych aplikacjach. Włączenie tej zmiany umożliwia zastosowanie tych czynników skalowania:

Gdy ta zmiana zostanie włączona w przypadku pakietu aplikacji, aplikacja zostanie zmuszona do zmiany rozmiaru do najwyższego, włączonego współczynnika skalowania. Na przykład wartość 80% jest używana, jeśli włączone są wartości 80% i 70% (DOWNSCALE_80 i DOWNSCALE_70). Jeśli ta zmiana i parametr DOWNSCALED_INVERSE są włączone, pierwszeństwo ma parametr DOWNSCALED_INVERSE, a współczynnik skalowania jest stosowany odwrotnie.

DOWNSCALED_INVERSE

Identyfikator zmiany: 273564678
Stan domyślny: wyłączone dla wszystkich aplikacji.

Ta zmiana jest bramką dla wszystkich zmian dotyczących odwrotnego skalowania bufora w poszczególnych aplikacjach. Włączenie tej zmiany umożliwia odwrotne zastosowanie tych współczynników skalowania (czyli rozdzielczość jest zwiększana):

Gdy ta zmiana zostanie włączona w przypadku pakietu aplikacji, aplikacja zostanie wymuszająco przeskalowana do najniższego, włączonego współczynnika skalowania. Na przykład 80% jest używane, jeśli włączone są 80% i 70% (DOWNSCALE_80 i DOWNSCALE_70), ponieważ odwrotna wartość współczynnika skalowania 80% wynosi 125%, co jest mniejsze niż 142,86%, które jest stosowane przy odwrotnym stosowaniu współczynnika skalowania 70%. Jeśli ta zmiana i parametr DOWNSCALED są włączone, pierwszeństwo ma parametr DOWNSCALED_INVERSE, a współczynnik skalowania jest stosowany odwrotnie.

DOWNSCALE_30

Identyfikator zmiany: 189970040
Stan domyślny: wyłączone dla wszystkich aplikacji.

Jeśli włączona jest też opcja DOWNSCALED, aplikacja zakłada, że działa na wyświetlaczu o 30% mniejszej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu włączona zmiana spowoduje, że aplikacja będzie działać na wyświetlaczu o 333,33% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty wyświetlacz.

DOWNSCALE_35

Identyfikator zmiany: 189969749
Stan domyślny: wyłączone dla wszystkich aplikacji.

Jeśli włączysz też opcję DOWNSCALED, aplikacja będzie działać z założenia, że wyświetla się na ekranie o 35% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu aplikacja będzie zakładać, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 285,71% rzeczywistej rozdzielczości wyświetlacza.

DOWNSCALE_40

Identyfikator zmiany: 189970038
Stan domyślny: wyłączone dla wszystkich aplikacji.

Jeśli włączona jest też opcja DOWNSCALED, w przypadku pakietu z tą zmianą aplikacja będzie zakładać, że działa na wyświetlaczu o 40% mniejszej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie działać na wyświetlaczu o 250% większej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz.

DOWNSCALE_45

Identyfikator zmiany: 189969782
Stan domyślny: wyłączone we wszystkich aplikacjach.

Jeśli włączysz też opcję DOWNSCALED, aplikacja będzie działać z założenia, że wyświetla się na ekranie o 45% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu włączona zmiana spowoduje, że aplikacja będzie działać na wyświetlaczu o 222,22% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty wyświetlacz.

DOWNSCALE_50

Identyfikator zmiany: 176926741
Stan domyślny: wyłączone dla wszystkich aplikacji.

Jeśli włączysz też opcję DOWNSCALED, aplikacja będzie zakładać, że działa na wyświetlaczu o 50% mniejszej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie działać na wyświetlaczu o 200% większej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz.

DOWNSCALE_55

Identyfikator zmiany: 189970036
Stan domyślny: Wyłączone we wszystkich aplikacjach.

Jeśli włączona jest też opcja DOWNSCALED, w przypadku pakietu z tą zmianą aplikacja zakłada, że działa na wyświetlaczu o 55% mniejszej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu włączona zmiana spowoduje, że aplikacja będzie działać na wyświetlaczu o 181,82% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty wyświetlacz.

DOWNSCALE_60

Identyfikator zmiany: 176926771
Stan domyślny: wyłączone we wszystkich aplikacjach.

Jeśli włączona jest też opcja DOWNSCALED, w przypadku pakietu z tą zmianą aplikacja będzie zakładać, że działa na wyświetlaczu o rozdzielczości 60% w orientacji pionowej i poziomej w porównaniu z rzeczywistą rozdzielczością. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie działać na wyświetlaczu o 166,67% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty wyświetlacz.

DOWNSCALE_65

Identyfikator zmiany: 189969744
Stan domyślny: wyłączone we wszystkich aplikacjach.

Jeśli włączona jest też opcja DOWNSCALED, w przypadku pakietu z tą zmianą aplikacja zakłada, że działa na wyświetlaczu o 65% mniejszej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie działać na wyświetlaczu o 153,85% większej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz.

DOWNSCALE_70

Identyfikator zmiany: 176926829
Stan domyślny: wyłączone we wszystkich aplikacjach.

Jeśli włączona jest też opcja DOWNSCALED, w przypadku pakietu z taką zmianą aplikacja zakłada, że działa na wyświetlaczu o 70% większej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu z taką zmianą aplikacja zakłada, że działa na wyświetlaczu o 142,86% większej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz.

DOWNSCALE_75

Identyfikator zmiany: 189969779
Stan domyślny: wyłączone we wszystkich aplikacjach.

Jeśli włączona jest też opcja DOWNSCALED, włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie zakładać, że działa na wyświetlaczu o rozdzielczości 75% w orientacji pionowej i poziomej w porównaniu z rzeczywistą rozdzielczością. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu włączona zmiana spowoduje, że aplikacja będzie działać na wyświetlaczu o rozdzielczości pionowej i poziomej równej 133,33% rzeczywistej rozdzielczości pionowej i poziomej.

DOWNSCALE_80

Identyfikator zmiany: 176926753
Stan domyślny: wyłączone we wszystkich aplikacjach.

Jeśli włączysz też opcję DOWNSCALED, aplikacja będzie zakładać, że działa na wyświetlaczu o 80% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie działać na wyświetlaczu o 125% większej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz.

DOWNSCALE_85

Identyfikator zmiany: 189969734
Stan domyślny: wyłączone dla wszystkich aplikacji.

Jeśli włączysz też opcję DOWNSCALED, aplikacja będzie zakładać, że działa na wyświetlaczu o 85% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli opcja DOWNSCALED_INVERSE jest również włączona, włączenie tej zmiany w pakiecie spowoduje, że aplikacja będzie działać na wyświetlaczu o rozdzielczości 117,65% w orientacji pionowej i poziomej w porównaniu z prawdziwym wyświetlaczem.

DOWNSCALE_90

Identyfikator zmiany: 182811243
Stan domyślny: wyłączone we wszystkich aplikacjach.

Jeśli włączysz też opcję DOWNSCALED, aplikacja będzie zakładać, że działa na wyświetlaczu o 90% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu z taką zmianą aplikacja zakłada, że działa na wyświetlaczu o rozdzielczości 111,11% w orientacji pionowej i poziomej w porównaniu z prawdziwym wyświetlaczem.

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

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

Po włączeniu tej opcji, gdy używasz funkcji Arrays.asList(...).toArray(), typ komponentu otrzymanego tablicy jest teraz typem Object, a nie typem elementów podrzędnej tablicy. Dlatego ten kod wywołuje błąd ClassCastException:

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

Aby w tym przypadku zachować typ elementu String w wynikającym tablicy, możesz użyć zamiast tego typu Collection.toArray(Object[]):

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

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom w zachowaniu Androida 15 na stronie Zmiany w interfejsie OpenJDK API.

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

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

Aby zapobiec problemom ze zgodnością istniejących aplikacji z użyciem pakietu ClientTransaction#getActivityToken() poza SDK, zezwól tylko na łączenie LaunchActivityItem.

ENABLE_MATCH_LOCAL_NETWORK

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

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

ENABLE_STRICT_FORMATTER_VALIDATION

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

Po włączeniu tej opcji weryfikacja indeksu argumentów, flag, szerokości i dokładności jest teraz bardziej rygorystyczna podczas korzystania z interfejsów API String.format()Formatter.format().

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom w zachowaniu Androida 15 na stronie Zmiany w interfejsie OpenJDK API.

ENFORCE_EDGE_TO_EDGE

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

Gdy ta opcja jest włączona, aplikacje będą domyślnie wyświetlane na pełnym ekranie na urządzeniach z Androidem 15 lub nowszym.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie poświęconej zmianom w zachowaniu Androida 15 dotyczącą egzekwowania zasad od początku do końca.

ENFORCE_STRICT_QUERY_BUILDER

Identyfikator zmiany: 143231523
Stan domyślny: wyłączone we wszystkich aplikacjach.

Jeśli ta opcja jest włączona, SQLiteQueryBuilder sprawdza wszystkie wybory zapytań CalendarProvider2 pod kątem złośliwych argumentów.

FGS_BOOT_COMPLETED_RESTRICTIONS

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

Jeśli jest włączona, wyłącza uruchamianie usług na pierwszym planie z użyciem BOOT_COMPLETED w przypadku wszystkich typów, z wyjątkiem:

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom w zachowaniu Androida 15 na stronie Ograniczenia dotyczące odbiorników transmisji BOOT_COMPLETED uruchamiających usługi na pierwszym planie.

FGS_INTRODUCE_TIME_LIMITS

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

Gdy jest włączona, usługi na pierwszym planie określonego typu mają limit czasowy. Jeśli usługa na pierwszym planie danego typu nie zostanie zatrzymana w wyznaczonym limicie czasu, otrzyma wywołanie zwrotne za pomocą Service.onTimeout(int, int) i musi zostać zatrzymana w ciągu kilku sekund. Jeśli aplikacja nie zrobi tego, zostanie uznana za ANR.

Więcej informacji o tej zmianie znajdziesz w artykule Android 15: zmiany zachowania dotyczące 15 typów zachowania dotyczące synchronizacji danych przetwarzania multimediów usług na pierwszym planie.

FGS_SAW_RESTRICTIONS

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

Jeśli jest włączona, wyłącza uruchamianie usługi na pierwszym planie w oknie alertu systemowego dla wszystkich typów, chyba że ma już okno nakładki systemowej.

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom w zachowaniu Androida 15 na stronie Ograniczenia uruchamiania usług działających na pierwszym planie, gdy aplikacja ma uprawnienia SYSTEM_ALERT_WINDOW.

FORCE_DISABLE_HEVC_SUPPORT

Identyfikator zmiany: 174227820
Stan domyślny: wyłączone we wszystkich aplikacjach.

Wymusić wyłączenie obsługi formatu HEVC przez aplikację. Aplikacje powinny deklarować obsługiwane funkcje multimediów w pliku manifestu, ale ta flaga może być używana do wymuszania w aplikacji braku obsługi HEVC, co spowoduje wymuszenie transkodowania podczas uzyskiwania dostępu do multimediów zakodowanych w HEVC. Ustawienie tego parametru zastępuje wszelkie domyślne ustawienia na poziomie systemu operacyjnego dla aplikacji. Domyślnie jest ona wyłączona, co oznacza, że mają pierwszeństwo ustawienia domyślne systemu operacyjnego. Jeśli włączone są 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łączone we wszystkich aplikacjach.

Wymuszanie obsługi przez aplikację obsługiwanej przez nią funkcji multimediów HEVC. Aplikacje powinny deklarować obsługiwane funkcje multimediów w pliku manifestu, ale ta flaga może być używana do wymuszania obsługi HEVC, co pozwala uniknąć transkodowania podczas uzyskiwania dostępu do multimediów zakodowanych w HEVC. Ustawienie tego parametru zastępuje wszelkie domyślne ustawienia na poziomie systemu operacyjnego dla aplikacji. Domyślnie jest wyłączona, co oznacza, że mają zastosowanie ustawienia domyślne systemu operacyjnego. Jeśli włączone są zarówno ta flaga, jak i FORCE_DISABLE_HEVC_SUPPORT, system operacyjny ignoruje obie flagi.

FORCE_NON_RESIZE_APP

Identyfikator zmiany: 181146395
Stan domyślny: wyłączone we wszystkich aplikacjach.

Wymusza na pakietach, do których jest stosowany, niemożność zmiany rozmiaru.

FORCE_RESIZE_APP

Identyfikator zmiany: 174042936
Stan domyślny: wyłączone we wszystkich aplikacjach.

Wymusza możliwość zmiany rozmiaru pakietów, do których jest stosowana. Zezwalanie na zmianę rozmiaru tylko w trybie pełnoekranowym, a nie wymuszanie na aplikacji korzystania z trybu wielu okien z możliwością zmiany rozmiaru.

GWP_ASAN

Identyfikator zmiany: 145634846
Stan domyślny: wyłączone we wszystkich aplikacjach.

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

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

IS_DEVICE_OWNER_USER_AWARE

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

Po włączeniu metoda isDeviceOwnerApp(String) będzie używać użytkownika zawartego w kontekście. W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub niższego używany jest użytkownik procesu wywołującego (Process.myUserHandle()).

MANAGE_GLOBAL_ZEN_VIA_IMPLICIT_RULES

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

Gdy ta opcja jest włączona, aplikacje nie mogą już zmieniać globalnego stanu ani zasad trybu Nie przeszkadzać na urządzeniu (ani poprzez modyfikowanie ustawień użytkownika, ani wyłączanie trybu Nie przeszkadzać). Zamiast tego aplikacje muszą przekazywać AutomaticZenRule, które system łączy w zasady globalne z dotychczasowym schematem „najbardziej restrykcyjne zasady wygrywają”.

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

NATIVE_HEAP_ZERO_INIT

Identyfikator zmiany: 178038272
Stan domyślny: wyłączone we wszystkich aplikacjach.

Włącz automatyczną zerową inicjalizację przydzielenia pamięci natywnych stosów.

NATIVE_MEMTAG_ASYNC

Identyfikator zmiany: 145772972
Stan domyślny: Wyłączono we wszystkich aplikacjach.

Włącz w tym procesie asynchroniczne (ASYNC) sprawdzanie tagów pamięci. Ten parametr ma zastosowanie tylko do sprzętu obsługującego rozszerzenie Memory Tagging Extension (MTE) na ARM.

NATIVE_MEMTAG_SYNC

Identyfikator zmiany: 177438394
Stan domyślny: wyłączone we wszystkich aplikacjach.

Włącza w tym procesie synchroniczne (SYNC) sprawdzanie etykiet pamięci. Ten parametr ma zastosowanie tylko do sprzętu obsługującego rozszerzenie Memory Tagging Extension (MTE) na ARM. Jeśli włączone są opcje NATIVE_MEMTAG_ASYNC 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łączone dla wszystkich aplikacji.

Po włączeniu ta zmiana umożliwia zastosowanie tych ustawień orientacji niezależnie od orientacji wymaganej przez aktywność:

OVERRIDE_ANY_ORIENTATION_TO_USER

Identyfikator zmiany: 310816437
Stan domyślny: wyłączone dla wszystkich aplikacji.

Po włączeniu włącza SCREEN_ORIENTATION_USER, która zastępuje dowolną orientację wymaganą przez aktywność. Aplikacje o ustawionych orientacjach mogą być wyświetlane na pełnym ekranie na dużych urządzeniach z uprawnieniem ignoreOrientationRequest.

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

Identyfikator zmiany: 314961188
Stan domyślny: Wyłączone we wszystkich aplikacjach.

Jeśli jest włączona, wyklucza pakiety, do których ma zastosowanie zastąpienie, z obsługi zgodności aparatu w trybie okna swobodnego w przypadku aplikacji o niezmiennej orientacji.

W trybie okna swobodnego kształtu funkcja zgodności emuluje działanie na urządzeniu w orientacji pionowej, zmieniając okno aplikacji na letterbox i zmieniając właściwości aparatu na takie, których zwykle oczekują aplikacje na urządzeniu w orientacji pionowej: odpowiednio 90 i 270 stopni obrotu czujnika w przypadku tylnego i przedniego aparatu oraz ustawienie obrotu wyświetlacza na 0.

Użyj tego parametru, aby wyłączyć obsługę zgodności w przypadku aplikacji, które nie działają prawidłowo.

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

Identyfikator zmiany: 191514214
Stan domyślny: Wyłączone we wszystkich aplikacjach.

Gdy ta zmiana jest włączona, powoduje, że pakiety, do których jest zastosowana, ignorują bieżącą wartość atrybutu android:resizeableActivity, a także docelowy pakiet SDK o wartości nie wyższej niż Android 6.0 (poziom interfejsu API 23) i traktują aktywność jako nierozszerzalną. W tym przypadku wartość obrotu i przycięcia kamery zależy tylko od wymaganej kompensacji uwzględniającej bieżący obrót wyświetlacza.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

Identyfikator zmiany: 189229956
Stan domyślny: wyłączone we wszystkich aplikacjach.

Gdy ta zmiana jest włączona, wymusza ona, aby pakiety, do których jest stosowana, zastąpić domyślne zachowanie obracania i przycinania aparatu i zawsze zwracać CaptureRequest.SCALER_ROTATE_AND_CROP_NONE.

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

Identyfikator zmiany: 316897322
Stan domyślny: wyłączone we wszystkich aplikacjach.

Po włączeniu tej opcji użytkownicy podczas inicjowania sesji MediaProjection będą mieli możliwość wyboru, czy chcą uchwycić pojedynczą aplikację, czy cały ekran. Opcja ta zastąpi użycie MediaProjectionConfig#createConfigForDefaultDisplay.

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

Identyfikator zmiany: 266124927
Stan domyślny: wyłączone we wszystkich aplikacjach.

Włącza SCREEN_ORIENTATION_REVERSE_LANDSCAPE w przypadku aplikacji, do której jest stosowany. Jeśli opcja OVERRIDE_ANY_ORIENTATION nie jest też włączona, SCREEN_ORIENTATION_REVERSE_LANDSCAPE jest używana tylko wtedy, gdy aktywność określa orientację poziomą. Włączenie tej opcji może pomóc w testowaniu aplikacji pod kątem różnic w działaniu na urządzeniach, na których orientacja pozioma odpowiada orientacji Surface.ROTATION_90, oraz na urządzeniach, na których orientacja pozioma odpowiada orientacji Surface.ROTATION_270.

OVERRIDE_LAYOUT_IN_DISPLAY_CUTOUT_MODE

Identyfikator zmiany: 332679525
Stan domyślny: wyłączone we wszystkich aplikacjach.

Gdy jest włączona, zastępuje układ w trybie wycięcia w ekranie. Dotyczy to tylko sytuacji, gdy nie jest wymagane szyfrowanie od końca do końca.

OVERRIDE_MIN_ASPECT_RATIO

Identyfikator zmiany: 174042980
Stan domyślny: wyłączone we wszystkich aplikacjach.

Ta zmiana jest bramką dla wszystkich zmian, które wymuszają określony minimalny format obrazu. Włączenie tej zmiany umożliwia zastosowanie tych minimalnych proporcji:

Gdy ta zmiana zostanie włączona w przypadku pakietu aplikacji, minimalne proporcje podane w pliku manifestu zostaną zastąpione przez największe dozwolone proporcje, chyba że wartość w pliku manifestu jest większa.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

Identyfikator zmiany: 218959984
Stan domyślny: wyłączone we wszystkich aplikacjach.

Gdy ta opcja jest włączona, zastępuje minimalne ograniczenie współczynnika proporcji w orientacji pionowej w celu wykorzystania całej dostępnej przestrzeni ekranu.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

Identyfikator zmiany: 180326787
Stan domyślny: wyłączone dla wszystkich aplikacji.

Jeśli włączona jest też opcja OVERRIDE_MIN_ASPECT_RATIO, włączenie tej zmiany w pakiecie powoduje ustawienie minimalnego formatu obrazu aktywności na dużą wartość określoną przez OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

Identyfikator zmiany: 180326845
Stan domyślny: wyłączone dla wszystkich aplikacji.

Gdy włączona jest również opcja OVERRIDE_MIN_ASPECT_RATIO, włączenie tej zmiany w przypadku pakietu powoduje ustawienie minimalnego współczynnika proporcji aktywności na średnią wartość określoną przez opcję OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_ONLY_FOR_CAMERA

Identyfikator zmiany: 325586858
Stan domyślny: wyłączone we wszystkich aplikacjach.

Gdy jest włączona, ogranicza metody, które wymuszają zastosowanie określonego minimalnego formatu obrazu, tak aby były one stosowane tylko wtedy, gdy aplikacja jest połączona z kamerą.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

Identyfikator zmiany: 203647190
Stan domyślny: włączone we wszystkich aplikacjach.

Gdy opcja OVERRIDE_MIN_ASPECT_RATIO jest również włączona, ogranicza to wszystkie inne zmiany, które wymuszają określony minimalny współczynnik proporcji aktywności, takie jak OVERRIDE_MIN_ASPECT_RATIO_LARGE i OVERRIDE_MIN_ASPECT_RATIO_MEDIUM, do aktywności, które mają również orientację pionową.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

Identyfikator zmiany: 236283604
Stan domyślny: wyłączone we wszystkich aplikacjach.

Po włączeniu ta zmiana wyklucza pakiety zastosowane do pakietów, które są ignorowane przez ograniczenia orientacji, które mogą być ustawiane przez producentów urządzeń.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

Identyfikator zmiany: 265451093
Stan domyślny: wyłączone we wszystkich aplikacjach.

Włącza SCREEN_ORIENTATION_NOSENSOR w przypadku aplikacji, do której jest stosowany. Jeśli nie jest też włączona opcja OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_NOSENSOR jest używana tylko wtedy, gdy aktywność nie określa żadnego innego stałego ułożenia.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

Identyfikator zmiany: 265452344
Stan domyślny: wyłączone we wszystkich aplikacjach.

Włącza SCREEN_ORIENTATION_PORTRAIT w przypadku aplikacji, do której jest stosowany. Jeśli nie jest też włączona opcja OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_PORTRAIT jest używana tylko wtedy, gdy aktywność nie określa żadnego innego stałego ułożenia.

PARSE_CONTENT_DISPOSITION_USING_RFC_6266

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

Po włączeniu umożliwia analizowanie nagłówków Content-Disposition zgodnych ze specyfikacją RFC 6266. Umożliwia to między innymi analizowanie wartości filename*, które mogą używać innego kodowania znaków.

RATE_LIMIT_TOASTS

Identyfikator zmiany: 174840628
Stan domyślny: tej zmiany nie można zmienić. Jest on rejestrowany tylko przez system sprawdzania zgodności.

Umożliwia ograniczenie liczby połączeń Toast.show(), aby nie obciążać użytkownika zbyt dużą liczbą toastów w określonym czasie. Każda próba wyświetlenia większej liczby toastów niż dozwolona w określonym przedziale czasowym powoduje odrzucenie toastu.

STREAM_INT_DIFFERS_FROM_NEXT_INT

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

Po włączeniu metody Random.ints() zwracają teraz inną sekwencję liczb niż metody Random.nextInt(). Wynika to ze zmian w https://bugs.openjdk.org/browse/JDK-8301574.

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom w zachowaniu Androida 15 na stronie Zmiany w interfejsie OpenJDK API.

USE_EXPERIMENTAL_COMPONENT_ALIAS

Identyfikator zmiany: 196254758
Stan domyślny: wyłączone we wszystkich aplikacjach.

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łączone w przypadku aplikacji kierowanych na Androida 15 (poziom API 35) lub nowszego.

Gdy ta opcja jest włączona, kody języków hebrajskiego, jidysz i indonezyjskiego nie są już konwertowane na ich przestarzałe formy (hebrajski:iw, jidysz: ji, indonezyjski: in).

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom w zachowaniu Androida 15 na stronie Zmiany w interfejsie OpenJDK API.