Zmiany platformy zgodności (Android 15)

Rysunek 1. Ekran Zmiany zgodności aplikacji w opcjach programisty zawiera listę zmian, które możesz przełączyć.

Na tej stronie opisujemy zmiany, które można przełączać w ramach platformy zgodności w Androidzie 15. Tej listy możesz używać w połączeniu z opcjami programisty i poleceniami ADB, aby testować i debugować aplikację, gdy przygotowujesz się do obsługi Androida 15 i jej kierowania na nią.

Oto kilka przykładów tego, co możesz zrobić za pomocą narzędzi platformy zgodności:

  • Przetestuj docelowe zmiany bez zmiany wartości targetSdkVersion. Możesz użyć przełączników, aby wymusić włączenie określonych kierowanych zmian działania w celu oceny ich wpływu na istniejącą aplikację.
  • Skup się na testowaniu tylko określonych zmian. Zamiast zajmować się wszystkimi zmianami w kierowaniu naraz, przełączniki pozwalają wyłączyć wszystkie kierowane zmiany z wyjątkiem tych, które chcesz przetestować.
  • Przełączami można zarządzać za pomocą narzędzia adb. Za pomocą poleceń adb możesz włączać i wyłączać zmiany z możliwością przełączania w automatycznym środowisku testowym.
  • Szybsze debugowanie przy użyciu standardowych identyfikatorów zmian. Każda zmiana, którą można przełączyć, ma unikalny identyfikator i nazwę, dzięki którym można szybko debugować główną przyczynę w danych wyjściowych logu.

Pełne informacje o korzystaniu z narzędzi używanych w każdym z tych przypadków znajdziesz w artykule na temat narzędzi platformy zgodności.

Zmiany w działaniu uwzględnione w ramach struktury zgodności

Na liście w tej sekcji opisujemy zmiany, które można włączać w ramach platformy zgodności z Androidem 15, a także zmiany z możliwością włączania i wyłączania, które mogą pomóc podczas ogólnego testowania aplikacji.

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

Zmiany w platformie zgodności w Androidzie 15, które można przełączać

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

Wskazuje, że urządzenie obsługuje wskaźniki aparatu i mikrofonu. Wartość to false, ponieważ w przypadku braku identyfikatora zmiany metoda CompatChanges#isChangeEnabled zwraca wartość true.

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

Identyfikator zmiany: 320741775
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 15 lub nowszego.

Gdy ta opcja jest włączona, isSessionConfigurationSupported sprawdza też zgodność parametrów sesji, gdy jest obsługiwana 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 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 dotyczącej zmian działania Androida 15 w artykule na temat uruchamiania bezpiecznej aktywności w tle.

DEPRECATE_UI_FONT

Identyfikator zmiany: 279646685
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 15 lub nowszego.

Po włączeniu atrybut elegantTextHeight TextView domyślnie przyjmuje wartość true, gdy aplikacja działa na urządzeniu z Androidem 15 lub nowszym. Dzięki temu kompaktowa czcionka jest domyślnie używana przez skrypty z dużymi wskaźnikami pionowymi inną, która jest znacznie bardziej czytelna.

Więcej informacji o tej zmianie znajdziesz w sekcji na temat zmian zachowania Androida 15 w sekcji na temat wartości domyślnej atrybutu eleganckiTextHeight na „true”.

DOWNSCALED

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

Ta zmiana decyduje o wszystkich zmianach skalowania bufora w podziale na aplikacje. Włączenie tej zmiany umożliwia stosowanie tych współczynników skalowania:

Gdy ta zmiana jest włączona w pakiecie aplikacji, rozmiar aplikacji jest wymuszany na najwyższy, włączony współczynnik skalowania. Na przykład wartość 80% jest używana, gdy włączone jest zarówno 80%, jak i 70% (DOWNSCALE_80 i DOWNSCALE_70). Gdy włączona jest zarówno ta zmiana, jak i DOWNSCALED_INVERSE, właściwość DOWNSCALED_INVERSE ma pierwszeństwo, a współczynnik skalowania jest stosowany odwrotnie.

DOWNSCALED_INVERSE

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

Ta zmiana decyduje o wszystkich odwróconych zmianach skalowania bufora aplikacji. Włączenie tej zmiany umożliwia odwrotne stosowanie tych współczynników skalowania (tzn. rozdzielczość jest zwiększana):

Gdy ta zmiana jest włączona w pakiecie aplikacji, rozmiar aplikacji jest wymuszany na najniższy włączony współczynnik skalowania. Na przykład jeśli włączone jest zarówno 80%, jak i 70% (DOWNSCALE_80 i DOWNSCALE_70), współczynnik skalowania 80% będzie równy 125%, czyli przy odwrotnym zastosowaniu współczynnika skalowania 70% będzie to wartość mniejsza niż 142,86%. Gdy włączona jest zarówno ta zmiana, jak i DOWNSCALED, DOWNSCALED_INVERSE ma pierwszeństwo, a współczynnik skalowania jest stosowany odwrotnie.

DOWNSCALE_30

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z 30% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa ona na wyświetlaczu z 333,33% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_35

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z 35% rozdzielczością pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z 285,71% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_40

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z rozdzielczością pionową i poziomą rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa ona na wyświetlaczu z 250% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_45

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na ekranie z rozdzielczością pionową i poziomą rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa ona na wyświetlaczu z 222,22% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_50

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z rozdzielczością pionową i poziomą rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa ona na wyświetlaczu z 200% rozdzielczością pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_55

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa ona na wyświetlaczu z rozdzielczością pionową i poziomą rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z rozdzielczością pionową i poziomą rzeczywistego wyświetlacza.

DOWNSCALE_60

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na ekranie z rozdzielczością pionową i poziomą rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa ona na wyświetlaczu z 166,67% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_65

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z 65% rozdzielczością pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie zmusza aplikację do założenia, że działa na wyświetlaczu, przy czym 153,85% jego rozdzielczości pionowej i poziomej wynosi 153,85%.

DOWNSCALE_70

Identyfikator zmiany: 176926829
Stan domyślny: wyłączona dla wszystkich aplikacji.

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa ona na wyświetlaczu z 70% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa ona na wyświetlaczu z rozdzielczością pionową i poziomą rzeczywistego wyświetlacza.

DOWNSCALE_75

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa ona na wyświetlaczu z 75% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z rozdzielczością pionową i poziomą rzeczywistego wyświetlacza.

DOWNSCALE_80

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z 80% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z rozdzielczością pionową i poziomą rzeczywistego wyświetlacza.

DOWNSCALE_85

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z 85% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z 117,65% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

DOWNSCALE_90

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

Jeśli włączona jest też usługa DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa na wyświetlaczu z 90% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest też usługa DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji przyjmowanie, że działa ona na wyświetlaczu z 111,11% rozdzielczości pionowej i poziomej 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 lub nowszego.

Gdy ta opcja jest włączona, typ komponentu Arrays.asList(...).toArray() Object, a nie typ elementów tablicy. Dlatego ten kod spowoduje zgłoszenie ClassCastException:

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

Możesz temu zaradzić, stosując Collection.toArray(Object[]):

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

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

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

Gdy ta opcja jest włączona, aby zapobiec problemom ze zgodnością istniejących aplikacji z zastosowaniem komponentu ClientTransaction#getActivityToken() spoza pakietu SDK, zezwalaj tylko na grupowanie LaunchActivityItem.

ENABLE_MATCH_LOCAL_NETWORK

Identyfikator zmiany: 319212206
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 15 lub nowszego.

Gdy ta opcja jest włączona, aplikacje domyślnie odbierają wywołania zwrotne sieci z sieci lokalnych. Aplikacje kierowane na Androida 14 (poziom interfejsu API 34) lub starszego nadal muszą dodać NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK do NetworkCapabilities zasobu NetworkRequest, 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 lub nowszego.

Po włączeniu sprawdzanie poprawności indeksu argumentów, flag, szerokości i precyzji jest teraz bardziej rygorystyczne podczas korzystania z interfejsów API String.format() i Formatter.format().

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie poświęconej zmianom działania Androida 15 w sekcji poświęconej zmianom w OpenJDK 17.

ENFORCE_EDGE_TO_EDGE

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

Gdy ta opcja jest włączona, na urządzeniach z Androidem 15 lub nowszym aplikacje będą domyślnie wyświetlane od krawędzi do krawędzi.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie o zmianach w działaniu Androida 15 dotyczącej wymuszania 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 sprawdza wszystkie wybrane zapytania CalendarProvider2 pod kątem szkodliwych argumentów.

FGS_BOOT_COMPLETED_RESTRICTIONS

Identyfikator zmiany: 296558535
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 15 lub nowszego.

Gdy ta opcja jest włączona, wyłącza działanie tła usługi na pierwszym planie, rozpoczynając od transmisji BOOT_COMPLETED w przypadku wszystkich typów oprócz:

Więcej informacji o tej zmianie znajdziesz na stronie dotyczącej zmian w działaniu Androida 15 w sekcji dotyczącej ograniczeń dotyczących odbiorników transmisji BOOT_COMPLETED uruchamiających usługi na pierwszym planie.

FGS_SAW_RESTRICTIONS

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

Gdy ta opcja jest włączona, wyłącza działanie tła usługi na pierwszym planie w oknie alertu systemowego w przypadku wszystkich typów, chyba że zdarzenie ma już okno nakładki systemowej.

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

FORCE_DISABLE_HEVC_SUPPORT

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

Wymuszaj wyłączenie przez aplikację obsługi multimediów HEVC. Aplikacje powinny zadeklarować obsługiwane możliwości multimediów w pliku manifestu, ale można użyć tej flagi, aby wymusić brak obsługi HEVC, co wymaga transkodowania na potrzeby dostępu do multimediów zakodowanego w HEVC. Ustawienie tej flagi zastępuje wszystkie wartości domyślne na poziomie systemu operacyjnego dla aplikacji. Domyślnie jest wyłączona, co oznacza, że pierwszeństwo mają domyślne ustawienia 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 dla wszystkich aplikacji.

Wymuszaj włączenie w aplikacji obsługi funkcji multimediów HEVC, aby aplikacje mogły zadeklarować obsługiwane możliwości multimediów w pliku manifestu. Tej flagi można użyć do wymuszenia obsługi HEVC, przez co unikasz transkodowania przy dostępie do multimediów zakodowanego w HEVC. Ustawienie tej flagi powoduje zastąpienie wszystkich wartości domyślnych na poziomie systemu operacyjnego dla aplikacji. Domyślnie jest ona wyłączona, co oznacza, że pierwszeństwo mają domyślne ustawienia 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 dla wszystkich aplikacji.

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

FORCE_RESIZE_APP

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

Wymusza możliwość zmiany rozmiaru pakietów, do których jest stosowany. Zezwalamy na zmianę rozmiaru tylko w trybie pełnego ekranu. Nie wymuszamy w aplikacji trybu wielu okien z możliwością zmiany rozmiaru.

GWP_ASAN

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

Umożliwia wykrywanie błędów w pamięci natywnej w aplikacjach.

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 lub nowszego.

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

Gdy to ustawienie jest włączone, aplikacje nie mogą już zmieniać globalnego stanu ani zasad trybu Nie przeszkadzać na urządzeniu (ani przez modyfikowanie ustawień użytkownika, ani przez wyłączenie trybu Nie przeszkadzać). Zamiast tego aplikacje muszą przekazywać element AutomaticZenRule, który system łączy w zasadę globalną z dotychczasowym schematem uzyskiwania korzyści i najbardziej restrykcyjnych zasad.

Aby dowiedzieć się więcej o tej zmianie, zapoznaj się z sekcją na stronie dotyczącej zmian w działaniu Androida 15 na temat zmian dotyczących tego, kiedy aplikacje mogą modyfikować globalny stan trybu Nie przeszkadzać.

NATIVE_HEAP_ZERO_INIT

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

Włącz automatyczne zerowe inicjowanie przydziałów pamięci natywnej sterty.

NATIVE_MEMTAG_ASYNC

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

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 ARM Memory Tagging Extension (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 rozszerzenie ARM Memory Tagging Extension (MTE). Jeśli włączona jest zarówno opcja NATIVE_MEMTAG_ASYNC, jak i ta opcja, ta opcja ma pierwszeństwo, a funkcja MTE będzie włączona w trybie SYNC.

OVERRIDE_ANY_ORIENTATION

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

Gdy ta zmiana jest włączona, pozwala na stosowanie tych zastąpień orientacji niezależnie od orientacji żądanej przez aktywność:

OVERRIDE_ANY_ORIENTATION_TO_USER

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

Po włączeniu włącza zasób SCREEN_ORIENTATION_USER, który zastępuje dowolną orientację wymaganą przez działanie. Na urządzeniach z dużym ekranem aplikacje o stałej orientacji można zastępować w trybie pełnoekranowym oraz wtedy, gdy włączona jest zasada ignoreOrientationRequest.

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

Identyfikator zmiany: 314961188
Stan domyślny: wyłączona dla wszystkich aplikacji.

Po włączeniu wyklucza pakiety, do których zastosowano zastąpienie, z uruchamiania zgodności z kamerą w trybie dowolnego okna w przypadku aplikacji o stałej orientacji.

W trybie swobodnego wyświetlania okna obsługa zgodności emuluje działanie na urządzeniu w orientacji pionowej. W tym celu zaznacza okno aplikacji na czarnych pasach i zmienia parametry aparatu zgodnie z wymaganiami typowymi dla aplikacji w przypadku urządzeń portretowych: obrót czujnika przedniego i tylnego aparatu o 90 i 270 stopni oraz ustawienie obrotu wyświetlacza na 0.

Użyj tej flagi, aby wyłączyć funkcję zgodności w przypadku aplikacji, które źle reagują na tę funkcję.

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

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

Gdy ta zmiana jest włączona, stosowane przez nią pakiety ignorują bieżącą wartość android:resizeableActivity oraz docelowy pakiet SDK równy M lub niższy i traktują 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

Identyfikator zmiany: 189229956
Stan domyślny: wyłączona dla wszystkich aplikacji.

Gdy ta zmiana jest włączona, stosowane przez nią pakiety zastępują domyślny sposób obracania i przycinania kamery oraz zawsze zwracają wartość CaptureRequest.SCALER_ROTATE_AND_CROP_NONE.

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

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

Gdy ta opcja jest włączona, podczas inicjowania sesji MediaProjection użytkownicy mogą wybrać przechwycenie pojedynczej aplikacji lub całego ekranu, zastępując użycie MediaProjectionConfig#createConfigForDefaultDisplay.

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

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

Włącza uprawnienie SCREEN_ORIENTATION_REVERSE_LANDSCAPE w aplikacji, do której jest stosowany. Jeśli nie włączono też opcji OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_REVERSE_LANDSCAPE jest używany tylko wtedy, gdy aktywność ma orientację poziomą. Włączenie tej zmiany pomoże Ci przetestować działanie aplikacji pod kątem różnic między urządzeniami, na których orientacja pozioma odpowiada parametrowi Surface.ROTATION_90, a także urządzeniami, na których odpowiada parametrowi Surface.ROTATION_270.

OVERRIDE_MIN_ASPECT_RATIO

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

Ta zmiana decyduje o wszystkich zmianach, 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 jest włączona w pakiecie aplikacji, minimalny współczynnik proporcji podany w pliku manifestu zostanie zastąpiony największym włączonym współczynnikiem proporcji, 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 dla wszystkich aplikacji.

Gdy ta opcja jest włączona, zastępuje ograniczenie minimalnego formatu obrazu na pełnym ekranie 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 dla wszystkich aplikacji.

Gdy włączona jest też właściwość OVERRIDE_MIN_ASPECT_RATIO, włączenie tej zmiany w pakiecie spowoduje ustawienie minimalnego współczynnika 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łączone dla wszystkich aplikacji.

Gdy włączona jest też właściwość OVERRIDE_MIN_ASPECT_RATIO, włączenie tej zmiany w pakiecie powoduje ustawienie minimalnego współczynnika proporcji aktywności na średnią wartość określoną w polu OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

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

Jeśli włączony jest też mechanizm OVERRIDE_MIN_ASPECT_RATIO, ta zmiana ogranicza wszelkie inne zmiany, które wymuszają do określonej wartości minimalny współczynnik proporcji aktywności – na przykład 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 dla wszystkich aplikacji.

Gdy ta opcja jest włączona, ta zmiana nie obejmuje pakietów, do których są stosowane, z ignorowania ograniczeń orientacji, które mogą ustawić producenci urządzeń.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

Identyfikator zmiany: 265451093
Stan domyślny: wyłączona dla wszystkich aplikacji.

Włącza uprawnienie SCREEN_ORIENTATION_NOSENSOR w aplikacji, do której jest stosowany. Jeśli nie włączono też opcji OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_NOSENSOR jest używany tylko wtedy, gdy aktywność nie ma określonej innej stałej orientacji.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

Identyfikator zmiany: 265452344
Stan domyślny: wyłączona dla wszystkich aplikacji.

Włącza uprawnienie SCREEN_ORIENTATION_PORTRAIT w aplikacji, do której jest stosowany. Jeśli nie włączono też opcji OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_PORTRAIT jest używany tylko wtedy, gdy aktywność nie ma określonej 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 lub nowszego.

Gdy ta opcja jest włączona, umożliwia analizę 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 rejestrowane tylko przez platformę zgodności.

Umożliwia ograniczenie liczby wywołań funkcji Toast.show(), aby nie obciążać użytkownika zbyt dużą liczbą tostów w krótkim czasie. Próba wyświetlenia większej liczby tostów niż jest dozwolona w danym przedziale czasu spowoduje odrzucenie tego powiadomienia.

STREAM_INT_DIFFERS_FROM_NEXT_INT

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

Gdy ta opcja jest włączona, metody Random.ints() zwracają teraz inną sekwencję liczb niż metody Random.nextInt(). Wynika to ze zmian na stronie https://bugs.openjdk.org/Przeglądaj/JDK-8301574.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie poświęconej zmianom działania Androida 15 w sekcji poświęconej zmianom w OpenJDK 17.

USE_EXPERIMENTAL_COMPONENT_ALIAS

Identyfikator zmiany: 196254758
Stan domyślny: wyłączone dla 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 lub nowszego.

Po włączeniu tej opcji kody języków hebrajskiego, jidysz i indonezyjskiego nie są już konwertowane na przestarzałe formy (hebrajski: iw, jidysz: ji i indonezyjski: in).

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie poświęconej zmianom działania Androida 15 w sekcji poświęconej zmianom w OpenJDK 17.