Zmiany dotyczące platformy zgodności (Android 14)

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

Na tej stronie opisano zmiany, które można włączyć lub wyłączyć w ramach ramy kompatybilności w Androidzie 14 (poziom API 34). Korzystaj z tej listy w połączeniu z opcjami dla deweloperów i poleceniami ADB, aby testować i debugować aplikację podczas przygotowywania jej do obsługi i ustawienia jako docelowej wersji Androida 14.

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

  • Testuj zmiany docelowe bez faktycznej zmiany wartości targetSdkVersion aplikacji. Za pomocą przełączników możesz wymusić włączenie określonych zmian w docelowanym zachowaniu, aby ocenić ich wpływ na dotychczasową aplikację.
  • Skup się na testowaniu tylko konkretnych zmian. Zamiast modyfikować wszystkie zmiany docelowe jednocześnie, możesz wyłączyć wszystkie zmiany docelowe oprócz tych, które chcesz przetestować.
  • Zarządzaj przełącznikami za pomocą adb Za pomocą poleceń adb możesz włączać i wyłączać zmiany w automatycznym środowisku testowym.
  • Szybsze debugowanie dzięki standardowym identyfikatorom zmian. Każda zmiana, którą można włączyć lub wyłączyć, ma unikalny identyfikator i nazwę, których możesz używać do szybkiego debugowania przyczyny błędu w wyprowadzaniu z dziennika.

Szczegółowe informacje o używaniu narzędzi w przypadku każdego z tych zastosowań znajdziesz w artykule Narzędzia dotyczące ram kompatybilności.

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

Lista w tej sekcji opisuje zmiany, które można włączyć lub wyłączyć, a które są uwzględnione w ramach kompatybilności w Androidzie 14.

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

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

ACCESS_SHARED_IDENTITY

Identyfikator zmiany: 259743961
Stan domyślny: Włączone dla wszystkich aplikacji.

Przyznaje dostęp do tożsamości aplikacji uruchamiającej aplikację, jeśli aplikacja wyraziła zgodę na udostępnianie swojej tożsamości przez uruchomienie tego działania z użyciem instancji ActivityOptions, w przypadku której komponent ActivityOptions.setShareIdentityEnabled(boolean) został wywołany z wartością true, lub jeśli identyfikator UID uruchomionej aktywności jest taki sam jak identyfikator UID uruchomionej aplikacji. Gdy ta zmiana jest włączona i spełniony jest jeden z tych wymagań, aktywność może uzyskać dostęp do identyfikatora UID i nazwy pakietu uruchamiającej aplikację za pomocą odpowiednio Activity.getLaunchedFromUid() i Activity.getLaunchedFromPackage().

ANR_PRE_UDC_APIS_ON_SLOW_RESPONSES

Identyfikator zmiany: 258236856
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 14 (poziom API 34) lub nowszego.

Gdy jest włączona, powoduje wyświetlenie komunikatu „Aplikacja nie odpowiada” (ANR), gdy aplikacje wolno reagują na interfejsy API i funkcje Androida 13 (poziom interfejsu API 33) lub niższego.

AUTHORITY_ACCESS_CHECK_CHANGE_ID

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

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) i nowszego, umożliwia sprawdzanie dostępu urzędowego dla wywołującego UID wszystkich interfejsów API związanych z synchronizacją.

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

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

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_SENDER

Identyfikator zmiany: 244637991
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 14 (API na poziomie 34) lub nowszego.

Gdy aplikacja wysyła PendingIntent za pomocą PendingIntent#send() lub podobnych metod, musi teraz wyrazić zgodę, jeśli chce przyznać sobie uprawnienia do uruchamiania działań w tle w celu uruchomienia oczekującej intencji.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie poświęconej zmianom w zachowaniu Androida 14 dotyczącą dodatkowych ograniczeń uruchamiania działań w tle.

DETACH_THROWS_ISE_ONLY

Identyfikator zmiany: 236825255
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 14 (API na poziomie 34) lub nowszego.

Flag to gate correct exception thrown by #detachImage.

#detachImage jest dokumentowany jako wywołanie metody IllegalStateExceptionw przypadku błędu; natywny pomocnik do tej metody wywołałRuntimeExceptionjeśli powierzchnia została porzucona podczas odłączaniaImage.

To wcześniej nieudokumentowane zachowanie wyjątku jest nadal obsługiwane w Androidzie 13 (poziom API 33).

Po Androidzie 13 (poziom API 33) natywny helper tylko zgłasza błąd IllegalStateExceptions zgodnie z dokumentacją.

Po włączeniu tej zmiany #detachImage zgłasza IllegalStateException tylko wtedy, gdy podczas odłączania obrazu wystąpią błędy. Zachowanie pozostaje niezmienione w przypadku aplikacji kierowanych na Androida 13 (poziom API 33) lub niższego.

DOWNSCALED

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

Ta zmiana umożliwia obserwowanie wszystkich zmian skalowania buforów w buforze aplikacji. Włączenie tej zmiany umożliwia zastosowanie tych czynników skalowania:

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ą wartości 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 wartość 80% jest używana, jeśli włączone są zarówno 80%, jak i 70% (DOWNSCALE_80DOWNSCALE_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łączysz też opcję DOWNSCALED, aplikacja będzie zakładać, że działa na wyświetlaczu o 30% mniejszej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu włączona zmiana spowoduje, że aplikacja będzie działać na wyświetlaczu o 333,33% mniejszej rozdzielczości w orientacji pionowej i poziomej w porównaniu z rzeczywistą rozdzielczością wyświetlacza.

DOWNSCALE_35

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

Jeśli włączysz też opcję DOWNSCALED, aplikacja będzie działać z założenia, że wyświetla się na ekranie o 35% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty. 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łączony w przypadku wszystkich aplikacji.

Jeśli włączona jest też opcja DOWNSCALED, w przypadku pakietu z tą zmianą aplikacja będzie zakładać, że działa na wyświetlaczu o 40% mniejszej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie działać na wyświetlaczu o 250% większej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz.

DOWNSCALE_45

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

Jeśli włączysz też opcję DOWNSCALED, aplikacja będzie działać z założenia, że wyświetla się na ekranie o 45% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu włączona zmiana spowoduje, że aplikacja będzie działać na wyświetlaczu o rozdzielczości pionowej i poziomej równej 222,22% rzeczywistej rozdzielczości pionowej i poziomej.

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 rozdzielczości poziomej i pionowej wynoszącej 50% 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 200% większej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz.

DOWNSCALE_55

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

Jeśli włączysz też opcję DOWNSCALED, aplikacja będzie zakładać, że działa na wyświetlaczu o rozdzielczości 55% w orientacji pionowej i poziomej w porównaniu z rzeczywistą rozdzielczością. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu włączona zmiana spowoduje, że aplikacja będzie działać na wyświetlaczu o 181,82% mniejszej rozdzielczości w orientacji poziomej i pionowej niż rzeczywisty wyświetlacz.

DOWNSCALE_60

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

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na wyświetlaczu o rozdzielczości wynoszącej 60% 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 166,67% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty wyświetlacz.

DOWNSCALE_65

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

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na wyświetlaczu o rozdzielczości wynoszącej 65% 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 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 przypadku pakietu z taką zmianą aplikacja będzie zakładać, że działa na wyświetlaczu o rozdzielczości 70% w orientacji pionowej i poziomej w porównaniu z rzeczywistą rozdzielczością. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na wyświetlaczu o rozdzielczości 142,86% w pionie i poziomie 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 przypadku pakietu spowoduje, że aplikacja będzie zakładać, że działa na wyświetlaczu o rozdzielczości 75% w orientacji pionowej i poziomej w porównaniu z rzeczywistą rozdzielczością. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, w przypadku pakietu włączona zmiana spowoduje, że aplikacja będzie działać na wyświetlaczu o rozdzielczości pionowej i poziomej równej 133,33% rzeczywistej rozdzielczości.

DOWNSCALE_80

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

Jeśli włączysz też opcję DOWNSCALED, aplikacja będzie zakładać, że działa na wyświetlaczu o 80% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest też opcja DOWNSCALED_INVERSE, włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie działać na wyświetlaczu o 125% większej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz.

DOWNSCALE_85

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

Jeśli włączona jest również opcja DOWNSCALED, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie, który ma 85% rozdzielczości pionowego i poziomego ekranu rzeczywistego. Jeśli opcja DOWNSCALED_INVERSE jest również włączona, włączenie tej zmiany w pakiecie spowoduje, że aplikacja będzie działać na wyświetlaczu o rozdzielczości 117,65% w orientacji pionowej i poziomej w porównaniu z prawdziwym wyświetlaczem.

DOWNSCALE_90

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

Jeśli włączysz też opcję DOWNSCALED, aplikacja będzie zakładać, że działa na wyświetlaczu o 90% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza. Jeśli włączona jest również właściwość DOWNSCALED_INVERSE, włączenie tej zmiany w pakiecie wymusza na aplikacji zakładanie, że działa na ekranie o rozdzielczości wynoszącej 111,11% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.

ENABLE_PLATFORM_MDNS_BACKEND

Identyfikator zmiany: 270306772
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 14 (API na poziomie 34) lub nowszego.

Aplikacje kierowane na Androida 14 lub nowszego używają jako backendu zintegrowanej z platformą implementacji mDNS, podczas gdy aplikacje kierowane na starsze wersje nadal korzystają ze starszego backendu usługi wykrywania sieci (NSD) (z użyciem starszego natywnego demona jako backendu).NsdManager

ENABLE_SELF_CERTIFIED_CAPABILITIES_DECLARATION

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

Sprawdzanie certyfikowanych przez siebie funkcji jest włączone w przypadku aplikacji kierowanych na Androida 14 lub nowszego. Więcej informacji znajdziesz w sekcji NetworkCapabilities.

ENFORCE_PACKAGE_VISIBILITY_FILTERING

Identyfikator zmiany: 154726397
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 14 (API na poziomie 34) lub nowszego.

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) i nowszego, aplikacje muszą zadeklarować w pliku manifestu potrzeby w zakresie widoczności pakietów umożliwiające dostęp do interfejsów API AccountManager.

ENFORCE_READ_ONLY_JAVA_DCL

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

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub nowszego wszystkie wczytywane dynamicznie pliki muszą być oznaczone jako tylko do odczytu. Zapobiega to nieoczekiwanemu zastąpieniu przez złośliwe podmioty plików wczytywanych dynamicznie.

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom zachowania w Androidzie 14 na stronie Bezpieczniejsze wczytywanie kodu dynamicznego.

ENFORCE_STRICT_QUERY_BUILDER

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

Jeśli ta opcja jest włączona, SQLiteQueryBuilder sprawdza wszystkie wybory zapytań CalendarProvider2 pod kątem złośliwych argumentów.

EXACT_LISTENER_ALARMS_DROPPED_ON_CACHED

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

Alarmy oczekujące na wywołanie zwrotne AlarmManager.OnAlarmListener są przerywane, gdy aplikacja wywołująca przechodzi w stan buforowania.

Więcej informacji o zmianach w alarmach precyzyjnych w Androidzie 14 znajdziesz w artykule Planowanie alarmów precyzyjnych jest domyślnie zablokowane.

FGS_TYPE_CHECK_FOR_INSTANT_APPS

Identyfikator zmiany: 261055255
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 14 (poziom API 34) lub nowszego.

Gdy ta funkcja jest włączona, aplikacje błyskawiczne muszą określać odpowiednie typy usług na pierwszym planie dla wszystkich usług zadeklarowanych w pliku manifestu aplikacji.

Więcej informacji o tej zmianie znajdziesz na stronie opisującej zmiany dotyczące typów usług na pierwszym planie.

FGS_TYPE_NONE_DEPRECATION_CHANGE_ID

Identyfikator zmiany: 255042465
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 14 (poziom API 34) lub nowszego.

Gdy ta funkcja jest włączona, aplikacje kierowane na Androida 14 (poziom interfejsu API 34) lub nowszego, które uruchamiają usługę na pierwszym planie za pomocą przestarzałego typu FOREGROUND_SERVICE_TYPE_NONE, powodują wyświetlenie ostrzeżenia w logu.

Więcej informacji o tej zmianie znajdziesz na stronie opisującej zmiany dotyczące typów usług na pierwszym planie.

FGS_TYPE_NONE_DISABLED_CHANGE_ID

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

Gdy ta opcja jest włączona, aplikacje kierowane na Androida 14 (poziom interfejsu API 34) lub nowszego, które uruchamiają usługę na pierwszym planie za pomocą przestarzałego typu FOREGROUND_SERVICE_TYPE_NONE, powodują wyjątek.

Więcej informacji o tej zmianie znajdziesz na stronie opisującej zmiany w typach usług na pierwszym planie.

FGS_TYPE_PERMISSION_CHANGE_ID

Identyfikator zmiany: 254662522
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 14 (poziom API 34) lub nowszego.

Gdy ta funkcja jest włączona, aplikacje kierowane na Androida 14 (poziom interfejsu API 34) lub nowszego, które uruchamiają usługę na pierwszym planie bez wymaganych uprawnień powiązanych z tym typem usługi, będą wyświetlać komunikatSecurityException.

Więcej informacji o tej zmianie znajdziesz na stronie opisującej zmiany w typach usług na pierwszym planie.

FORCE_DISABLE_HEVC_SUPPORT

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

Wymusić wyłączenie obsługi formatu HEVC przez aplikację. Aplikacje powinny zadeklarować w pliku manifestu obsługiwane możliwości związane z multimediami, ale za pomocą tej flagi można wymusić brak obsługi HEVC, dlatego wymuszanie transkodowania podczas uzyskiwania dostępu do multimediów zakodowanych w HEVC. Ustawienie tego parametru zastępuje wszelkie domyślne ustawienia na poziomie systemu operacyjnego dla aplikacji. Domyślnie jest ona wyłączona, co oznacza, że mają pierwszeństwo ustawienia domyślne systemu operacyjnego. Jeśli włączone są zarówno ta flaga, jak i FORCE_ENABLE_HEVC_SUPPORT, system operacyjny ignoruje obie flagi.

FORCE_ENABLE_HEVC_SUPPORT

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

Wymuś włączenie obsługi funkcji multimediów HEVC w aplikacji. Aplikacje powinny zadeklarować obsługiwane możliwości multimediów w pliku manifestu, ale tej flagi można użyć do wymuszenia w aplikacji obsługi HEVC, dzięki czemu unikniesz transkodowania podczas korzystania z multimediów zakodowanych w HEVC. Ustawienie tego parametru zastępuje wszelkie domyślne ustawienia na poziomie systemu operacyjnego dla aplikacji. Domyślnie jest wyłączona, co oznacza, że pierwszeństwo mają ustawienia domyślne systemu operacyjnego. Jeśli włączone są zarówno ta flaga, jak i FORCE_DISABLE_HEVC_SUPPORT, system operacyjny ignoruje obie flagi.

FORCE_NON_RESIZE_APP

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

Wymusza, aby nie można było zmienić rozmiaru pakietów, do których jest stosowany.

FORCE_RESIZE_APP

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

Wymusza możliwość zmiany rozmiaru pakietów, do których jest stosowany. Zezwalam na zmianę rozmiaru tylko w trybie pełnoekranowym, a nie na wymuszenie trybu wielu okien z możliwością zmiany rozmiaru.

GWP_ASAN

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

Umożliwia wykrywanie w aplikacjach błędów w pamięci natywnej na podstawie próbek.

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

IMPLICIT_INTENTS_ONLY_MATCH_EXPORTED_COMPONENTS

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

W przypadku aplikacji kierowanych na Androida 14 (poziom API 34) lub nowszego komponenty muszą być eksportowane, aby można było je wywoływać za pomocą niejawnych intencji. Jeśli komponent nie zostanie wyeksportowany ani wywołany, zostanie usunięty z listy odbiorców. Dotyczy to działań i transmisji.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie Zmiany w działaniu Androida 14 poświęconej ograniczeniom intencji niejawnych i oczekujących.

Identyfikator zmiany: 266201607
Stan domyślny: Włączone w przypadku aplikacji kierowanych na Androida 14 (poziom API 34) lub nowszego.

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) i nowszego aplikacje muszą prosić użytkownika o zgodę przed każdą sesją przechwytywania MediaProjection.

Więcej informacji o tej zmianie znajdziesz w sekcji poświęconej zmianom w zachowaniu w Androidzie 14 na stronie poświęconej Androidowi 14. MediaProjection

NATIVE_HEAP_ZERO_INIT

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

Włącz automatyczne zerowe inicjowanie alokacji natywnej pamięci sterty.

NATIVE_MEMTAG_ASYNC

Identyfikator zmiany: 145772972
Stan domyślny: Wyłączono we wszystkich aplikacjach.

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

NATIVE_MEMTAG_SYNC

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

Włącza w tym procesie synchroniczne (SYNC) sprawdzanie etykiet pamięci. Ta flaga ma wpływ tylko na sprzęt obsługujący rozszerzenie ARM Memory Grouping Extension (MTE). Jeśli włączona jest 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 dla wszystkich aplikacji.

Po włączeniu ta zmiana umożliwia zastosowanie tych ustawień orientacji niezależnie od orientacji wymaganej przez aktywność:

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

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

Po włączeniu ta zmiana spowoduje, że pakiety, do których jest zastosowana, będą ignorować bieżącą wartość android:resizeableActivity oraz docelowy pakiet SDK równy lub mniejszy niż M, a aktywność będzie uważana za nierozszerzalną. W tym przypadku wartość obrotu i przycięcia kamery zależy tylko od wymaganej kompensacji uwzględniającej bieżący obrót wyświetlacza.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

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

Gdy ta opcja jest włączona, ta zmiana wymusza na pakietach, do których jest stosowana, zastąpienie domyślnego zachowania kamery do obracania i przycinania oraz zawsze zwracanie wartości CaptureRequest.SCALER_ROTATE_AND_CROP_NONE.

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, w której jest stosowany. Jeśli opcja OVERRIDE_ANY_ORIENTATION nie jest włączona, SCREEN_ORIENTATION_REVERSE_LANDSCAPE jest używana tylko wtedy, gdy aktywność określa orientację poziomą. Włączenie tej zmiany może pomóc w 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_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 umożliwia zastosowanie tych minimalnych proporcji:

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

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

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

Gdy ta opcja jest włączona, zastępuje minimalne ograniczenie formatu obrazu na pełnym ekranie w orientacji pionowej, aby wykorzystać całą dostępną przestrzeń 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 przypadku pakietu powoduje 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.

Jeśli włączona jest też opcja OVERRIDE_MIN_ASPECT_RATIO, włączenie tej zmiany w przypadku pakietu powoduje ustawienie minimalnego współczynnika proporcji aktywności na średnią wartość określoną przez opcję OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

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

Jeśli dodatkowo włączona jest opcja OVERRIDE_MIN_ASPECT_RATIO, ta zmiana ogranicza wszelkie inne zmiany, które wymuszają minimalny współczynnik proporcji działania do określonej wartości, np. OVERRIDE_MIN_ASPECT_RATIO_LARGE lub OVERRIDE_MIN_ASPECT_RATIO_MEDIUM, do aktywności o orientacji pionowej.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

Identyfikator zmiany: 236283604
Stan domyślny: wyłączona w przypadku wszystkich aplikacji.

Gdy ta opcja jest włączona, powoduje wykluczenie pakietów, do których są stosowane, z ograniczeń ignorowania orientacji, które mogą ustawić 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 przypadku aplikacji, w której jest stosowany. Jeśli nie włączono również OVERRIDE_ANY_ORIENTATION, wartość 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 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.

RATE_LIMIT_TOASTS

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

Umożliwia ograniczenie szybkości wywoływania funkcji Toast.show(), aby nie obciążać użytkownika zbyt dużą liczbą toastów w określonym czasie. Każda próba wyświetlenia większej liczby toastów niż dozwolona w określonym przedziale czasowym powoduje odrzucenie toastu.

REJECT_NEGATIVE_NETWORK_ESTIMATES

Identyfikator zmiany: 253665015
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 14 (poziom API 34) lub nowszego.

Gdy ta opcja jest włączona, wymaga, aby szacowana liczba bajtów sieci nie była ujemna.

REQUIRE_NETWORK_CONSTRAINT_FOR_NETWORK_JOB_WORK_ITEMS

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

W przypadku aplikacji kierowanych na Androida 14 (API na poziomie 34) lub nowszego zadanie hostingu musi określać ograniczenie sieci, jeśli zawarte JobWorkItem wskazuje na korzystanie z sieci.

REQUIRE_NETWORK_PERMISSIONS_FOR_CONNECTIVITY_JOBS

Identyfikator zmiany: 271850009
Stan domyślny: Włączone w przypadku aplikacji kierowanych na Androida 14 (API na poziomie 34) lub nowszego.

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) i nowszego, przy planowaniu zadań z ograniczeniem połączenia aplikacje muszą określić zarówno uprawnienia INTERNET, jak i ACCESS_NETWORK_STATE.

THROW_ON_INVALID_DATA_TRANSFER_IMPLEMENTATION

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

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) i nowszego system zgłasza wyjątek, jeśli aplikacja nie poprawnie implementuje wszystkich niezbędnych interfejsów API przenoszenia danych podczas określania inicjowanego przez użytkownika zadania transferu danych.

Więcej informacji o tej zmianie znajdziesz na stronie opisującej przenoszenie usług działających na pierwszym planie do inicjowanych przez użytkownika zadań przesyłania danych.

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.