Изменения в системе совместимости (Android 14)

Рисунок 1 . На экране «Изменения совместимости приложений» в параметрах разработчика перечислены изменения, которые вы можете переключать.

На этой странице описаны переключаемые изменения, которые являются частью платформы совместимости в Android 14 (уровень API 34). Используйте этот список вместе с параметрами разработчика и командами ADB для тестирования и отладки вашего приложения, когда вы готовитесь к поддержке Android 14 и ориентированы на него.

Вот некоторые вещи, которые вы можете сделать с помощью инструментов платформы совместимости:

  • Протестируйте целевые изменения, фактически не меняя targetSdkVersion приложения . Вы можете использовать переключатели для принудительного включения определенных целевых изменений поведения, чтобы оценить влияние на существующее приложение.
  • Сосредоточьте свое тестирование только на конкретных изменениях . Вместо того, чтобы одновременно обрабатывать все целевые изменения, переключатели позволяют отключить все целевые изменения, кроме тех, которые вы хотите протестировать.
  • Управление переключателями через adb . Вы можете использовать команды adb для включения и отключения переключаемых изменений в вашей среде автоматического тестирования.
  • Выполняйте отладку быстрее, используя стандартные идентификаторы изменений . Каждое из переключаемых изменений имеет уникальный идентификатор и имя, которые можно использовать для быстрого устранения основной причины в выводе журнала.

Полную информацию об использовании инструментов для каждого из этих вариантов использования см. в разделе Инструменты платформы совместимости .

Изменения поведения, включенные в структуру совместимости.

В списке в этом разделе описаны переключаемые изменения, включенные в платформу совместимости в Android 14.

Вы можете отфильтровать список изменений по их состоянию по умолчанию .

Переключаемые изменения в системе совместимости в Android 14

ACCESS_SHARED_IDENTITY

Идентификатор изменения: 259743961
Состояние по умолчанию : включено для всех приложений.

Предоставляет доступ к удостоверению запускающего приложения, если приложение согласилось поделиться своим удостоверением, запустив это действие с экземпляром ActivityOptions , для которого был вызван ActivityOptions.setShareIdentityEnabled(boolean) со значением true , или если UID запущенного действия является то же, что и запускаемое приложение. Когда это изменение включено и одно из этих требований выполнено, действие может получить доступ к UID запускаемого приложения и имени пакета с помощью Activity.getLaunchedFromUid() и Activity.getLaunchedFromPackage() соответственно.

ANR_PRE_UDC_APIS_ON_SLOW_RESPONSES

Идентификатор изменения: 258236856
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, выдается сообщение «Приложение не отвечает» (ANR), когда приложения медленно отвечают на API и функции Android 13 (уровень API 33) или ниже.

AUTHORITY_ACCESS_CHECK_CHANGE_ID

Идентификатор изменения: 207133734
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и выше, включает проверку доступа к полномочиям для вызывающего UID во всех API, связанных с синхронизацией.

CAMERA_MIC_INDICATORS_NOT_PRESENT

Идентификатор изменения: 162547999
Состояние по умолчанию : отключено для всех приложений.

Указывает, что данное устройство поддерживает индикаторы камеры и микрофона. Значение является false , если оно присутствует, поскольку метод CompatChanges#isChangeEnabled возвращает true если идентификатор изменения отсутствует.

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_SENDER

Идентификатор изменения: 244637991
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Когда приложение отправляет PendingIntent с помощью PendingIntent#send() или аналогичных методов, приложение теперь должно согласиться, если оно хочет предоставить свои собственные привилегии запуска фоновой активности для запуска ожидающего намерения.

Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 14, посвященный дополнительным ограничениям на запуск действий в фоновом режиме .

DETACH_THROWS_ISE_ONLY

Идентификатор изменения: 236825255
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Флаг для исправления исключения, выданного #detachImage .

Задокументировано, что #detachImage вызывает исключение IllegalStateException в случае ошибки; собственный вспомогательный метод для этого вызывал RuntimeException , если поверхность была заброшена при отсоединении Image .

Это ранее недокументированное поведение исключений сохраняется и в Android 13 (уровень API 33).

После Android 13 (уровень API 33) собственный вспомогательный метод генерирует только исключения IllegalStateExceptions в соответствии с документацией.

Если это изменение включено, #detachImage выдает исключение IllegalStateException только в том случае, если при отсоединении изображения возникают ошибки. Поведение остается неизменным для приложений, предназначенных для Android 13 (уровень API 33) и более ранних версий.

DOWNSCALED

Идентификатор изменения: 168419799
Состояние по умолчанию : отключено для всех приложений.

Это изменение является привратником всех изменений масштабирования буфера для каждого приложения. Включение этого изменения позволяет применять следующие коэффициенты масштабирования:

Если это изменение включено для пакета приложения, размер приложения принудительно изменяется до максимального разрешенного коэффициента масштабирования. Например, 80% используется, если включены и 80%, и 70% ( DOWNSCALE_80 и DOWNSCALE_70 ). Если включены и это изменение, и DOWNSCALED_INVERSE , DOWNSCALED_INVERSE имеет приоритет, и коэффициент масштабирования применяется обратно.

DOWNSCALED_INVERSE

Идентификатор изменения: 273564678
Состояние по умолчанию : отключено для всех приложений.

Это изменение является привратником всех изменений обратного масштабирования буфера для каждого приложения. Включение этого изменения позволяет применить следующие коэффициенты масштабирования обратно (то есть вместо этого масштабируется разрешение):

Если это изменение включено для пакета приложения, размер приложения принудительно изменяется до наименьшего разрешенного коэффициента масштабирования. Например, 80 % используется, если включены и 80 %, и 70 % ( DOWNSCALE_80 и DOWNSCALE_70 ), поскольку при обратном применении коэффициент масштабирования 80 % равен 125 %, что меньше масштаба 142,86 %, который применяется при обратном применении Коэффициент масштабирования 70%. Если включены и это изменение, и DOWNSCALED , DOWNSCALED_INVERSE имеет приоритет, и коэффициент масштабирования применяется обратно.

DOWNSCALE_30

Идентификатор изменения: 189970040
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 30% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 333,33% вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_35

Идентификатор изменения: 189969749
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 35% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 285,71% вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_40

Идентификатор изменения: 189970038
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 40% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 250 % вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_45

Идентификатор изменения: 189969782
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 45% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 222,22% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_50

Идентификатор изменения: 176926741
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 50% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 200 % вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_55

Идентификатор изменения: 189970036
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 55% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 181,82% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_60

Идентификатор изменения: 176926771
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 60% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 166,67% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_65

Идентификатор изменения: 189969744
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 65% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 153,85% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_70

Идентификатор изменения: 176926829
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 70% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 142,86% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_75

Идентификатор изменения: 189969779
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 75% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 133,33% вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_80

Идентификатор изменения: 176926753
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 80% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 125 % вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_85

Идентификатор изменения: 189969734
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 85% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 117,65% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_90

Идентификатор изменения: 182811243
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 90% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 111,11% от вертикального и горизонтального разрешения реального дисплея.

ENABLE_PLATFORM_MDNS_BACKEND

Идентификатор изменения: 270306772
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Приложения, предназначенные для Android 14 или более поздней версии, используют интегрированную в платформу реализацию mDNS в качестве серверной части, в то время как приложения, ориентированные на предыдущие версии, продолжают использовать устаревшую серверную часть обнаружения сетевых служб (NSD) (с устаревшим собственным демоном в качестве серверной части NsdManager ).

ENABLE_SELF_CERTIFIED_CAPABILITIES_DECLARATION

Идентификатор изменения: 266524688
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Самосертифицированная проверка возможностей включена для приложений, предназначенных для Android 14 или более поздней версии. Дополнительные сведения см. в разделе NetworkCapabilities .

ENFORCE_PACKAGE_VISIBILITY_FILTERING

Идентификатор изменения: 154726397
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и более поздних версий, требуется, чтобы приложения декларировали потребности видимости пакета в манифесте, чтобы получить доступ к API AccountManager .

ENFORCE_READ_ONLY_JAVA_DCL

Идентификатор изменения: 218865702
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и выше, необходимо пометить все динамически загружаемые файлы как доступные только для чтения. Это предотвращает неожиданную перезапись динамически загружаемых файлов злоумышленниками.

Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 14, посвященный более безопасной динамической загрузке кода .

ENFORCE_STRICT_QUERY_BUILDER

Идентификатор изменения: 143231523
Состояние по умолчанию : отключено для всех приложений.

Если этот параметр включен, SQLiteQueryBuilder проверяет все выборки запроса CalendarProvider2 на наличие вредоносных аргументов.

EXACT_LISTENER_ALARMS_DROPPED_ON_CACHED

Идентификатор изменения: 265195908
Состояние по умолчанию : включено для всех приложений.

Точные сигналы тревоги, ожидающие обратного вызова AlarmManager.OnAlarmListener , удаляются, когда вызывающее приложение переходит в кэшированное состояние.

Чтобы узнать больше об изменениях в точных сигналах тревоги в Android 14, см. раздел Расписание точных сигналов тревоги отключено по умолчанию .

FGS_TYPE_CHECK_FOR_INSTANT_APPS

Идентификатор изменения: 261055255
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, приложения с мгновенным запуском должны указывать соответствующие типы служб переднего плана для всех служб, объявленных в файле манифеста приложения.

Дополнительные сведения об этом изменении см. на странице, описывающей изменения в типах служб переднего плана .

FGS_TYPE_NONE_DEPRECATION_CHANGE_ID

Идентификатор изменения: 255042465
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, приложения, предназначенные для Android 14 (уровень API 34) и выше, которые запускают службу переднего плана с использованием устаревшего типа FOREGROUND_SERVICE_TYPE_NONE приводят к появлению предупреждения в журнале.

Дополнительные сведения об этом изменении см. на странице, описывающей изменения в типах служб переднего плана .

FGS_TYPE_NONE_DISABLED_CHANGE_ID

Идентификатор изменения: 255038118
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, приложения, предназначенные для Android 14 (уровень API 34) и выше, которые запускают службу переднего плана с использованием устаревшего типа FOREGROUND_SERVICE_TYPE_NONE приводят к исключению.

Дополнительные сведения об этом изменении см. на странице, описывающей изменения в типах служб переднего плана .

FGS_TYPE_PERMISSION_CHANGE_ID

Идентификатор изменения: 254662522
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, приложения, предназначенные для Android 14 (уровень API 34) и выше, которые запускают службу переднего плана без необходимых разрешений, связанных с типом этой службы переднего плана, приводят к возникновению SecurityException .

Дополнительные сведения об этом изменении см. на странице, описывающей изменения в типах служб переднего плана .

FORCE_DISABLE_HEVC_SUPPORT

Идентификатор изменения: 174227820
Состояние по умолчанию : отключено для всех приложений.

Принудительно отключите приложение от поддержки мультимедийных возможностей HEVC. Приложения должны декларировать поддерживаемые возможности мультимедиа в своем манифесте, но этот флаг можно использовать, чтобы заставить приложение не поддерживать HEVC, что приведет к принудительному перекодированию при доступе к мультимедиа, закодированному в HEVC. Установка этого флага отменяет любые настройки по умолчанию для приложений на уровне ОС. По умолчанию он отключен, а это означает, что настройки ОС по умолчанию имеют приоритет. Если включены оба флага и FORCE_ENABLE_HEVC_SUPPORT , ОС игнорирует оба флага.

FORCE_ENABLE_HEVC_SUPPORT

Идентификатор изменения: 174228127
Состояние по умолчанию : отключено для всех приложений.

Принудительно включить поддержку мультимедийных возможностей HEVC. Приложения должны объявлять поддерживаемые мультимедийные возможности в своем манифесте, но этот флаг можно использовать, чтобы заставить приложение поддерживать HEVC, что позволит избежать перекодирования при доступе к мультимедиа, закодированному в HEVC. Установка этого флага отменяет любые настройки по умолчанию для приложений на уровне ОС. По умолчанию он отключен, а это означает, что настройки ОС по умолчанию будут иметь приоритет. Если оба флага и FORCE_DISABLE_HEVC_SUPPORT включены, ОС игнорирует оба флага.

FORCE_NON_RESIZE_APP

Идентификатор изменения: 181146395
Состояние по умолчанию : отключено для всех приложений.

Принудительно запрещает изменение размера пакетов, к которым он применяется.

FORCE_RESIZE_APP

Идентификатор изменения: 174042936
Состояние по умолчанию : отключено для всех приложений.

Принудительно изменяет размер пакетов, к которым он применяется. Мы разрешаем изменение размера только в полноэкранном оконном режиме, но не переводим приложение в многооконный режим с изменяемым размером.

GWP_ASAN

Идентификатор изменения: 145634846
Состояние по умолчанию : отключено для всех приложений.

Включает выборочное обнаружение ошибок встроенной памяти в приложениях.

Дополнительную информацию об использовании GWP-ASan см. в руководстве GWP-ASan .

IMPLICIT_INTENTS_ONLY_MATCH_EXPORTED_COMPONENTS

Идентификатор изменения: 229362273
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и выше, компоненты необходимо экспортировать, чтобы вызывать их посредством неявных намерений. Если компонент не экспортируется и не вызывается, он удаляется из списка получателей. Это касается конкретно мероприятий и трансляций.

Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 14, посвященный ограничениям неявных и ожидающих намерений .

Идентификатор изменения: 266201607
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и выше, приложения должны запрашивать у пользователя согласие перед каждым сеансом захвата MediaProjection .

Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 14 о том, как требуется согласие пользователя для каждого сеанса захвата MediaProjection .

NATIVE_HEAP_ZERO_INIT

Идентификатор изменения: 178038272
Состояние по умолчанию : отключено для всех приложений.

Включите автоматическую инициализацию нулями выделений собственной кучи.

NATIVE_MEMTAG_ASYNC

Идентификатор изменения: 145772972
Состояние по умолчанию : отключено для всех приложений.

Включите в этом процессе асинхронную (ASYNC) проверку тегов памяти. Этот флаг влияет только на оборудование, поддерживающее расширение маркировки памяти ARM (MTE).

NATIVE_MEMTAG_SYNC

Идентификатор изменения: 177438394
Состояние по умолчанию : отключено для всех приложений.

Включает синхронную проверку тегов памяти (SYNC) в этом процессе. Этот флаг влияет только на оборудование, поддерживающее расширение маркировки памяти ARM (MTE). Если включены и NATIVE_MEMTAG_ASYNC , и этот параметр, этот параметр имеет приоритет, и MTE включается в режиме SYNC.

OVERRIDE_ANY_ORIENTATION

Идентификатор изменения: 265464455
Состояние по умолчанию : отключено для всех приложений.

Если это изменение включено, оно позволяет применять следующие переопределения ориентации независимо от ориентации, запрошенной действием:

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

Идентификатор изменения: 191514214
Состояние по умолчанию : отключено для всех приложений.

Если это изменение включено, это изменение заставляет пакеты, к которым оно применяется, игнорировать текущее значение android:resizeableActivity , а также целевой SDK, равный или меньше M, и считать действие неизменяемым. В этом случае значение поворота и обрезки камеры зависит только от необходимой компенсации с учетом текущего поворота дисплея.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

Идентификатор изменения: 189229956
Состояние по умолчанию : отключено для всех приложений.

Если это изменение включено, пакеты, к которым оно применяется, переопределяют поведение поворота и обрезки камеры по умолчанию и всегда возвращают CaptureRequest.SCALER_ROTATE_AND_CROP_NONE .

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

Идентификатор изменения: 266124927
Состояние по умолчанию : отключено для всех приложений.

Включает SCREEN_ORIENTATION_REVERSE_LANDSCAPE для приложения, к которому оно применено. Если также не включен OVERRIDE_ANY_ORIENTATION , SCREEN_ORIENTATION_REVERSE_LANDSCAPE используется только тогда, когда действие указывает альбомную ориентацию. Включение этого изменения может помочь вам проверить поведение вашего приложения на предмет различий между устройствами, на которых альбомная ориентация соответствует Surface.ROTATION_90 , и устройствами, на которых она соответствует Surface.ROTATION_270 .

OVERRIDE_MIN_ASPECT_RATIO

Идентификатор изменения: 174042980
Состояние по умолчанию : отключено для всех приложений.

Это изменение является хранителем всех изменений, которые требуют заданного минимального соотношения сторон. Включение этого изменения позволяет применять следующие минимальные соотношения сторон:

Когда это изменение включено для пакета приложения, минимальное соотношение сторон, указанное в манифесте приложения, переопределяется на максимальное разрешенное соотношение сторон, если только значение манифеста приложения не выше.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

Идентификатор изменения: 218959984
Состояние по умолчанию : отключено для всех приложений.

Если этот параметр включен, переопределяет ограничение минимального соотношения сторон в полноэкранном режиме книжной ориентации, чтобы использовать все доступное пространство экрана.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

Идентификатор изменения: 180326787
Состояние по умолчанию : отключено для всех приложений.

Если OVERRIDE_MIN_ASPECT_RATIO также включен, включение этого изменения для пакета устанавливает для минимального соотношения сторон действия большое значение, определенное в OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE .

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

Идентификатор изменения: 180326845
Состояние по умолчанию : отключено для всех приложений.

Если OVERRIDE_MIN_ASPECT_RATIO также включен, включение этого изменения для пакета устанавливает минимальное соотношение сторон действия на среднее значение, определенное OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE .

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

Идентификатор изменения: 203647190
Состояние по умолчанию : включено для всех приложений.

Если также включен OVERRIDE_MIN_ASPECT_RATIO , это изменение ограничивает любые другие изменения, которые заставляют минимальное соотношение сторон действия принимать определенное значение, например OVERRIDE_MIN_ASPECT_RATIO_LARGE и OVERRIDE_MIN_ASPECT_RATIO_MEDIUM , действиями, которые также имеют книжную ориентацию.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

Идентификатор изменения: 236283604
Состояние по умолчанию : отключено для всех приложений.

Если это изменение включено, это изменение исключает пакеты, к которым применяется, из ограничений игнорирования ориентации, которые могут установить производители устройств.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

Идентификатор изменения: 265451093
Состояние по умолчанию : отключено для всех приложений.

Включает SCREEN_ORIENTATION_NOSENSOR для приложения, к которому он применен. Если также не включен OVERRIDE_ANY_ORIENTATION , SCREEN_ORIENTATION_NOSENSOR используется только тогда, когда действие не указывает никакой другой фиксированной ориентации.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

Идентификатор изменения: 265452344
Состояние по умолчанию : отключено для всех приложений.

Включает SCREEN_ORIENTATION_PORTRAIT для приложения, к которому он применен. Если также не включен OVERRIDE_ANY_ORIENTATION , SCREEN_ORIENTATION_PORTRAIT используется только тогда, когда действие не указывает никакой другой фиксированной ориентации.

RATE_LIMIT_TOASTS

Идентификатор изменения: 174840628
Состояние по умолчанию : это изменение невозможно переключить. Это регистрируется только платформой совместимости.

Включает ограничение количества вызовов Toast.show() чтобы не перегружать пользователя слишком большим количеством всплывающих уведомлений за ограниченное время. Любая попытка показать больше всплывающих уведомлений, чем разрешено в течение определенного периода времени, приводит к отмене всплывающего уведомления.

REJECT_NEGATIVE_NETWORK_ESTIMATES

Идентификатор изменения: 253665015
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, требуется, чтобы предполагаемые сетевые байты были неотрицательными.

REQUIRE_NETWORK_CONSTRAINT_FOR_NETWORK_JOB_WORK_ITEMS

Идентификатор изменения: 241104082
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и более поздних версий, требуется, чтобы задание размещения указывало сетевое ограничение, если включенный JobWorkItem указывает на использование сети.

REQUIRE_NETWORK_PERMISSIONS_FOR_CONNECTIVITY_JOBS

Идентификатор изменения: 271850009
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и более поздних версий, требуется, чтобы приложения указывали разрешения INTERNET и ACCESS_NETWORK_STATE при планировании задания с ограничением подключения.

THROW_ON_INVALID_DATA_TRANSFER_IMPLEMENTATION

Идентификатор изменения: 255371817
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и выше, система выдает исключение, если приложение не реализует должным образом все необходимые API передачи данных при указании задания на передачу данных, инициируемого пользователем.

Чтобы узнать больше об этом изменении, см. страницу, описывающую, как перенести службы приоритетного плана на задания по передаче данных, инициируемые пользователем .

USE_EXPERIMENTAL_COMPONENT_ALIAS

Идентификатор изменения: 196254758
Состояние по умолчанию : отключено для всех приложений.

Если этот параметр включен, система позволяет пакету «android» использовать псевдонимы компонентов.

,
Рисунок 1 . На экране «Изменения совместимости приложений» в параметрах разработчика перечислены изменения, которые вы можете переключать.

На этой странице описаны переключаемые изменения, которые являются частью платформы совместимости в Android 14 (уровень API 34). Используйте этот список вместе с параметрами разработчика и командами ADB для тестирования и отладки вашего приложения, когда вы готовитесь к поддержке Android 14 и ориентированы на него.

Вот некоторые вещи, которые вы можете сделать с помощью инструментов платформы совместимости:

  • Протестируйте целевые изменения, фактически не меняя targetSdkVersion приложения . Вы можете использовать переключатели для принудительного включения определенных целевых изменений поведения, чтобы оценить влияние на существующее приложение.
  • Сосредоточьте свое тестирование только на конкретных изменениях . Вместо того, чтобы одновременно обрабатывать все целевые изменения, переключатели позволяют отключить все целевые изменения, кроме тех, которые вы хотите протестировать.
  • Управление переключателями через adb . Вы можете использовать команды adb для включения и отключения переключаемых изменений в вашей среде автоматического тестирования.
  • Выполняйте отладку быстрее, используя стандартные идентификаторы изменений . Каждое из переключаемых изменений имеет уникальный идентификатор и имя, которые можно использовать для быстрого устранения основной причины в выводе журнала.

Полную информацию об использовании инструментов для каждого из этих вариантов использования см. в разделе Инструменты платформы совместимости .

Изменения поведения, включенные в структуру совместимости.

В списке в этом разделе описаны переключаемые изменения, включенные в платформу совместимости в Android 14.

Вы можете отфильтровать список изменений по их состоянию по умолчанию .

Переключаемые изменения в системе совместимости в Android 14

ACCESS_SHARED_IDENTITY

Идентификатор изменения: 259743961
Состояние по умолчанию : включено для всех приложений.

Предоставляет доступ к удостоверению запускающего приложения, если приложение согласилось поделиться своим удостоверением, запустив это действие с экземпляром ActivityOptions , для которого был вызван ActivityOptions.setShareIdentityEnabled(boolean) со значением true , или если UID запущенного действия является то же, что и запускаемое приложение. Когда это изменение включено и одно из этих требований выполнено, действие может получить доступ к UID запускаемого приложения и имени пакета с помощью Activity.getLaunchedFromUid() и Activity.getLaunchedFromPackage() соответственно.

ANR_PRE_UDC_APIS_ON_SLOW_RESPONSES

Идентификатор изменения: 258236856
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, выдается сообщение «Приложение не отвечает» (ANR), когда приложения медленно отвечают на API и функции Android 13 (уровень API 33) или ниже.

AUTHORITY_ACCESS_CHECK_CHANGE_ID

Идентификатор изменения: 207133734
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и более поздних версий, включает проверку доступа к полномочиям для вызывающего UID во всех API, связанных с синхронизацией.

CAMERA_MIC_INDICATORS_NOT_PRESENT

Идентификатор изменения: 162547999
Состояние по умолчанию : отключено для всех приложений.

Указывает, что данное устройство поддерживает индикаторы камеры и микрофона. Значение является false , если оно присутствует, поскольку метод CompatChanges#isChangeEnabled возвращает true если идентификатор изменения отсутствует.

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_SENDER

Идентификатор изменения: 244637991
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Когда приложение отправляет PendingIntent с помощью PendingIntent#send() или аналогичных методов, приложение теперь должно согласиться, если оно хочет предоставить свои собственные привилегии запуска фоновой активности для запуска ожидающего намерения.

Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 14, посвященный дополнительным ограничениям на запуск действий в фоновом режиме .

DETACH_THROWS_ISE_ONLY

Идентификатор изменения: 236825255
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Флаг для исправления исключения, выданного #detachImage .

Задокументировано, что #detachImage вызывает исключение IllegalStateException в случае ошибки; собственный вспомогательный метод для этого вызывал RuntimeException , если поверхность была заброшена при отсоединении Image .

Это ранее недокументированное поведение исключений сохраняется и в Android 13 (уровень API 33).

После Android 13 (уровень API 33) собственный вспомогательный метод генерирует только исключения IllegalStateExceptions в соответствии с документацией.

Если это изменение включено, #detachImage выдает исключение IllegalStateException только в том случае, если при отсоединении изображения возникают ошибки. Поведение остается неизменным для приложений, предназначенных для Android 13 (уровень API 33) и более ранних версий.

DOWNSCALED

Идентификатор изменения: 168419799
Состояние по умолчанию : отключено для всех приложений.

Это изменение является привратником всех изменений масштабирования буфера для каждого приложения. Включение этого изменения позволяет применять следующие коэффициенты масштабирования:

Если это изменение включено для пакета приложения, размер приложения принудительно изменяется до максимального разрешенного коэффициента масштабирования. Например, 80% используется, если включены и 80%, и 70% ( DOWNSCALE_80 и DOWNSCALE_70 ). Если включены и это изменение, и DOWNSCALED_INVERSE , DOWNSCALED_INVERSE имеет приоритет, и коэффициент масштабирования применяется обратно.

DOWNSCALED_INVERSE

Идентификатор изменения: 273564678
Состояние по умолчанию : отключено для всех приложений.

Это изменение является привратником всех изменений обратного масштабирования буфера для каждого приложения. Включение этого изменения позволяет применить следующие коэффициенты масштабирования обратно (то есть вместо этого масштабируется разрешение):

Если это изменение включено для пакета приложения, размер приложения принудительно изменяется до наименьшего разрешенного коэффициента масштабирования. Например, 80 % используется, если включены и 80 %, и 70 % ( DOWNSCALE_80 и DOWNSCALE_70 ), поскольку при обратном применении коэффициент масштабирования 80 % равен 125 %, что меньше масштаба 142,86 %, который применяется при обратном применении Коэффициент масштабирования 70%. Если включены и это изменение, и DOWNSCALED , DOWNSCALED_INVERSE имеет приоритет, и коэффициент масштабирования применяется обратно.

DOWNSCALE_30

Идентификатор изменения: 189970040
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 30% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 333,33% вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_35

Идентификатор изменения: 189969749
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 35% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 285,71% вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_40

Идентификатор изменения: 189970038
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 40% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 250 % вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_45

Идентификатор изменения: 189969782
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 45% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 222,22% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_50

Идентификатор изменения: 176926741
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 50% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 200 % вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_55

Идентификатор изменения: 189970036
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 55% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 181,82% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_60

Идентификатор изменения: 176926771
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 60% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 166,67% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_65

Идентификатор изменения: 189969744
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 65% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 153,85% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_70

Идентификатор изменения: 176926829
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 70% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 142,86% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_75

Идентификатор изменения: 189969779
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 75% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 133,33% вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_80

Идентификатор изменения: 176926753
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 80% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 125 % вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_85

Идентификатор изменения: 189969734
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 85% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 117,65% от вертикального и горизонтального разрешения реального дисплея.

DOWNSCALE_90

Идентификатор изменения: 182811243
Состояние по умолчанию : отключено для всех приложений.

Если также включен DOWNSCALED , включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с 90% вертикального и горизонтального разрешения реального дисплея. Если DOWNSCALED_INVERSE также включен, включение этого изменения для пакета заставляет приложение предполагать, что оно работает на дисплее с разрешением 111,11% от вертикального и горизонтального разрешения реального дисплея.

ENABLE_PLATFORM_MDNS_BACKEND

Идентификатор изменения: 270306772
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Приложения, предназначенные для Android 14 или более поздней версии, используют интегрированную в платформу реализацию mDNS в качестве серверной части, в то время как приложения, ориентированные на предыдущие версии, продолжают использовать устаревшую серверную часть обнаружения сетевых служб (NSD) (с устаревшим собственным демоном в качестве серверной части NsdManager ).

ENABLE_SELF_CERTIFIED_CAPABILITIES_DECLARATION

Идентификатор изменения: 266524688
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Самосертифицированная проверка возможностей включена для приложений, предназначенных для Android 14 или более поздней версии. Дополнительные сведения см. в разделе NetworkCapabilities .

ENFORCE_PACKAGE_VISIBILITY_FILTERING

Идентификатор изменения: 154726397
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и более поздних версий, требуется, чтобы приложения декларировали потребности видимости пакета в манифесте, чтобы получить доступ к API AccountManager .

ENFORCE_READ_ONLY_JAVA_DCL

Идентификатор изменения: 218865702
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и выше, необходимо пометить все динамически загружаемые файлы как доступные только для чтения. Это предотвращает неожиданную перезапись динамически загружаемых файлов злоумышленниками.

Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 14, посвященный более безопасной динамической загрузке кода .

ENFORCE_STRICT_QUERY_BUILDER

Идентификатор изменения: 143231523
Состояние по умолчанию : отключено для всех приложений.

Если этот параметр включен, SQLiteQueryBuilder проверяет все выборки запроса CalendarProvider2 на наличие вредоносных аргументов.

EXACT_LISTENER_ALARMS_DROPPED_ON_CACHED

Идентификатор изменения: 265195908
Состояние по умолчанию : включено для всех приложений.

Точные сигналы тревоги, ожидающие обратного вызова AlarmManager.OnAlarmListener , удаляются, когда вызывающее приложение переходит в кэшированное состояние.

Чтобы узнать больше об изменениях в точных сигналах тревоги в Android 14, см. раздел Расписание точных сигналов тревоги отключено по умолчанию .

FGS_TYPE_CHECK_FOR_INSTANT_APPS

Идентификатор изменения: 261055255
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, приложения с мгновенным запуском должны указывать соответствующие типы служб переднего плана для всех служб, объявленных в файле манифеста приложения.

Дополнительные сведения об этом изменении см. на странице, описывающей изменения в типах служб переднего плана .

FGS_TYPE_NONE_DEPRECATION_CHANGE_ID

Идентификатор изменения: 255042465
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, приложения, предназначенные для Android 14 (уровень API 34) и выше, которые запускают службу переднего плана с использованием устаревшего типа FOREGROUND_SERVICE_TYPE_NONE приводят к появлению предупреждения в журнале.

Дополнительные сведения об этом изменении см. на странице, описывающей изменения в типах служб переднего плана .

FGS_TYPE_NONE_DISABLED_CHANGE_ID

Идентификатор изменения: 255038118
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, приложения, предназначенные для Android 14 (уровень API 34) и выше, которые запускают службу переднего плана с использованием устаревшего типа FOREGROUND_SERVICE_TYPE_NONE приводят к исключению.

Дополнительные сведения об этом изменении см. на странице, описывающей изменения в типах служб переднего плана .

FGS_TYPE_PERMISSION_CHANGE_ID

Идентификатор изменения: 254662522
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, приложения, предназначенные для Android 14 (уровень API 34) и выше, которые запускают службу переднего плана без необходимых разрешений, связанных с типом этой службы переднего плана, приводят к возникновению SecurityException .

Дополнительные сведения об этом изменении см. на странице, описывающей изменения в типах служб переднего плана .

FORCE_DISABLE_HEVC_SUPPORT

Идентификатор изменения: 174227820
Состояние по умолчанию : отключено для всех приложений.

Принудительно отключите приложение от поддержки мультимедийных возможностей HEVC. Приложения должны декларировать поддерживаемые возможности мультимедиа в своем манифесте, но этот флаг можно использовать, чтобы заставить приложение не поддерживать HEVC, что приведет к принудительному перекодированию при доступе к мультимедиа, закодированному в HEVC. Установка этого флага отменяет любые настройки по умолчанию для приложений на уровне ОС. По умолчанию он отключен, а это означает, что настройки ОС по умолчанию имеют приоритет. Если включены оба флага и FORCE_ENABLE_HEVC_SUPPORT , ОС игнорирует оба флага.

FORCE_ENABLE_HEVC_SUPPORT

Идентификатор изменения: 174228127
Состояние по умолчанию : отключено для всех приложений.

Принудительно включить поддержку мультимедийных возможностей HEVC. Приложения должны объявлять поддерживаемые мультимедийные возможности в своем манифесте, но этот флаг можно использовать, чтобы заставить приложение поддерживать HEVC, что позволит избежать перекодирования при доступе к мультимедиа, закодированному в HEVC. Установка этого флага отменяет любые настройки по умолчанию для приложений на уровне ОС. По умолчанию он отключен, а это означает, что настройки ОС по умолчанию будут иметь приоритет. Если оба флага и FORCE_DISABLE_HEVC_SUPPORT включены, ОС игнорирует оба флага.

FORCE_NON_RESIZE_APP

Идентификатор изменения: 181146395
Состояние по умолчанию : отключено для всех приложений.

Принудительно запрещает изменение размера пакетов, к которым он применяется.

FORCE_RESIZE_APP

Идентификатор изменения: 174042936
Состояние по умолчанию : отключено для всех приложений.

Принудительно изменяет размер пакетов, к которым он применяется. Мы разрешаем изменение размера только в полноэкранном оконном режиме, но не переводим приложение в многооконный режим с изменяемым размером.

GWP_ASAN

Идентификатор изменения: 145634846
Состояние по умолчанию : отключено для всех приложений.

Включает выборочное обнаружение ошибок встроенной памяти в приложениях.

Дополнительную информацию об использовании GWP-ASan см. в руководстве GWP-ASan .

IMPLICIT_INTENTS_ONLY_MATCH_EXPORTED_COMPONENTS

Идентификатор изменения: 229362273
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и выше, компоненты необходимо экспортировать, чтобы вызывать их посредством неявных намерений. Если компонент не экспортируется и не вызывается, он удаляется из списка получателей. Это касается конкретно мероприятий и трансляций.

Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 14, посвященный ограничениям неявных и ожидающих намерений .

Идентификатор изменения: 266201607
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и выше, приложения должны запрашивать у пользователя согласие перед каждым сеансом захвата MediaProjection .

Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 14 о том, как требуется согласие пользователя для каждого сеанса захвата MediaProjection .

NATIVE_HEAP_ZERO_INIT

Идентификатор изменения: 178038272
Состояние по умолчанию : отключено для всех приложений.

Включите автоматическую инициализацию нулями выделений собственной кучи.

NATIVE_MEMTAG_ASYNC

Идентификатор изменения: 145772972
Состояние по умолчанию : отключено для всех приложений.

Включите в этом процессе асинхронную (ASYNC) проверку тегов памяти. Этот флаг влияет только на оборудование, поддерживающее расширение маркировки памяти ARM (MTE).

NATIVE_MEMTAG_SYNC

Идентификатор изменения: 177438394
Состояние по умолчанию : отключено для всех приложений.

Включает синхронную проверку тегов памяти (SYNC) в этом процессе. Этот флаг влияет только на оборудование, поддерживающее расширение маркировки памяти ARM (MTE). Если включены и NATIVE_MEMTAG_ASYNC , и этот параметр, этот параметр имеет приоритет, и MTE включается в режиме SYNC.

OVERRIDE_ANY_ORIENTATION

Идентификатор изменения: 265464455
Состояние по умолчанию : отключено для всех приложений.

Если это изменение включено, оно позволяет применять следующие переопределения ориентации независимо от ориентации, запрошенной действием:

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

Идентификатор изменения: 191514214
Состояние по умолчанию : отключено для всех приложений.

Если это изменение включено, это изменение заставляет пакеты, к которым оно применяется, игнорировать текущее значение android:resizeableActivity , а также целевой SDK, равный или меньше M, и считать действие неизменяемым. В этом случае значение поворота и обрезки камеры зависит только от необходимой компенсации с учетом текущего поворота дисплея.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

Идентификатор изменения: 189229956
Состояние по умолчанию : отключено для всех приложений.

Если это изменение включено, пакеты, к которым оно применяется, переопределяют поведение поворота и обрезки камеры по умолчанию и всегда возвращают CaptureRequest.SCALER_ROTATE_AND_CROP_NONE .

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

Идентификатор изменения: 266124927
Состояние по умолчанию : отключено для всех приложений.

Включает SCREEN_ORIENTATION_REVERSE_LANDSCAPE для приложения, к которому оно применено. Если также не включен OVERRIDE_ANY_ORIENTATION , SCREEN_ORIENTATION_REVERSE_LANDSCAPE используется только тогда, когда действие указывает альбомную ориентацию. Включение этого изменения может помочь вам проверить поведение вашего приложения на предмет различий между устройствами, на которых альбомная ориентация соответствует Surface.ROTATION_90 , и устройствами, на которых она соответствует Surface.ROTATION_270 .

OVERRIDE_MIN_ASPECT_RATIO

Идентификатор изменения: 174042980
Состояние по умолчанию : отключено для всех приложений.

Это изменение является хранителем всех изменений, которые требуют заданного минимального соотношения сторон. Включение этого изменения позволяет применять следующие минимальные соотношения сторон:

Когда это изменение включено для пакета приложения, минимальное соотношение сторон, указанное в манифесте приложения, переопределяется на максимальное разрешенное соотношение сторон, если только значение манифеста приложения не выше.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

Идентификатор изменения: 218959984
Состояние по умолчанию : отключено для всех приложений.

Если этот параметр включен, переопределяет ограничение минимального соотношения сторон в полноэкранном режиме книжной ориентации, чтобы использовать все доступное пространство экрана.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

Идентификатор изменения: 180326787
Состояние по умолчанию : отключено для всех приложений.

Если OVERRIDE_MIN_ASPECT_RATIO также включен, включение этого изменения для пакета устанавливает для минимального соотношения сторон действия большое значение, определенное в OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE .

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

Идентификатор изменения: 180326845
Состояние по умолчанию : отключено для всех приложений.

Если OVERRIDE_MIN_ASPECT_RATIO также включен, включение этого изменения для пакета устанавливает минимальное соотношение сторон действия на среднее значение, определенное OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE .

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

Идентификатор изменения: 203647190
Состояние по умолчанию : включено для всех приложений.

Если также включен OVERRIDE_MIN_ASPECT_RATIO , это изменение ограничивает любые другие изменения, которые заставляют минимальное соотношение сторон действия принимать определенное значение, например OVERRIDE_MIN_ASPECT_RATIO_LARGE и OVERRIDE_MIN_ASPECT_RATIO_MEDIUM , действиями, которые также имеют книжную ориентацию.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

Идентификатор изменения: 236283604
Состояние по умолчанию : отключено для всех приложений.

Если это изменение включено, это изменение исключает пакеты, к которым применяется, из ограничений игнорирования ориентации, которые могут установить производители устройств.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

Идентификатор изменения: 265451093
Состояние по умолчанию : отключено для всех приложений.

Включает SCREEN_ORIENTATION_NOSENSOR для приложения, к которому он применен. Если также не включен OVERRIDE_ANY_ORIENTATION , SCREEN_ORIENTATION_NOSENSOR используется только тогда, когда действие не указывает никакой другой фиксированной ориентации.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

Идентификатор изменения: 265452344
Состояние по умолчанию : отключено для всех приложений.

Включает SCREEN_ORIENTATION_PORTRAIT для приложения, к которому он применен. Если также не включен OVERRIDE_ANY_ORIENTATION , SCREEN_ORIENTATION_PORTRAIT используется только тогда, когда действие не указывает никакой другой фиксированной ориентации.

RATE_LIMIT_TOASTS

Идентификатор изменения: 174840628
Состояние по умолчанию : это изменение невозможно переключить. Это регистрируется только платформой совместимости.

Включает ограничение количества вызовов Toast.show() чтобы не перегружать пользователя слишком большим количеством всплывающих уведомлений за ограниченное время. Любая попытка показать больше всплывающих уведомлений, чем разрешено в течение определенного периода времени, приводит к отмене всплывающего уведомления.

REJECT_NEGATIVE_NETWORK_ESTIMATES

Идентификатор изменения: 253665015
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Если этот параметр включен, требуется, чтобы предполагаемые сетевые байты были неотрицательными.

REQUIRE_NETWORK_CONSTRAINT_FOR_NETWORK_JOB_WORK_ITEMS

Идентификатор изменения: 241104082
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и более поздних версий, требуется, чтобы задание размещения указывало сетевое ограничение, если включенный JobWorkItem указывает на использование сети.

REQUIRE_NETWORK_PERMISSIONS_FOR_CONNECTIVITY_JOBS

Идентификатор изменения: 271850009
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и более поздних версий, требуется, чтобы приложения указывали разрешения INTERNET и ACCESS_NETWORK_STATE при планировании задания с ограничением подключения.

THROW_ON_INVALID_DATA_TRANSFER_IMPLEMENTATION

Идентификатор изменения: 255371817
Состояние по умолчанию : включено для приложений, ориентированных на Android 14 (уровень API 34) или выше.

Для приложений, предназначенных для Android 14 (уровень API 34) и выше, система выдает исключение, если приложение не реализует должным образом все необходимые API передачи данных при указании задания на передачу данных, инициируемого пользователем.

Чтобы узнать больше об этом изменении, см. страницу, описывающую, как перенести службы приоритетного плана на задания по передаче данных, инициируемые пользователем .

USE_EXPERIMENTAL_COMPONENT_ALIAS

Идентификатор изменения: 196254758
Состояние по умолчанию : отключено для всех приложений.

Если этот параметр включен, система позволяет пакету «android» использовать псевдонимы компонентов.