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:

  • Testuj zmiany docelowe 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łączyć lub wyłączyć, ma unikalny identyfikator i nazwę, których możesz używać do szybkiego debugowania przyczyny błędu w wyprowadzaniu 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. Zawiera też zmiany, które mogą ułatwić ogólne testowanie 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 ona obsługiwana 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.

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

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie poświęconej zmianom zachowania w Androidzie 15 dotyczącym uruchamiania zabezpieczonych procesów działających 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żych wymiarach pionowych czcionką, która jest znacznie łatwiejsza do odczytania.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie Zmiany zachowania w Androidzie 15 dotyczące atrybutu elegantTextHeight, który domyślnie ma 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 wymuszająco przeskalowana do najwyższego, włączonego współczynnika skalowania. Na przykład wartość 80% jest używana, jeśli włączone są ustawienia 80% i 70% (DOWNSCALE_80DOWNSCALE_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 wartość 80% jest używana, jeśli włączone są zarówno 80%, jak i 70% (DOWNSCALE_80DOWNSCALE_70), ponieważ odwrotnie zastosowane 80% odpowiada 125%, co jest mniejsze niż 142,86%, które jest stosowane przy odwrotnym zastosowaniu 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 będzie działać z założenia, że wyświetla się na ekranie o 30% 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 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łączona jest też opcja DOWNSCALED, w przypadku pakietu powoduje to, że aplikacja zakłada, że działa na wyświetlaczu o 35% mniejszej rozdzielczości w orientacji poziomej i pionowej niż rzeczywisty wyświetlacz. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu aplikacja będzie działać z założeniem, że wyświetlacz ma rozdzielczość pionową i poziomą równą 285,71% rzeczywistej rozdzielczości.

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łączona jest też opcja DOWNSCALED, w przypadku pakietu z tą zmianą aplikacja będzie zakładać, że działa na wyświetlaczu o 45% mniejszej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu ta zmiana spowoduje, że aplikacja będzie działać na wyświetlaczu o rozdzielczości pionowej i poziomej równej 222,22% rzeczywistej rozdzielczości wyświetlacza.

DOWNSCALE_50

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

Jeśli włączona jest też opcja DOWNSCALED, w przypadku pakietu ta zmiana spowoduje, że 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 przypadku pakietu aplikacja będzie zakładać, że 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łączysz też opcję DOWNSCALED, aplikacja będzie zakładać, że działa na wyświetlaczu o rozdzielczości 55% 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 181,82% mniejszej rozdzielczości w orientacji poziomej i pionowej niż rzeczywisty wyświetlacz.

DOWNSCALE_60

Identyfikator zmiany: 176926771
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 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 przypadku pakietu z taką zmianą aplikacja zakłada, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 166,67% rzeczywistej rozdzielczości.

DOWNSCALE_65

Identyfikator zmiany: 189969744
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 65% w orientacji pionowej i poziomej w porównaniu z rzeczywistą rozdzielczością wyświetlacza. 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 153,85% mniejszej 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łączysz też opcję DOWNSCALED, aplikacja będzie zakładać, że działa na wyświetlaczu o 70% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. 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 142,86% większej rozdzielczości pionowej i poziomej 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 działać z założenia, że wyświetlacz ma rozdzielczość 85% w orientacji pionowej i poziomej w porównaniu z rzeczywistą rozdzielczością 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 rozdzielczości pionowej i poziomej równej 117,65% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_90

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

Jeśli włączona jest też opcja DOWNSCALED, w przypadku pakietu ta zmiana spowoduje, że 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 włączona zmiana spowoduje, że aplikacja będzie działać na wyświetlaczu o rozdzielczości pionowej i poziomej równej 111,11% rzeczywistej rozdzielczości pionowej i poziomej.

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 podstawowej tablicy. Ten kod powoduje wyjątek ClassCastException:

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

W tym przypadku, aby zachować typ elementu String w wynikowym tablicy, możesz użyć 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 zachowania w Androidzie 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 z kompatybilnością istniejących aplikacji z użyciem pakietu ClientTransaction#getActivityToken() bez pakietu SDK, zezwalaj 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 starszego nadal muszą dodać NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK do NetworkCapabilitiesNetworkRequest, aby odbierać 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 argumentu, 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 zachowania w Androidzie 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 funkcja jest włączona, aplikacje będą domyślnie wyświetlane bez ramki na urządzeniach z Androidem 15 lub nowszym.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie poświęconej zmianom zachowania w Androidzie 15 dotyczącym rygorystycznego egzekwowania zasad.

ENFORCE_STRICT_QUERY_BUILDER

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

Gdy ta opcja jest włączona, SQLiteQueryBuilder weryfikuje 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 na stronie poświęconej zmianom w zachowaniu w Androidzie 15 dotyczącym ograniczeń dotyczących BOOT_COMPLETED odbiorników transmisji danych w przypadku uruchamiania usług 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 sekcji dotyczącej Androida 15 na stronie Zmiany zachowania na Androidzie dotyczące zachowania po przekroczeniu limitu czasu w przypadku synchronizacji danych przetwarzania multimediów w tle.

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 poświęconej Androidowi 15. Ograniczenia uruchamiania usług na pierwszym planie, gdy aplikacja ma uprawnienia SYSTEM_ALERT_WINDOW.

FORCE_DISABLE_HEVC_SUPPORT

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

Wymusić wyłączenie obsługi formatu HEVC przez aplikację. Aplikacje powinny deklarować obsługiwane formaty multimediów w pliku manifestu, ale ta flaga może być używana do wymuszania w aplikacji braku obsługi HEVC, co powoduje 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 stosowany. Zezwalam na zmianę rozmiaru tylko w trybie pełnoekranowym, a nie na wymuszenie 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 błędów w pamięci natywnej w aplikacjach.

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 dla 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 restrykcyjna zasada wygrywa”.

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom zachowania w Androidzie 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 opcję SCREEN_ORIENTATION_USER, która zastępuje dowolną orientację wymaganą przez aktywność. Za pomocą tej zastępczej wartości można zastąpić orientację aplikacji na pełny ekran na urządzeniach z dużym ekranem z włączoną opcją 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 w trybie okna swobodnego w przypadku aplikacji o niezmiennej orientacji.

W trybie tworzenia okien w dowolnym formacie 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 te, których zwykle oczekują aplikacje na urządzeniu w orientacji pionowej: odpowiednio 90 i 270 stopni obrotu czujnika dla 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.

Po włączeniu ta zmiana spowoduje, że pakiety, do których jest stosowana, będą ignorować bieżącą wartość atrybutu android:resizeableActivity, a także docelowy pakiet SDK o wartości równej lub niższej niż Android 6.0 (poziom interfejsu API 23) i traktować 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, powoduje, że pakiety, do których jest stosowana, zastępują domyślne zachowanie obracania i przycinania aparatu i zawsze zwracają 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 włączona, SCREEN_ORIENTATION_REVERSE_LANDSCAPE jest używana tylko wtedy, gdy aktywność określa orientację poziomą. Włączenie tej zmiany może pomóc w sprawdzaniu różnic w działaniu aplikacji 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.

Po włączeniu zastępuje układ w trybie wycięcia w ekranie. Dotyczy to tylko sytuacji, gdy nie jest wymagane wypełnianie od krawędzi do krawędzi.

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 pozwala zastosować te minimalne proporcje:

Gdy ta zmiana zostanie włączona w przypadku pakietu aplikacji, minimalny współczynnik proporcji podany w manifeście aplikacji zostanie zastąpiony przez największy dozwolony współczynnik proporcji, chyba że wartość w manifeście aplikacji 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 trybie pełnoekranowym w orientacji pionowej, aby wykorzystać całą dostępną przestrzeń ekranu.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

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

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 też włączona, ogranicza to inne zmiany, które wymuszają określony minimalny współczynnik proporcji aktywności, np. OVERRIDE_MIN_ASPECT_RATIO_LARGE i OVERRIDE_MIN_ASPECT_RATIO_MEDIUM, w przypadku aktywności, które mają też orientację pionową.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

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

Po włączeniu ta zmiana wyklucza pakiety, które są stosowane do pakietów, z ignorowania ograniczeń 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 żadnej innej stałej orientacji.

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 żadnej innej stałej orientacji.

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 wywołań 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ż jest dozwolone w określonym przedziale czasu 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 zachowania w Androidzie 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 interfejsu 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 zachowania w Androidzie 15 na stronie Zmiany w interfejsie OpenJDK API.