Zmiany w systemie sprawdzania zgodności (Android 15)

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

Na tej stronie opisujemy zmiany, które można włączać i wyłączać w ramach platformy zgodności w Androidzie 15 (API na poziomie 35). Korzystaj z tej listy w połączeniu z opcjami programisty i poleceniami ADB, aby testować i debugować aplikację podczas przygotowywania jej do obsługi Androida 15.

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

  • Testuj zmiany kierowane bez faktycznej zmiany parametru targetSdkVersion aplikacji. Za pomocą przełączników możesz wymusić włączenie określonych zmian w zachowaniu ukierunkowanym, aby ocenić ich wpływ na dotychczasową aplikację.
  • Skup się w testach tylko na konkretnych zmianach. Zamiast wprowadzać wszystkie zmiany jednocześnie, możesz wyłączyć wszystkie zmiany kierowane z wyjątkiem tych, które chcesz przetestować.
  • Zarządzanie przełącznikami za pomocą adb Za pomocą poleceń adb możesz włączać i wyłączać zmiany, które można przełączać, 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óre możesz wykorzystać do szybkiego debugowania przyczyny głównej w danych wyjściowych dziennika.

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

Zmiany w działaniu uwzględnione w systemie sprawdzania zgodności

Lista w tej sekcji zawiera zmiany, które można włączać i wyłączać, a które są uwzględnione w ramach zgodności ze zmianami związanymi z Androidem 15 oraz zmiany, które można włączać i wyłączać, a które mogą pomóc w ogólnych testach aplikacji.

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

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

CAMERA_MIC_INDICATORS_NOT_PRESENT

Identyfikator zmiany: 162547999
Stan domyślny: wyłączony dla wszystkich aplikacji.

Wskazuje, że to urządzenie obsługuje wskaźniki kamery i mikrofonu. Wartość to false, jeśli jest obecna, 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łączony w przypadku aplikacji kierowanych na Androida 15 (API na poziomie 35) lub nowszego.

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

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

Identyfikator zmiany: 296478951
Stan domyślny: włączony 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 na stronie zmian w zachowaniu Androida 15 dotyczącej bezpiecznego uruchamiania aktywności w tle.

DEPRECATE_UI_FONT

Identyfikator zmiany: 279646685
Stan domyślny: włączony 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 jest uruchomiona na urządzeniu z Androidem 15 lub nowszym. Zastępuje on 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 na stronie zmian w Androidzie 15 dotyczącej domyślnej wartości atrybutu elegantTextHeight ustawionej na „true”.

DOWNSCALED

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

Ta zmiana jest punktem kontrolnym wszystkich zmian dotyczących zmniejszania bufora w poszczególnych aplikacjach. 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 np. włączone są zarówno 80%, jak i 70% (DOWNSCALE_80DOWNSCALE_70), używana jest wartość 80%. Jeśli ta zmiana i DOWNSCALED_INVERSE są włączone, pierwszeństwo ma DOWNSCALED_INVERSE, a współczynnik skalowania jest stosowany odwrotnie.

DOWNSCALED_INVERSE

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

Ta zmiana jest punktem kontrolnym wszystkich zmian dotyczących odwrotnego zmniejszania 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 jest włączona w przypadku pakietu aplikacji, aplikacja jest wymuszona zmieniana na najniższy włączony współczynnik skalowania. Na przykład jeśli włączone są zarówno 80%, jak i 70% (DOWNSCALE_80DOWNSCALE_70), używana jest wartość 80%, ponieważ po zastosowaniu odwrotnym współczynnik skalowania 80% jest równy 125%, co jest mniejsze niż 142,86% skalowania, które jest stosowane po zastosowaniu odwrotnym współczynnika skalowania 70%. Jeśli ta zmiana i DOWNSCALED są włączone, pierwszeństwo ma DOWNSCALED_INVERSE, a współczynnik skalowania jest stosowany odwrotnie.

DOWNSCALE_30

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

Jeśli opcja DOWNSCALED jest również włączona, 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 stanowiącej 30% 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 stanowiącej 333,33% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_35

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

Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej stanowiącej 35% 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 wynoszącej 285,71% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_40

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

Jeśli opcja DOWNSCALED jest również włączona, wprowadzenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 40% rozdzielczości rzeczywistego wyświetlacza. Jeśli opcja DOWNSCALED_INVERSE jest również włączona, 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 250% większej niż rzeczywista rozdzielczość wyświetlacza.

DOWNSCALE_45

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

Jeśli opcja DOWNSCALED jest również włączona, wprowadzenie 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 wynoszącej 222,22% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_50

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

Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 50% rozdzielczości rzeczywistego wyświetlacza. Jeśli opcja DOWNSCALED_INVERSE jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o 200% większej rozdzielczości pionowej i poziomej niż rzeczywisty wyświetlacz.

DOWNSCALE_55

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

Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 55% 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 wynoszącej 181,82% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_60

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

Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 60% rozdzielczości rzeczywistego wyświetlacza. Jeśli opcja DOWNSCALED_INVERSE jest również włączona, 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 wynoszącej 166,67% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_65

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

Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja 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 przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej wynoszącej 153,85% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_70

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

Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej stanowiącej 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 wynoszącej 142,86% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_75

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

Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja 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 przypadku pakietu wymusza na aplikacji założenie, że działa na wyświetlaczu o rozdzielczości pionowej i poziomej wynoszącej 133,33% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_80

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

Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 80% rozdzielczości rzeczywistego wyświetlacza. Jeśli opcja DOWNSCALED_INVERSE jest również włączona, 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 większej o 125% od rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_85

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

Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 85% rozdzielczości rzeczywistego wyświetlacza. Jeśli opcja DOWNSCALED_INVERSE jest również włączona, 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 wynoszącej 117,65% rozdzielczości rzeczywistego wyświetlacza.

DOWNSCALE_90

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

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

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

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

Gdy ta opcja jest włączona, podczas korzystania z funkcji Arrays.asList(...).toArray() typ komponentu wynikowej tablicy to teraz Object, a nie typ elementów tablicy bazowej. Ten kod wywołuje wyjątek ClassCastException:

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

Aby w tym przypadku 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 na stronie zmian w zachowaniu Androida 15 poświęconej zmianom w interfejsie OpenJDK API.

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

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

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

ENABLE_MATCH_LOCAL_NETWORK

Identyfikator zmiany: 319212206
Stan domyślny: włączony 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 NetworkCapabilitiesNetworkRequest, aby otrzymywać ConnectivityManager.NetworkCallback z sieci lokalnych.

ENABLE_STRICT_FORMATTER_VALIDATION

Identyfikator zmiany: 270674727
Stan domyślny: włączony w przypadku aplikacji 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 teraz bardziej rygorystyczna w przypadku korzystania z interfejsów API String.format()Formatter.format().

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

ENFORCE_EDGE_TO_EDGE

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

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

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie dotyczącej zmian w zachowaniu Androida 15, która opisuje wymuszanie wyświetlania od krawędzi do krawędzi.

ENFORCE_STRICT_QUERY_BUILDER

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

Gdy ta opcja jest włączona, SQLiteQueryBuilder weryfikuje wszystkieCalendarProvider2 wybory zapytań pod kątem złośliwych argumentów.

FGS_BOOT_COMPLETED_RESTRICTIONS

Identyfikator zmiany: 296558535
Stan domyślny: włączony 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 BOOT_COMPLETED we wszystkich typach z wyjątkiem:

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie dotyczącej zmian w zachowaniu w Androidzie 15, która opisuje ograniczenia dotyczące uruchamiania usług działających na pierwszym planie przez BOOT_COMPLETEDodbiorniki transmisji.

FGS_INTRODUCE_TIME_LIMITS

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

Gdy ta opcja jest włączona, usługi na pierwszym planie określonych typów mają limit czasu. Jeśli usługa na pierwszym planie danego typu nie zostanie zatrzymana w wyznaczonym czasie, otrzyma wywołanie zwrotne za pomocą metody 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 dotyczącej zmian w zachowaniu Androida 15, które opisują zachowanie limitu czasu w przypadku typów usług na pierwszym planie: synchronizacja danych przetwarzanie multimediów.

FGS_SAW_RESTRICTIONS

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

Gdy ta opcja jest włączona, wyłącza uruchamianie usług działających na pierwszym planie w oknie alertu systemowego dla wszystkich typów, chyba że aplikacja ma już okno nakładki systemowej.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie zmian w zachowaniu Androida 15 dotyczącej ograniczeń dotyczących uruchamiania usług na pierwszym planie, gdy aplikacja ma uprawnienie SYSTEM_ALERT_WINDOW.

FORCE_DISABLE_HEVC_SUPPORT

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

Wymuś wyłączenie obsługi HEVC w aplikacji. Aplikacje powinny deklarować obsługiwane funkcje multimedialne w pliku manifestu, ale ta flaga może wymusić, aby aplikacja nie obsługiwała HEVC, a tym samym wymusić transkodowanie podczas uzyskiwania dostępu do multimediów zakodowanych w HEVC. Ustawienie tego flagi zastępuje wszelkie domyślne ustawienia systemu operacyjnego w przypadku aplikacji. Domyślnie jest wyłączona, co oznacza, że pierwszeństwo mają ustawienia domyślne systemu operacyjnego. Jeśli ta flaga i flaga FORCE_ENABLE_HEVC_SUPPORT są włączone, system operacyjny ignoruje obie flagi.

FORCE_ENABLE_HEVC_SUPPORT

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

Wymuszanie włączenia obsługi formatu HEVC w aplikacji. Aplikacje powinny deklarować obsługiwane funkcje multimedialne w pliku manifestu, ale ta flaga może służyć do wymuszania obsługi formatu HEVC w aplikacji, a tym samym do unikania transkodowania podczas uzyskiwania dostępu do multimediów zakodowanych w tym formacie. Ustawienie tego flagi zastępuje wszelkie 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 ta flaga i flaga FORCE_DISABLE_HEVC_SUPPORT są włączone, system operacyjny ignoruje obie flagi.

FORCE_NON_RESIZE_APP

Change ID: 181146395
Default State: Wyłączone w przypadku wszystkich aplikacji.

Wymusza brak możliwości zmiany rozmiaru pakietów, do których jest stosowany.

FORCE_RESIZE_APP

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

Wymusza zmianę rozmiaru pakietów, do których jest stosowany. Zezwalamy na zmianę rozmiaru tylko w trybie pełnoekranowym, ale nie wymuszamy na aplikacji przejścia do trybu wielu okien z możliwością zmiany rozmiaru.

GWP_ASAN

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

Umożliwia wykrywanie w aplikacjach błędów pamięci natywnej 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łączony w przypadku aplikacji kierowanych na Androida 15 (API na poziomie 35) lub nowszego.

Gdy ta zasada jest włączona, metoda isDeviceOwnerApp(String) 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łączony w przypadku aplikacji kierowanych na Androida 15 (API na poziomie 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 przez modyfikowanie ustawień użytkownika, ani przez wyłączanie trybu „Nie przeszkadzać”). Zamiast tego aplikacje muszą przekazywać AutomaticZenRule, które system łączy w zasady globalne z dotychczasowym schematem, w którym obowiązują najbardziej restrykcyjne zasady.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie zmian w Androidzie 15 dotyczącej zmian w zakresie możliwości modyfikowania przez aplikacje globalnego stanu trybu Nie przeszkadzać.

NATIVE_HEAP_ZERO_INIT

Zmień identyfikator: 178038272
Stan domyślny: wyłączony dla wszystkich aplikacji.

Włącz automatyczne zerowanie pamięci sterty natywnej podczas alokacji.

NATIVE_MEMTAG_ASYNC

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

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

NATIVE_MEMTAG_SYNC

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

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

OVERRIDE_ANY_ORIENTATION

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

Po włączeniu tej zmiany można zastosować te ustawienia zastępujące orientację niezależnie od orientacji żądanej przez aktywność:

OVERRIDE_ANY_ORIENTATION_TO_USER

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

Po włączeniu włącza SCREEN_ORIENTATION_USER, które zastępuje dowolną orientację żądaną przez aktywność. Aplikacje o stałej orientacji można zastąpić, aby wyświetlać je na pełnym ekranie 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łączony w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, wyklucza pakiety, do których zastosowano zastąpienie, z traktowania zgodności z aparatem w trybie okien o dowolnym kształcie w przypadku aplikacji o stałej orientacji.

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

Użyj tego flagi, aby wyłączyć obsługę zgodności w przypadku aplikacji, które nie reagują na nią prawidłowo.

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

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

Po włączeniu ta zmiana wymusza, aby pakiety, do których jest stosowana, ignorowały bieżącą wartość android:resizeableActivity, a także docelowy pakiet SDK równy lub niższy niż Android 6.0 (poziom interfejsu API 23) i traktowały aktywność jako niemożliwą do zmiany rozmiaru. W tym przypadku wartość obrotu i przycięcia kamery zależy tylko od potrzebnej kompensacji z uwzględnieniem bieżącego obrotu wyświetlacza.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

Zmień identyfikator: 189229956
Stan domyślny: wyłączony dla wszystkich aplikacji.

Gdy ta zmiana jest włączona, pakiety, do których jest stosowana, zastępują domyślne zachowanie aparatu związane z obracaniem i przycinaniem i zawsze zwracają wartość CaptureRequest.SCALER_ROTATE_AND_CROP_NONE.

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

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

Po włączeniu tej opcji użytkownicy, którzy rozpoczną sesję MediaProjection, będą mogli wybrać, czy chcą nagrać jedną aplikację, czy cały ekran. Zastąpi to użycie MediaProjectionConfig#createConfigForDefaultDisplay.

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

Identyfikator zmiany: 266124927
Stan domyślny: wyłączony dla wszystkich aplikacji.

Włącza SCREEN_ORIENTATION_REVERSE_LANDSCAPE w przypadku aplikacji, do której jest stosowana. 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 testowaniu działania aplikacji pod kątem różnic między urządzeniami, na których orientacja pozioma odpowiada Surface.ROTATION_90, a urządzeniami, na których odpowiada Surface.ROTATION_270.

OVERRIDE_LAYOUT_IN_DISPLAY_CUTOUT_MODE

Identyfikator zmiany: 332679525
Stan domyślny: wyłączony dla wszystkich aplikacji.

Po włączeniu zastępuje układ w trybie wycięcia w ekranie. Będzie to miało zastosowanie tylko wtedy, gdy nie jest wymuszony tryb od krawędzi do krawędzi.

OVERRIDE_MIN_ASPECT_RATIO

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

Ta zmiana jest punktem kontrolnym wszystkich zmian, które wymuszają określony minimalny współczynnik proporcji. Włączenie tej zmiany umożliwia stosowanie tych minimalnych współczynników proporcji:

Gdy ta zmiana zostanie włączona w przypadku pakietu aplikacji, minimalne proporcje podane w pliku manifestu aplikacji zostaną zastąpione największymi włączonymi proporcjami, chyba że wartość w pliku manifestu aplikacji jest wyższa.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

Identyfikator zmiany: 218959984
Stan domyślny: wyłączony dla wszystkich aplikacji.

Gdy ta opcja jest włączona, zastępuje ograniczenie minimalnego 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łączony w przypadku wszystkich aplikacji.

Gdy włączona jest też opcja OVERRIDE_MIN_ASPECT_RATIO, włączenie tej zmiany w przypadku pakietu ustawia minimalny współczynnik proporcji aktywności na dużą wartość zdefiniowaną przez OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

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

Gdy włączona jest też opcja OVERRIDE_MIN_ASPECT_RATIO, włączenie tej zmiany w przypadku pakietu ustawia minimalny współczynnik proporcji aktywności na średnią wartość określoną przez OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_ONLY_FOR_CAMERA

Identyfikator zmiany: 325586858
Stan domyślny: wyłączony dla wszystkich aplikacji.

Gdy ta opcja jest włączona, ogranicza działania, które wymuszają zastosowanie określonego minimalnego współczynnika proporcji, 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łączony w przypadku wszystkich aplikacji.

Gdy włączona jest też opcja OVERRIDE_MIN_ASPECT_RATIO, ta zmiana ogranicza inne zmiany, które wymuszają minimalny współczynnik proporcji aktywności do określonej wartości, np. 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łączony w przypadku wszystkich aplikacji.

Po włączeniu ta zmiana wyklucza pakiety, które są stosowane do z ignorowania ograniczeń orientacji, które mogą ustawić producenci urządzeń.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

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

Włącza SCREEN_ORIENTATION_NOSENSOR w przypadku aplikacji, do której jest stosowana. Jeśli nie jest też włączona opcja OVERRIDE_ANY_ORIENTATION, opcja 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łączony w przypadku wszystkich aplikacji.

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

Po włączeniu umożliwia analizowanie nagłówków Content-Disposition zgodnych z RFC 6266. Umożliwia to w szczególności 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łączać. Jest rejestrowany tylko przez system sprawdzania zgodności.

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

STREAM_INT_DIFFERS_FROM_NEXT_INT

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

Po włączeniu 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 na stronie zmian w zachowaniu Androida 15 poświęconej zmianom 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łączony w przypadku aplikacji kierowanych na Androida 15 (API na poziomie 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 na stronie zmian w zachowaniu Androida 15 poświęconej zmianom w interfejsie OpenJDK API.