Zmiany w systemie sprawdzania zgodności (Android 15)

Rysunek 1. Na ekranie Zmiany dotyczące zgodności aplikacji w opcjach programisty znajdziesz listę zmian, które możesz przełączać.

Na tej stronie opisujemy zmiany, które można przełączać i które są częścią systemu sprawdzania zgodności w Androidzie 15 (poziom API 35). Używaj tej listy w połączeniu z opcjami programisty i poleceniami ADB, aby testować i debugować aplikację podczas przygotowywania jej do obsługi Androida 15 i kierowania na tę wersję.

Oto kilka rzeczy, które możesz zrobić za pomocą narzędzi systemu sprawdzania zgodności:

  • Testuj zmiany ukierunkowane bez faktycznej zmiany wartości targetSdkVersion aplikacji. Możesz użyć przełączników, aby wymusić włączenie określonych zmian zachowania, i ocenić ich wpływ na dotychczasową aplikację.
  • Skup się na testowaniu tylko konkretnych zmian. Zamiast wprowadzać wszystkie zmiany kierowania naraz, możesz za pomocą przełączników wyłączyć wszystkie zmiany kierowania oprócz tych, które chcesz przetestować.
  • Zarządzanie przełącznikami za pomocą adb Możesz używać poleceń adb, aby włączać i wyłączać zmiany w środowisku testów automatycznych.
  • Szybsze debugowanie dzięki standardowym identyfikatorom zmian Każda zmiana, którą można przełączać, ma unikalny identyfikator i nazwę, dzięki którym można 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 o narzędziach systemu sprawdzania zgodności.

Zmiany zachowania uwzględnione w systemie sprawdzania zgodności

Lista w tej sekcji zawiera zmiany, które można przełączać, uwzględnione w systemie sprawdzania zgodności w przypadku zmian związanych z Androidem 15, oraz zmiany, które można przełączać, które mogą pomóc w ogólnych testach 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 przełączać

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

Wskazuje, że to urządzenie obsługuje wskaźniki aparatu i mikrofonu. Jeśli wartość jest obecna, jest to false, ponieważ metoda CompatChanges#isChangeEnabled zwraca true, jeśli identyfikator zmiany nie jest obecny.

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

Identyfikator zmiany: 320741775
Stan domyślny: włączone w aplikacjach kierowanych na Androida 15 (poziom 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łączone w przypadku aplikacji kierowanych na Androida 15 (API na poziomie 35) lub nowszego.

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

Więcej informacji o tej zmianie znajdziesz w sekcji Bezpieczne uruchamianie aktywności w tle na stronie poświęconej zmianom w zachowaniu Androida 15.

DEPRECATE_UI_FONT

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

Gdy ta opcja jest włączona, atrybut elegantTextHeight TextView domyślnie przyjmuje wartość true, gdy aplikacja działa na urządzeniu z Androidem 15 lub nowszym. Zastępuje to domyślnie używaną czcionkę kompaktową w przypadku niektórych skryptów o dużych wymiarach pionowych czcionką, która jest znacznie bardziej czytelna.

Więcej informacji o tej zmianie znajdziesz w sekcji Atrybut elegantTextHeight ma domyślnie wartość true na stronie ze zmianami zachowania w Androidzie 15.

DOWNSCALED

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

Ta zmiana jest kluczowa dla wszystkich zmian związanych ze zmniejszaniem bufora na aplikację. Włączenie tej zmiany umożliwia zastosowanie tych współczynników skalowania:

Gdy ta zmiana jest włączona w przypadku pakietu aplikacji, rozmiar aplikacji jest wymuszany do najwyższego włączonego współczynnika skalowania. Jeśli na przykład włączone są zarówno 80%, jak i 70% (DOWNSCALE_80 i DOWNSCALE_70), używana jest wartość 80%. Gdy włączona jest zarówno ta zmiana, jak i DOWNSCALED_INVERSE, pierwszeństwo ma DOWNSCALED_INVERSE, a współczynnik skalowania jest stosowany odwrotnie.

DOWNSCALED_INVERSE

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

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

Gdy ta zmiana jest włączona w przypadku pakietu aplikacji, rozmiar aplikacji jest wymuszany na najniższym włączonym współczynniku skalowania. Jeśli na przykład włączone są opcje 80% i 70% (DOWNSCALE_80 i DOWNSCALE_70), używany jest współczynnik 80%, ponieważ po zastosowaniu odwrotnym współczynnik skalowania 80% jest równy 125%, co jest mniejsze niż skalowanie 142,86% stosowane po odwrotnym zastosowaniu współczynnika skalowania 70%. Gdy włączona jest zarówno ta zmiana, jak i DOWNSCALED, pierwszeństwo ma DOWNSCALED_INVERSE, a współczynnik skalowania jest stosowany odwrotnie.

DOWNSCALE_30

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

Jeśli włączona jest też opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 30% rzeczywistej rozdzielczości wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 333,33% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_35

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

Jeśli włączona jest też opcja DOWNSCALED, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 35% rzeczywistej rozdzielczości wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 285,71% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_40

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

Jeśli włączona jest też opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 40% rozdzielczości rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 250% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_45

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

Jeśli włączona jest też opcja DOWNSCALED, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 45% rozdzielczości rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 222,22% rzeczywistego wyświetlacza.

DOWNSCALE_50

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

Jeśli włączona jest też opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 50% rzeczywistej rozdzielczości wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 200% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_55

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

Jeśli włączona jest też opcja DOWNSCALED, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 55% rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 181,82% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_60

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

Jeśli włączona jest też opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 60% rozdzielczości rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 166,67% rozdzielczości rzeczywistego wyświetlacza.

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 pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 65% rozdzielczości rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 153,85% rzeczywistej rozdzielczości wyświetlacza.

DOWNSCALE_70

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

Jeśli włączona jest też opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 70% rozdzielczości rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 142,86% rozdzielczości rzeczywistego wyświetlacza.

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 pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 75% rozdzielczości rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 133,33% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_80

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

Jeśli włączona jest też opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 80% rozdzielczości rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 125% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_85

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

Jeśli włączona jest też opcja DOWNSCALED, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 85% rozdzielczości rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji założenie, że 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łączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 90% rzeczywistej rozdzielczości wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 111,11% rozdzielczości rzeczywistego wyświetlacza.

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

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

Gdy ta opcja jest włączona, podczas używania Arrays.asList(...).toArray() typem komponentu wynikowej tablicy jest Object, a nie typ elementów tablicy bazowej. Dlatego ten kod zgłasza błąd ClassCastException:

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

W tym przypadku, aby zachować String jako typ komponentu w wynikowej tablicy, możesz użyć 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 interfejsie OpenJDK API na stronie ze zmianami zachowania w Androidzie 15.

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

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

Gdy ta opcja jest włączona, aby zapobiec problemom ze zgodnością istniejących aplikacji z użyciem ClientTransaction#getActivityToken() poza pakietem SDK, zezwalaj tylko na grupowanie LaunchActivityItem.

ENABLE_MATCH_LOCAL_NETWORK

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

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

ENABLE_STRICT_FORMATTER_VALIDATION

Identyfikator zmiany: 270674727
Stan domyślny: włączone w aplikacjach kierowanych na Androida 15 (API na poziomie 35) lub nowszego.

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

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom w interfejsie OpenJDK API na stronie ze zmianami zachowania w Androidzie 15.

ENFORCE_EDGE_TO_EDGE

Identyfikator zmiany: 309578419
Stan domyślny: włączona w aplikacjach kierowanych na Androida 15 (API na poziomie 35) lub nowszego.

Gdy ta opcja jest włączona, aplikacje są domyślnie wyświetlane bez ramki na urządzeniach z Androidem 15 lub nowszym.

Więcej informacji o tej zmianie znajdziesz w sekcji dotyczącej egzekwowania wyświetlania od krawędzi do krawędzi na stronie ze zmianami zachowania Androida 15.

ENFORCE_STRICT_QUERY_BUILDER

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

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

FGS_BOOT_COMPLETED_RESTRICTIONS

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

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

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

FGS_INTRODUCE_TIME_LIMITS

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

Gdy ta funkcja jest włączona, usługi na pierwszym planie określonych typów mają limit czasu. Jeśli usługa na pierwszym planie, która narusza zasady, nie zostanie zatrzymana w wyznaczonym czasie, otrzyma wywołanie zwrotne za pomocą Service.onTimeout(int, int) i musi zostać zatrzymana w ciągu kilku sekund. Jeśli aplikacja tego nie zrobi, zostanie zgłoszony błąd ANR.

Więcej informacji o tej zmianie znajdziesz w sekcjach na stronie o zmianach zachowania w Androidzie 15 dotyczących zachowania po upływie limitu czasu w przypadku typów usług działających na pierwszym planie związanych z  synchronizacją danych i  przetwarzaniem multimediów.

FGS_SAW_RESTRICTIONS

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

Jeśli ta opcja jest włączona, wyłącza uruchamianie usług na pierwszym planie w tle 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 Ograniczenia dotyczące uruchamiania usług na pierwszym planie, gdy aplikacja ma uprawnienia SYSTEM_ALERT_WINDOW na stronie poświęconej zmianom w zachowaniu Androida 15.

FORCE_DISABLE_HEVC_SUPPORT

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

Wymuś wyłączenie obsługi funkcji multimedialnych HEVC przez aplikację. Aplikacje powinny deklarować obsługiwane funkcje multimedialne w pliku manifestu, ale tej flagi można użyć, aby wymusić brak obsługi HEVC przez aplikację, co wymusi transkodowanie podczas uzyskiwania dostępu do multimediów zakodowanych w HEVC. Ustawienie tej flagi zastępuje wszystkie domyślne ustawienia aplikacji na poziomie systemu operacyjnego. 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łączone we wszystkich aplikacjach.

Wymuś włączenie obsługi formatu HEVC w aplikacji. Aplikacje powinny deklarować obsługiwane formaty multimediów w pliku manifestu, ale ta flaga może służyć do wymuszenia obsługi formatu HEVC, co pozwala uniknąć transkodowania podczas uzyskiwania dostępu do multimediów zakodowanych w tym formacie. Ustawienie tej flagi zastępuje wszystkie domyślne ustawienia aplikacji na poziomie systemu operacyjnego. 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_DISABLE_HEVC_SUPPORT, system operacyjny ignoruje obie flagi.

FORCE_NON_RESIZE_APP

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

Wymusza, aby pakiety, do których jest stosowany, nie miały możliwości 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. Zezwalamy na zmianę rozmiaru tylko w trybie okna pełnoekranowego, ale nie wymuszamy na aplikacji 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 pamięci natywnej w aplikacjach na podstawie próbek.

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

IS_DEVICE_OWNER_USER_AWARE

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

Gdy ta opcja jest włączona, metoda isDeviceOwnerApp(String) będzie używać użytkownika zawartego w kontekście. W przypadku aplikacji kierowanych na Androida 14 (API na poziomie 34) lub starszego używany będzie 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 (API na poziomie 35) lub nowszego.

Gdy ta opcja jest włączona, aplikacje nie mogą już zmieniać stanu globalnego ani zasad trybu Nie przeszkadzać na urządzeniu (przez modyfikowanie ustawień użytkownika lub wyłączanie trybu Nie przeszkadzać). Zamiast tego aplikacje muszą udostępniać AutomaticZenRule, które system łączy w zasadę globalną zgodnie z obowiązującym schematem, w którym pierwszeństwo mają najbardziej restrykcyjne zasady.

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

NATIVE_HEAP_ZERO_INIT

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

Włącz automatyczną inicjalizację zerową alokacji pamięci sterty natywnej.

NATIVE_MEMTAG_ASYNC

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

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

NATIVE_MEMTAG_SYNC

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

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 Memory Tagging Extension (MTE) architektury ARM. Jeśli włączone są zarówno zasada 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łączone we wszystkich aplikacjach.

Gdy ta opcja jest włączona, można stosować te zastąpienia orientacji niezależnie od orientacji żądanej przez aktywność:

OVERRIDE_ANY_ORIENTATION_TO_USER

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

Jeśli ta opcja jest włączona, włącza SCREEN_ORIENTATION_USER, co zastępuje orientację wymaganą przez aktywność. Aplikacje o stałej orientacji można zastąpić na pełny ekran na urządzeniach z dużym ekranem, na których włączono ignoreOrientationRequest.

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

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

Jeśli jest włączona, pakiety, do których zastosowano zastąpienie, są wykluczane z traktowania zgodności aparatu w trybie okien swobodnych w przypadku aplikacji o stałej orientacji.

W trybie okien swobodnych funkcja zgodności emuluje działanie na urządzeniu w orientacji pionowej, dodając czarne pasy do okna aplikacji i zmieniając charakterystykę aparatu na taką, jakiej aplikacje zwykle oczekują na urządzeniu w orientacji pionowej: obrót czujnika o 90 i 270 stopni odpowiednio w przypadku tylnego i przedniego aparatu oraz ustawienie obrotu wyświetlacza na 0.

Użyj tej flagi, aby wyłączyć tryb zgodności w przypadku aplikacji, które nie działają prawidłowo w tym trybie.

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

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

Gdy ta zmiana jest włączona, pakiety, do których jest stosowana, ignorują bieżącą wartość android:resizeableActivity oraz docelowy pakiet SDK równy lub niższy niż Android 6.0 (poziom interfejsu API 23) i uznają aktywność za taką, której rozmiaru nie można zmienić. W tym przypadku wartość obrotu i przycięcia obrazu z kamery zależy tylko od potrzebnej kompensacji, biorąc pod uwagę 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 opcja jest włączona, 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.

Gdy ta opcja jest włączona, użytkownicy mogą wybrać, czy chcą przechwytywać pojedynczą aplikację czy cały ekran podczas rozpoczynania sesji MediaProjection, co zastępuje 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 aplikacji, do której jest stosowana. Jeśli nie jest też włączona opcja OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_REVERSE_LANDSCAPE jest używana tylko wtedy, gdy aktywność określa orientację poziomą. Włączenie tej zmiany może pomóc w przetestowaniu działania 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 wartości Surface.ROTATION_270.

OVERRIDE_LAYOUT_IN_DISPLAY_CUTOUT_MODE

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

Gdy ta opcja jest włączona, zastępuje działanie układu w trybie wycięcia w ekranie. To ustawienie będzie stosowane tylko wtedy, gdy nie jest wymuszony tryb od krawędzi do krawędzi.

OVERRIDE_MIN_ASPECT_RATIO

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

Ta zmiana jest strażnikiem wszystkich zmian, które wymuszają dany minimalny format obrazu. Włączenie tej zmiany umożliwia stosowanie tych minimalnych formatów obrazu:

Gdy ta zmiana jest włączona w przypadku pakietu aplikacji, minimalny format obrazu podany w pliku manifestu aplikacji jest zastępowany największym włączonym formatem obrazu, chyba że wartość w pliku manifestu 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 ograniczenie minimalnego formatu obrazu w trybie pełnoekranowym w orientacji pionowej, aby wykorzystać całe dostępne miejsce na ekranie.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

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

Gdy 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 we wszystkich aplikacjach.

Gdy włączona jest też opcja OVERRIDE_MIN_ASPECT_RATIO, włączenie tej zmiany w pakiecie powoduje ustawienie minimalnego formatu obrazu aktywności 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łączone we wszystkich aplikacjach.

Gdy ta opcja jest włączona, ogranicza stosowanie ustawień wymuszających dany minimalny format obrazu, tak aby były one stosowane tylko wtedy, gdy aplikacja jest połączona z aparatem.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

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

Gdy włączona jest też flaga OVERRIDE_MIN_ASPECT_RATIO, ta zmiana ogranicza wszelkie inne zmiany, które wymuszają minimalny format obrazu aktywności o określonej wartości – takie jak OVERRIDE_MIN_ASPECT_RATIO_LARGE i OVERRIDE_MIN_ASPECT_RATIO_MEDIUM – do aktywności, które mają też orientację pionową.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

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

Gdy ta opcja jest włączona, ta zmiana wyklucza pakiety, do których jest stosowana, z ignorowania ograniczeń orientacji, które mogą ustawiać producenci urządzeń.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

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

Włącza SCREEN_ORIENTATION_NOSENSOR w aplikacji, do której jest stosowana. Jeśli nie jest też włączona zasada OVERRIDE_ANY_ORIENTATION, zasada 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 aplikacji, do której jest stosowana. Jeśli nie jest też włączona zasada OVERRIDE_ANY_ORIENTATION, zasada 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łączone w przypadku aplikacji kierowanych na Androida 15 (API na poziomie 35) lub nowszego.

Gdy ta opcja jest włączona, umożliwia analizowanie nagłówków Content-Disposition zgodnych ze standardem RFC 6266. W szczególności umożliwia to 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 przełączyć. Jest on rejestrowany tylko przez system sprawdzania zgodności.

Włącza ograniczanie liczby żądań Toast.show(), aby nie obciążać użytkownika zbyt dużą liczbą powiadomień w ograniczonym czasie. Każda próba wyświetlenia większej liczby powiadomień, niż jest to dozwolone w określonym czasie, spowoduje odrzucenie powiadomienia.

STREAM_INT_DIFFERS_FROM_NEXT_INT

Identyfikator zmiany: 308103782
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 15 (API na poziomie 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 opisanych na stronie https://bugs.openjdk.org/browse/JDK-8301574.

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom w interfejsie OpenJDK API na stronie ze zmianami zachowania w Androidzie 15.

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 aplikacjach 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 i indonezyjski: in).

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom w interfejsie OpenJDK API na stronie ze zmianami zachowania w Androidzie 15.