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 zgodności w Androidzie 14 (poziom interfejsu 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 kilka czynności, które możesz wykonać za pomocą narzędzi ramowych 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łą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 zachowania uwzględnione w systemie sprawdzania 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 uruchamianej aplikacji, jeśli aplikacja wyraziła zgodę na udostępnianie swojej tożsamości przez uruchomienie tej aktywności z instancjąActivityOptions, w której wywołanoActivityOptions.setShareIdentityEnabled(boolean) z wartością true, lub jeśli identyfikator UID uruchomionej aktywności jest taki sam jak identyfikator uruchamianej aplikacji. Gdy ta zmiana zostanie włączona i spełnione zostanie jedno z tych wymagań, działanie może uzyskać dostęp do identyfikatora UID i nazwy pakietu uruchamianej aplikacji za pomocą odpowiednio parametrów Activity.getLaunchedFromUid()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łączony w przypadku aplikacji kierowanych na Androida 14 (poziom API 34) lub nowszego.

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) i nowszych umożliwia sprawdzanie uprawnień autoryzowanych użytkowników w przypadku identyfikatorów UID wywołujących wszystkie interfejsy API związane z synchronizacją.

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

Wskaźnik, że urządzenie obsługuje kamerę i mikrofon. 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ą.

Gdy ta zmiana jest włączona, funkcja #detachImage powoduje wyjątek 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 jest bramką dla wszystkich zmian dotyczących zmniejszania rozmiaru bufora w poszczególnych aplikacjach. 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 80% jest używane, jeśli włączone są 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 niż rzeczywisty wyświetlacz.

DOWNSCALE_35

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

Jeśli włączona jest też opcja DOWNSCALED, w przypadku pakietu powoduje to, że aplikacja zakłada, że działa na wyświetlaczu o 35% mniejszej rozdzielczości w orientacji poziomej i pionowej niż rzeczywisty wyświetlacz. 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 dla 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 zakładać, że działa na wyświetlaczu o 45% 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 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 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 również 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 we wszystkich aplikacjach.

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 rozdzielczości 60% w orientacji pionowej i poziomej w porównaniu z rzeczywistą rozdzielczością. 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 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 przypadku pakietu z taką zmianą aplikacja zakłada, że działa na wyświetlaczu o 70% większej 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 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 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łączysz też opcję DOWNSCALED, aplikacja będzie zakładać, że działa na wyświetlaczu o 85% większej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz. 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łączone we wszystkich aplikacjach.

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 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 prawdziwym wyświetlaczem.

ENABLE_PLATFORM_MDNS_BACKEND

Identyfikator zmiany: 270306772
Stan domyślny: włączony 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 używają 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łączone w przypadku aplikacji kierowanych na Androida 14 (API na poziomie 34) lub nowszego.

Sprawdzanie certyfikowanych przez siebie możliwości 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.

Aplikacje kierowane na Androida 14 (poziom API 34) i nowsze muszą w pliku manifestu zadeklarować potrzeby dotyczące widoczności pakietu, aby uzyskać dostęp do interfejsów API AccountManager.

ENFORCE_READ_ONLY_JAVA_DCL

Identyfikator zmiany: 218865702
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 14 (interfejs API na poziomie 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 dla 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 w typach 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 w typach usług na pierwszym planie.

FGS_TYPE_NONE_DISABLED_CHANGE_ID

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

Gdy ta opcja jest włączona, aplikacje kierowane na Androida 14 (poziom interfejsu API 34) i nowsze, 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 we wszystkich aplikacjach.

Wymusić wyłączenie obsługi formatu HEVC przez aplikację. Aplikacje powinny deklarować obsługiwane formaty 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 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.

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. Domyślnie jest ona wyłączona, co oznacza, że mają zastosowanie 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 na pakietach, do których jest stosowany, niemożność zmiany rozmiaru.

FORCE_RESIZE_APP

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

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

GWP_ASAN

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

Umożliwia wykrywanie 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łączone w przypadku aplikacji kierowanych na Androida 14 (API na poziomie 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 jest eksportowany ani wywoływany, zostaje usunięty z listy odbiorców. Dotyczy to w szczególności aktywności i transmisji.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie poświęconej zmianom w zachowaniu Androida 14 dotyczącą ograniczeń dotyczących niejawnych i oczekujących intencji.

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 (interfejs API na poziomie 34) i nowszych wersjach należy poprosić użytkownika o zgodę przed każdą sesją rejestrowania 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 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 (ASYNC) sprawdzanie tagów pamięci. Ten parametr ma zastosowanie tylko do sprzętu obsługującego rozszerzenie Memory Tagging Extension (MTE) na ARM.

NATIVE_MEMTAG_SYNC

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

Włącza w tym procesie synchroniczne (SYNC) sprawdzanie etykiet pamięci. Ten parametr ma zastosowanie tylko do sprzętu obsługującego rozszerzenie Memory Tagging Extension (MTE) na ARM. Jeśli zarówno NATIVE_MEMTAG_ASYNC, jak i ta opcja są włączone, ta opcja ma pierwszeństwo i włącza MTE w trybie synchronizacji.

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łączone we wszystkich aplikacjach.

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 z uwzględnieniem bieżącego obrotu 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 ona, aby pakiety, do których jest stosowana, zastępowały domyślne zachowanie obracania i przycinania aparatu i zawsze zwracały 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 też 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_MIN_ASPECT_RATIO

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

Ta zmiana jest bramką dla wszystkich zmian, które wymuszają określony minimalny format obrazu. Włączenie tej zmiany pozwala zastosować te minimalne proporcje:

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 współczynnika proporcji w orientacji pionowej w celu wykorzystania całej dostępnej przestrzeni 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.

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

Po włączeniu ta zmiana wyklucza pakiety, które są stosowane do ignorowania ograniczeń orientacji, które mogą być ustawiane przez producentów 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 jest też włączona opcja OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_NOSENSOR jest używana tylko wtedy, gdy aktywność nie określa żadnego innego stałego ułożenia.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

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

Włącza SCREEN_ORIENTATION_PORTRAIT w przypadku aplikacji, w której jest stosowany. 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łączone 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łączone dla aplikacji kierowanych na Androida 14 (API na poziomie 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 (interfejs API na poziomie 34) i nowszych wymagane jest określenie w nich uprawnień INTERNETACCESS_NETWORK_STATE podczas planowania zadania z ograniczeniem łączności.

THROW_ON_INVALID_DATA_TRANSFER_IMPLEMENTATION

Identyfikator zmiany: 255371817
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 wyższych system zgłasza wyjątek, jeśli aplikacja nie zaimplementuje prawidłowo wszystkich niezbędnych interfejsów API przesyłania danych podczas określania zadania przesyłania danych inicjowanego przez użytkownika.

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

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.