Zmiany w systemie sprawdzania zgodności (Android 15)

Rysunek 1. Ekran Zmiany zgodności aplikacji w sekcji Deweloper zawiera listę zmian, które możesz zmienić.

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 opcji programisty i poleceń ADB, testowania i debugowania aplikacji w ramach przygotowań do wprowadzenia jej na rynek i kierowania na Androida 15.

Oto niektóre czynności, które można wykonać za pomocą narzędzi platformy 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łączanie i wyłączanie możliwych do przełączenia zmian w teście automatycznym dla środowiska.
  • Szybsze debugowanie przy użyciu standardowych identyfikatorów zmian. Każda z możliwością przełączania zmian ma unikalny identyfikator i nazwa, które pozwalają szybko debugować główną przyczynę dane wyjściowe 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 ramach zgodności

Lista w tej sekcji opisuje możliwe do zmiany zmiany uwzględnione w platforma zgodności dla zmian związanych z Androidem 15 i zmian z możliwością przełączania które mogą pomóc w ogólnym testowaniu aplikacji.

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

Zmiany w 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 w przypadku wszystkich aplikacji.

Wskazuje, że to urządzenie obsługuje aparat i mikrofon wskaźnikami. 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.

Po włączeniu: isSessionConfigurationSupported sprawdza też zgodność parametrów sesji, jeśli są obsługiwane przez HAL.

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

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

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

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łączony 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 językach o dużej wysokości znaków czcionką, która jest znacznie lepsza do czytania.

Więcej informacji o tej zmianie znajdziesz w sekcji dotyczącej Androida 15 zmiana zachowania strona o Atrybut eleganckiTextHeight ma wartość domyślną.

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 poniższe współczynniki skalowania zastosuj:

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ą ustawienia 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 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 zakłada, że działa na wyświetlaczu o 30% mniejszej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz. Jeśli DOWNSCALED_INVERSE to także włączone. Włączenie tej zmiany w przypadku pakietu wymusza na aplikacji Zakładam, że jest on wyświetlany na wyświetlaczu z 333,33% odchylenia w pionie w poziomie rzeczywistego wyświetlacza.

DOWNSCALE_35

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

Jeśli DOWNSCALED również ma wartość jest włączony, włączenie tej zmiany w pakiecie wymusza na aplikacji Jest on wyświetlany na wyświetlaczu i ma 35% powierzchni w pionie i poziomie. do rozdzielczości rzeczywistego wyświetlacza. 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 w przypadku wszystkich aplikacji.

Jeśli DOWNSCALED również ma wartość jest włączony, włączenie tej zmiany w pakiecie wymusza na aplikacji Jest on wyświetlany na wyświetlaczu i ma 40% obszaru wyświetlania w pionie i w poziomie. do rozdzielczości rzeczywistego wyświetlacza. Jeśli DOWNSCALED_INVERSE to także włączone. Włączenie tej zmiany w przypadku pakietu wymusza na aplikacji Przyjmijmy, że jest on wyświetlany na wyświetlaczu, w którym 250% obszaru ekranu jest ustawiony w pionie, w poziomie rzeczywistego wyświetlacza.

DOWNSCALE_45

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

Jeśli DOWNSCALED również ma wartość jest włączony, włączenie tej zmiany w pakiecie wymusza na aplikacji Jeśli jest wyświetlana na ekranie, 45% obszaru obrazu w pionie i poziomie do rozdzielczości 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 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 DOWNSCALED_INVERSE to także włączone. Włączenie tej zmiany w przypadku pakietu wymusza na aplikacji Przyjmijmy, że jest on wyświetlany na wyświetlaczu, w którym 200% obszaru ekranu jest ustawiony w pionie, w poziomie rzeczywistego wyświetlacza.

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 pionowej i poziomej niż rzeczywisty wyświetlacz.

DOWNSCALE_60

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

Jeśli DOWNSCALED również ma wartość jest włączony, włączenie tej zmiany w pakiecie wymusza na aplikacji Jest on wyświetlany na wyświetlaczu i ma 60% obszaru pionowego i poziomego do rozdzielczości 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 166,67% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty wyświetlacz.

DOWNSCALE_65

Zmień identyfikator: 189969744
Stan domyślny: wyłączone w przypadku wszystkich aplikacji.

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łączenie tej zmiany w przypadku pakietu spowoduje, że 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% mniejszej 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 DOWNSCALED również ma wartość jest włączony, włączenie tej zmiany w pakiecie wymusza na aplikacji Jest on wyświetlany na wyświetlaczu i ma 75% powierzchni w pionie i poziomie. do rozdzielczości rzeczywistego wyświetlacza. Jeśli DOWNSCALED_INVERSE to także włączone. Włączenie tej zmiany w przypadku pakietu wymusza na aplikacji Zakładam, że jest on wyświetlany na wyświetlaczu z 133,33% odchylenia w pionie w poziomie rzeczywistego wyświetlacza.

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 DOWNSCALED również ma wartość jest włączony, włączenie tej zmiany w pakiecie wymusza na aplikacji jeśli wyświetla się na wyświetlaczu 85% obszaru roboczego i poziomego do rozdzielczości rzeczywistego wyświetlacza. Jeśli DOWNSCALED_INVERSE to także włączone. Włączenie tej zmiany w przypadku pakietu wymusza na aplikacji Zakładam, że jest on wyświetlany na wyświetlaczu o 117,65% odchylenia w pionie w poziomie rzeczywistego wyświetlacza.

DOWNSCALE_90

Zmień identyfikator: 182811243
Stan domyślny: wyłączone w przypadku wszystkich aplikacji.

Jeśli DOWNSCALED również ma wartość jest włączony, włączenie tej zmiany w pakiecie wymusza na aplikacji Jest on wyświetlany na wyświetlaczu i ma 90% powierzchni w pionie i poziomie. do rozdzielczości 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 rzeczywistą rozdzielczością wyświetlacza.

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

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

Po włączeniu i używaniu Arrays.asList(...).toArray(), typ komponentu tablica wynikowa jest teraz Object – nie typ elementów tablicy bazowej. Zatem ten kod rzuca ClassCastException:

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

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

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.

Gdy ta opcja jest włączona, istniejące aplikacje nie będą miały problemów ze zgodnością w przypadku użycia funkcji spoza SDK ClientTransaction#getActivityToken() zezwalaj tylko na grupowanie LaunchActivityItem

ENABLE_MATCH_LOCAL_NETWORK

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

Gdy ta opcja jest włączona, aplikacje domyślnie otrzymują wywołania 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 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 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 dotyczącej Androida 15 zmiana zachowania strona o 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 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.

Gdy ta opcja jest włączona, SQLiteQueryBuilder weryfikuje wszystkie Wybrane zapytania (CalendarProvider2) względem złośliwego oprogramowania .

FGS_BOOT_COMPLETED_RESTRICTIONS

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

Gdy ta opcja jest włączona, wyłączana jest usługa działającej na pierwszym planie w tle BOOT_COMPLETED – komunikaty dla wszystkich typów z wyjątkiem:

Więcej informacji o tej zmianie znajdziesz w sekcji dotyczącej Androida 15 zmiana zachowania strona o Ograniczenia dotyczące BOOT_COMPLETED odbiorników uruchamianie usług działających na pierwszym planie.

FGS_INTRODUCE_TIME_LIMITS

Zmień identyfikator: 317799821
Stan domyślny: włączona w przypadku aplikacji kierowanych na Androida 15 (poziom interfejsu 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 sekcjach na stronie Strona 15 zmian dotyczących zachowania limitu czasu dla synchronizacji danych oraz przetwarzanie multimediów typów usług na pierwszym planie.

FGS_SAW_RESTRICTIONS

Zmień identyfikator: 319471980
Stan domyślny: włączona 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 dotyczącej Androida 15 zmiana zachowania strona o Ograniczenia uruchamiania usług na pierwszym planie, gdy aplikacja ma uprawnienie 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 tej flagi zastępuje wszystkie wartości domyślne 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 zarówno ta flaga, jak i Włączono 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. Wyłączono przez domyślnie, co oznacza, że pierwszeństwo mają ustawienia domyślne systemu operacyjnego. Jeśli oba ta flaga i FORCE_DISABLE_HEVC_SUPPORT są włączone, 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 w przypadku wszystkich aplikacji.

Wymusza możliwość zmiany rozmiaru pakietów, do których jest stosowany. My tylko zezwalaj na zmianę rozmiaru w trybie pełnego ekranu, ale nie wymuszaj w trybie 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.

Aby dowiedzieć się więcej o korzystaniu z GWP-ASan, zobacz Przewodnik po GWP-ASan.

IS_DEVICE_OWNER_USER_AWARE

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

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.

Po włączeniu tej funkcji aplikacje nie mogą już zmieniać globalnego stanu ani zasad trybu Nie przeszkadzać na urządzeniu (przez modyfikowanie ustawień użytkownika lub wyłączenie trybu Nie przeszkadzać). Zamiast tego aplikacje muszą 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 sprawdzanie tagów pamięci (ASYNC). Ta flaga ma wpływ tylko na sprzęt obsługujący tagowanie pamięci ARM Rozszerzenie (MTE).

NATIVE_MEMTAG_SYNC

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

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

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 ustawionej orientacji mogą być wyświetlane na pełnym ekranie na dużych urządzeniach z uprawnieniem ignoreOrientationRequest.

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

Zmień identyfikator: 314961188
Stan domyślny: wyłączone w przypadku wszystkich aplikacji.

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

W trybie 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 opcja jest włączona, ta zmiana wymusza pakiety, do których jest stosowana zignoruj bieżącą wartość android:resizeableActivity oraz docelowy pakiet SDK w wersji nie starszej niż 6.0 (poziom interfejsu API) 23) i traktować aktywność jako niemożliwą do zmiany rozmiaru. 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, aby pakiety, do których jest stosowana, zastępowały domyślne zachowanie obracania i przycinania aparatu i zawsze zwracały wartość CaptureRequest.SCALER_ROTATE_AND_CROP_NONE.

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

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

Gdy ta opcja jest włączona, podczas inicjowania sesji MediaProjection użytkownicy mają możliwość wyboru przechwycenia pojedynczej aplikacji lub całego ekranu. Ta funkcja zastępuje używanie 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 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 w przypadku wszystkich aplikacji.

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

OVERRIDE_MIN_ASPECT_RATIO

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

Ta zmiana to strażnik wszystkich zmian, które wymuszają użycie danego minimalnego współczynnika proporcji. Włączenie tej zmiany pozwala zastosować te minimalne proporcje:

Po włączeniu tej zmiany dla pakietu aplikacji minimalny aspekt współczynnik podany w pliku manifestu aplikacji zostanie zastąpiony największego włączonego format obrazu, chyba że wartość w pliku manifestu aplikacji jest wyższa.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

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

Po włączeniu zastępuje minimalne ograniczenie formatu obrazu w do pełnego ekranu w orientacji pionowej, aby wykorzystać całą dostępną przestrzeń na ekranie.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

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

Kiedy OVERRIDE_MIN_ASPECT_RATIO jest również włączony, więc włączenie tej zmiany dla pakietu ustawia z minimalnym współczynnikiem proporcji do dużej wartości zdefiniowanej przez OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

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

Gdy włączona jest również opcja OVERRIDE_MIN_ASPECT_RATIO, w przypadku pakietu zmiana ta 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 ta opcja jest włączona, ogranicza opcje, które wymuszają stosowanie danego minimalnego współczynnika proporcji. Dzięki temu są one stosowane tylko wtedy, gdy aplikacja jest połączona z kamerą.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

Identyfikator zmiany: 203647190
Stan domyślny: włączone dla wszystkich aplikacji.

Gdy opcja OVERRIDE_MIN_ASPECT_RATIO jest również włączona, ogranicza to wszystkie inne zmiany, które wymuszają określony minimalny współczynnik kształtu 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 w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, ta zmiana nie obejmuje pakietów, które są stosowane do od ograniczeń ignorowania orientacji, co można ustawić.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

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

Włączenia SCREEN_ORIENTATION_NOSENSOR w przypadku aplikacji, w której jest on zastosowany. O ile OVERRIDE_ANY_ORIENTATION jest również włączona, wartość SCREEN_ORIENTATION_NOSENSOR jest używana tylko wtedy, gdy aktywność nie określa żadnego innego stałego orientacji ekranu.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

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

Włączenia SCREEN_ORIENTATION_PORTRAIT w przypadku aplikacji, w której jest on zastosowany. 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

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

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

RATE_LIMIT_TOASTS

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

Włącza ograniczenie liczby żądań Toast.show() aby zapobiec nadmiernemu obciążeniu użytkownika zbyt dużą liczbą komunikatów wyświetlanych w reklamie ograniczone czasowo. 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

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

Gdy ta opcja jest włączona, metody Random.ints() zwracają teraz błąd inna sekwencja liczb niż Random.nextInt() co daje różne możliwości. 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 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łą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 dotyczącej Androida 15 zmiana zachowania strona o Zmiany w interfejsie OpenJDK API.