Zmiany platformy zgodności (Android 14)

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 włączać, które są częścią platformy zgodności w Androidzie 14 (poziom interfejsu API 34). 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 14 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 w Androidzie 14.

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

Zmiany w platformie zgodności w Androidzie 14 z możliwością przełączania.

ACCESS_SHARED_IDENTITY

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

Przyznaje dostęp do tożsamości uruchamiającej aplikację, jeśli aplikacja zdecydowała się udostępnić swoją tożsamość, uruchamiając tę aktywność za pomocą instancji ActivityOptions, w której wywołano element ActivityOptions.setShareIdentityEnabled(boolean) z wartością true, lub jeśli identyfikator UID uruchomionej aktywności jest taki sam jak identyfikator uruchamianej aplikacji. Gdy ta zmiana jest włączona i spełniono jedno z tych wymagań, aktywność może uzyskać dostęp do identyfikatora UID i nazwy pakietu uruchamianej aplikacji 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 interfejsu API 34) lub wyższy.

Gdy ta opcja jest włączona, wywołuje komunikat „Aplikacja nie odpowiada” (ANR), gdy aplikacje wolno reagują na interfejsy API i funkcje Androida w wersji 13 (poziom 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 interfejsu API 34) lub nowszy.

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub nowszego umożliwia sprawdzanie uprawnień dostępu do wywołującego identyfikatora UID we wszystkich interfejsach API związanych z synchronizacją.

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.

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_SENDER

Identyfikator zmiany: 244637991
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub wyższy.

Gdy aplikacja wysyła obiekt PendingIntent za pomocą metody PendingIntent#send() lub podobnej, musi teraz wyrazić zgodę na przyznanie przez nią uprawnień do uruchamiania intencji w tle, aby uruchomić oczekującą intencję.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie o zmianach działania Androida 14 dotyczącej dodatkowych ograniczeń w rozpoczynaniu działań w tle.

DETACH_THROWS_ISE_ONLY

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

Prawidłowy wyjątek od flagi zgłoszony przez użytkownika #detachImage.

Metoda #detachImage jest udokumentowana jako zwracająca obiekt IllegalStateException w przypadku błędu. Jest to natywna metoda pomocnicza, która powoduje użycie funkcji RuntimeException, jeśli powierzchnia została porzucona podczas odłączania obiektu Image.

To nieudokumentowane wcześniej zachowanie wyjątków jest kontynuowane w Androidzie 13 (poziom API 33).

Po Androidzie 13 (poziom interfejsu API 33) natywna metoda pomocnicza generuje tylko plik IllegalStateExceptions zgodnie z dokumentacją.

Gdy ta zmiana jest włączona, #detachImage zgłasza IllegalStateException tylko wtedy, gdy podczas odłączania obrazu wystąpią błędy. Działanie aplikacji pozostaje bez zmian w przypadku aplikacji kierowanych na Androida 13 (poziom API 33) i starsze wersje.

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.

ENABLE_PLATFORM_MDNS_BACKEND

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

Aplikacje kierowane na Androida 14 lub nowszego używają jako backendu integracji mDNS, a aplikacje kierowane na poprzednie wersje nadal korzystają ze starszego backendu wykrywania usług sieciowych (NSD) (ze starszym demonem natywnym jako backendem NsdManager).

ENABLE_SELF_CERTIFIED_CAPABILITIES_DECLARATION

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

Samodzielna weryfikacja możliwości jest dostępna dla 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 (poziom interfejsu API 34) lub wyższy.

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub nowszego aplikacje muszą zadeklarować w pliku manifestu potrzeby związane z widocznością pakietów, aby uzyskać dostęp do interfejsów API AccountManager.

ENFORCE_READ_ONLY_JAVA_DCL

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

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

Więcej informacji o tej zmianie znajdziesz w sekcji na temat bezpieczniejszego wczytywania kodu dynamicznego na stronie zmian w działaniu Androida 14.

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.

EXACT_LISTENER_ALARMS_DROPPED_ON_CACHED

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

Dokładne alarmy, które oczekują wywołania zwrotnego AlarmManager.OnAlarmListener, są pomijane, gdy aplikacja wywołująca zostanie zapisana w pamięci podręcznej.

Aby dowiedzieć się więcej o zmianach w alarmach precyzyjnych w Androidzie 14, przeczytaj artykuł Harmonogram alarmów precyzyjnych jest domyślnie odrzucany.

FGS_TYPE_CHECK_FOR_INSTANT_APPS

Identyfikator zmiany: 261055255
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub wyższy.

Gdy ta opcja 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łączony w przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub nowszy.

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 przy użyciu wycofanego typu FOREGROUND_SERVICE_TYPE_NONE, powodują wyświetlenie w logu ostrzeżenia.

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łączony w przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub wyższy.

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 przy użyciu wycofanego typu FOREGROUND_SERVICE_TYPE_NONE, stanowią 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łączony w przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub wyższy.

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 bez wymaganych uprawnień powiązanych z typem tej usługi, powodują wyświetlenie SecurityException.

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.

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.

IMPLICIT_INTENTS_ONLY_MATCH_EXPORTED_COMPONENTS

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

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub nowszy należy wyeksportować komponenty, aby móc je wywoływać za pomocą intencji niejawnych. Jeżeli komponent nie zostanie wyeksportowany i wywołany, jest usuwany z listy odbiorców. Dotyczy to w szczególności działań i transmisji.

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie dotyczącej zmian zachowania Androida 14 w sekcji o ograniczeniach dotyczących intencji niejawnych i oczekujących.

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

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

Więcej informacji o tej zmianie znajdziesz w sekcji na stronie poświęconej zmianom działania Androida 14, w której znajdziesz informacje o tym, jak wymagana jest zgoda użytkownika w przypadku każdej sesji przechwytywania MediaProjection.

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_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_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.

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.

REJECT_NEGATIVE_NETWORK_ESTIMATES

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

Gdy ta opcja jest włączona, wymaga, aby szacowane bajty sieciowe nie były ujemne.

REQUIRE_NETWORK_CONSTRAINT_FOR_NETWORK_JOB_WORK_ITEMS

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

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub nowszego zadanie hostingu wymaga określenia ograniczenia sieci, jeśli uwzględniona wartość JobWorkItem wskazuje wykorzystanie sieci.

REQUIRE_NETWORK_PERMISSIONS_FOR_CONNECTIVITY_JOBS

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

W przypadku aplikacji kierowanych na Androida 14 (poziom interfejsu API 34) lub nowszego aplikacje muszą podczas planowania zadania z ograniczeniem połączenia określić uprawnienia INTERNET i ACCESS_NETWORK_STATE.

THROW_ON_INVALID_DATA_TRANSFER_IMPLEMENTATION

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

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

Więcej informacji o tej zmianie znajdziesz na stronie z opisem, jak przenieść usługi działające na pierwszym planie do zadań transferu danych inicjowanych przez użytkownika.

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.