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

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

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

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

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

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

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

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

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

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

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

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

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

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

Если этот параметр включен, isSessionConfigurationSupported также проверяет совместимость параметров сеанса, если они поддерживаются HAL.

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

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

Если этот параметр включен, создатель PendingIntent по умолчанию блокирует запуск фоновой активности .

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

DEPRECATE_UI_FONT

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

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

Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 15 о том, что для атрибута ElegantTextHeight по умолчанию установлено значение true .

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% от вертикального и горизонтального разрешения реального дисплея.

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

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

Если этот параметр включен, при использовании Arrays.asList(...).toArray() типом компонента результирующего массива теперь является Object , а не тип элементов базового массива. Итак, следующий код генерирует исключение ClassCastException :

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

В этом случае, чтобы сохранить String как тип компонента в результирующем массиве, вы можете вместо этого использовать Collection.toArray(Object[]) :

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

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

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

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

Если этот параметр включен, чтобы предотвратить проблемы совместимости существующих приложений с использованием ClientTransaction#getActivityToken() , не относящимся к SDK, разрешите только объединение LaunchActivityItem .

ENABLE_MATCH_LOCAL_NETWORK

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

Если этот параметр включен, приложения по умолчанию получают обратные вызовы из локальных сетей. Приложениям, предназначенным для Android 14 (уровень API 34) или более ранней версии, по-прежнему необходимо добавить NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK в NetworkCapabilities запроса NetworkRequest , чтобы получать ConnectivityManager.NetworkCallback из локальных сетей.

ENABLE_STRICT_FORMATTER_VALIDATION

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

Если этот параметр включен, проверка индекса аргумента, флагов, ширины и точности теперь становится более строгой при использовании API String.format() и Formatter.format() .

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

ENFORCE_EDGE_TO_EDGE

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

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

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

ENFORCE_STRICT_QUERY_BUILDER

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

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

FGS_BOOT_COMPLETED_RESTRICTIONS

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

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

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

FGS_INTRODUCE_TIME_LIMITS

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

Если этот параметр включен, службы переднего плана определенных типов имеют ограничение по времени. Если служба переднего плана нарушающего типа не будет остановлена ​​в течение выделенного срока, она получит обратный вызов с использованием Service.onTimeout(int, int) , после чего ее необходимо будет остановить в течение нескольких секунд. Если приложение не сможет этого сделать, оно будет объявлено как ANR.

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

FGS_SAW_RESTRICTIONS

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

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

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

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 .

IS_DEVICE_OWNER_USER_AWARE

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

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

MANAGE_GLOBAL_ZEN_VIA_IMPLICIT_RULES

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

Если этот параметр включен, приложения больше не могут изменять глобальное состояние или политику режима «Не беспокоить» (DND) на устройстве (путем изменения пользовательских настроек или отключения режима «Не беспокоить»). Вместо этого приложения должны внести AutomaticZenRule , которое система объединяет в глобальную политику с существующей схемой наиболее ограничительной политики.

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

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_ANY_ORIENTATION_TO_USER

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

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

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

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

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

В оконном режиме произвольной формы обработка совместимости имитирует работу на портретном устройстве, помещая окно приложения в почтовый ящик и изменяя характеристики камеры на те, которые приложения обычно ожидают от портретного устройства: поворот датчика на 90 и 270 градусов для задней и передней камер соответственно и установка поворота дисплея на 0.

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

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

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

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

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

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

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

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

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

Если этот параметр включен, гарантирует, что пользователям будет предоставлен выбор захвата одного приложения или всего экрана при запуске сеанса MediaProjection , переопределяя использование MediaProjectionConfig#createConfigForDefaultDisplay .

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_LAYOUT_IN_DISPLAY_CUTOUT_MODE

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

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

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_ONLY_FOR_CAMERA

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

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

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 используется только тогда, когда действие не указывает никакой другой фиксированной ориентации.

PARSE_CONTENT_DISPOSITION_USING_RFC_6266

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

Если этот параметр включен, позволяет анализировать заголовки Content-Disposition, соответствующие RFC 6266. В частности, это позволяет анализировать значения filename* , которые могут использовать другую кодировку символов.

RATE_LIMIT_TOASTS

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

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

STREAM_INT_DIFFERS_FROM_NEXT_INT

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

Если этот параметр включен, методы Random.ints() теперь возвращают другую последовательность чисел, чем методы Random.nextInt() . Это следует из изменений в https://bugs.openjdk.org/browse/JDK-8301574 .

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

USE_EXPERIMENTAL_COMPONENT_ALIAS

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

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

USE_NEW_ISO_LOCALE_CODES

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

Если этот параметр включен, языковые коды иврита, идиша и индонезийского языка больше не преобразуются в устаревшие формы (иврит: iw , идиш: ji и индонезийский: in ).

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

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

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

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

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

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

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

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

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

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

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

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

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

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

Если этот параметр включен, isSessionConfigurationSupported также проверяет совместимость параметров сеанса, если они поддерживаются HAL.

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

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

Если этот параметр включен, создатель PendingIntent по умолчанию блокирует запуск фоновой активности .

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

DEPRECATE_UI_FONT

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

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

Чтобы узнать больше об этом изменении, см. раздел на странице изменений поведения Android 15 о том, что для атрибута ElegantTextHeight по умолчанию установлено значение true .

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% от вертикального и горизонтального разрешения реального дисплея.

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

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

Если этот параметр включен, при использовании Arrays.asList(...).toArray() типом компонента результирующего массива теперь является Object , а не тип элементов базового массива. Итак, следующий код генерирует исключение ClassCastException :

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

В этом случае, чтобы сохранить String как тип компонента в результирующем массиве, вы можете вместо этого использовать Collection.toArray(Object[]) :

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

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

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

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

Если этот параметр включен, чтобы предотвратить проблемы совместимости существующих приложений с использованием ClientTransaction#getActivityToken() , не относящимся к SDK, разрешите только объединение LaunchActivityItem .

ENABLE_MATCH_LOCAL_NETWORK

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

Если этот параметр включен, приложения по умолчанию получают обратные вызовы из локальных сетей. Приложениям, предназначенным для Android 14 (уровень API 34) или более ранней версии, по-прежнему необходимо добавить NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK в NetworkCapabilities запроса NetworkRequest , чтобы получать ConnectivityManager.NetworkCallback из локальных сетей.

ENABLE_STRICT_FORMATTER_VALIDATION

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

Если этот параметр включен, проверка индекса аргумента, флагов, ширины и точности теперь становится более строгой при использовании API String.format() и Formatter.format() .

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

ENFORCE_EDGE_TO_EDGE

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

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

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

ENFORCE_STRICT_QUERY_BUILDER

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

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

FGS_BOOT_COMPLETED_RESTRICTIONS

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

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

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

FGS_INTRODUCE_TIME_LIMITS

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

Если этот параметр включен, службы переднего плана определенных типов имеют ограничение по времени. Если служба переднего плана нарушающего типа не будет остановлена ​​в течение выделенного срока, она получит обратный вызов с использованием Service.onTimeout(int, int) , после чего ее необходимо будет остановить в течение нескольких секунд. Если приложение не сможет этого сделать, оно будет объявлено как ANR.

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

FGS_SAW_RESTRICTIONS

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

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

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

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 .

IS_DEVICE_OWNER_USER_AWARE

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

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

MANAGE_GLOBAL_ZEN_VIA_IMPLICIT_RULES

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

Если этот параметр включен, приложения больше не могут изменять глобальное состояние или политику режима «Не беспокоить» (DND) на устройстве (путем изменения пользовательских настроек или отключения режима «Не беспокоить»). Вместо этого приложения должны внести AutomaticZenRule , которое система объединяет в глобальную политику с существующей схемой наиболее ограничительной политики.

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

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_ANY_ORIENTATION_TO_USER

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

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

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

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

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

В оконном режиме произвольной формы обработка совместимости имитирует работу на портретном устройстве, помещая окно приложения в почтовый ящик и изменяя характеристики камеры на те, которые приложения обычно ожидают от портретного устройства: поворот датчика на 90 и 270 градусов для задней и передней камер соответственно и установка поворота дисплея на 0.

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

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

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

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

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

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

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

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

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

Если этот параметр включен, гарантирует, что пользователям будет предоставлен выбор захвата одного приложения или всего экрана при запуске сеанса MediaProjection , переопределяя использование MediaProjectionConfig#createConfigForDefaultDisplay .

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_LAYOUT_IN_DISPLAY_CUTOUT_MODE

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

При включении переопределяет макет в поведении в режиме выреза. Это будет применяться только в том случае, если край до края не будет соблюден.

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_ONLY_FOR_CAMERA

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

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

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 используется только тогда, когда на действие не указывается какая -либо другая фиксированная ориентация.

PARSE_CONTENT_DISPOSITION_USING_RFC_6266

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

При включении позволяет анализировать заголовки дискуссии контента, которые соответствуют RFC 6266. В частности, это позволяет анализировать значения filename* , которые могут использовать другой кодирование символов.

RATE_LIMIT_TOASTS

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

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

STREAM_INT_DIFFERS_FROM_NEXT_INT

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

При включении методы Random.ints() теперь возвращают другую последовательность чисел, чем методы Random.nextInt() . Это следует из изменений в https://bugs.openjdk.org/browse/jdk-8301574 .

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15 об изменениях API OpenJDK» .

USE_EXPERIMENTAL_COMPONENT_ALIAS

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

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

USE_NEW_ISO_LOCALE_CODES

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

При включении языковые коды для иврита, идиша и индонезийцев больше не преобразуются в свои устаревшие формы (иврит: iw , идиш: ji и индонезийский: in ).

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15 об изменениях API OpenJDK» .

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

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

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

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

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

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

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

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

Заключимые изменения в структуре совместимости в Android 15

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

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

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

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

При включении isSessionConfigurationSupported также проверяет совместимость параметров сеанса при поддержке HAL.

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

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

При включении, создатель фона фона фона, создавших PendingIntent блоки по умолчанию.

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15» о запуске защищенной фоновой активности .

DEPRECATE_UI_FONT

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

При включении атрибут elegantTextHeight TextView по умолчанию становится true , когда ваше приложение работает на устройстве с Android 15 или выше, заменив компактный шрифт, используемый по умолчанию, на некоторые сценарии, которые имеют большие вертикальные метрики с тем, который гораздо более читаемым.

Чтобы узнать больше об этом изменении, см. В разделе на странице «Изменения в поведении Android 15 об атрибуте eleganttextheaith» по умолчанию к True .

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% от вертикального и горизонтального разрешения реального дисплея.

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

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

При включении при использовании Arrays.asList(...).toArray() тип компонента полученного массива теперь является Object , а не тип элементов базового массива. Итак, следующий код генерирует исключение ClassCastException :

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

В этом случае, чтобы сохранить String как тип компонента в результирующем массиве, вы можете вместо этого использовать Collection.toArray(Object[]) :

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

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15 об изменениях API OpenJDK» .

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

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

При включении, чтобы предотвратить наличие каких-либо существующих приложений иметь проблемы совместимости приложений с использованием не-SDK ClientTransaction#getActivityToken() , разрешайте только LaunchActivityItem .

ENABLE_MATCH_LOCAL_NETWORK

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

При включении приложения по умолчанию получают сетевые обратные вызовы из локальных сетей. ConnectivityManager.NetworkCallback , нацеленные на Android 14 (API -уровень 34) или более низкие, все еще необходимы для добавления NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK NetworkCapabilities NetworkRequest сети.

ENABLE_STRICT_FORMATTER_VALIDATION

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

При включении, проверка индекса аргументов, флагов, ширины и точности теперь более строгая при использовании API String.format() и Formatter.format() .

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15 об изменениях API OpenJDK» .

ENFORCE_EDGE_TO_EDGE

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

При включении приложения будут по умолчанию по умолчанию на устройствах, работающих на Android 15 или выше.

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15 о принудительном исполнении

ENFORCE_STRICT_QUERY_BUILDER

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

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

FGS_BOOT_COMPLETED_RESTRICTIONS

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

При включении фон службы переднего плана начинается с BOOT_COMPLETED трансляций для всех типов, кроме:

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15» об ограничениях на BOOT_COMPLETED Broadcast Receivers, которые запускают службы переднего плана .

FGS_INTRODUCE_TIME_LIMITS

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

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

Чтобы узнать больше об этом изменении, см. Раздели на странице «Изменения в поведении Android 15 о поведении тайм -аута для синхронизации данных и типов переднего плана».

FGS_SAW_RESTRICTIONS

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

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

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15» об ограничениях на начальные службы переднего плана, в то время как приложение удерживает разрешение SYSTEM_ALERT_WINDOW .

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 .

IS_DEVICE_OWNER_USER_AWARE

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

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

MANAGE_GLOBAL_ZEN_VIA_IMPLICIT_RULES

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

При включении приложения больше не могут менять глобальное состояние или политику «Не беспокоить» (DND) на устройстве (либо путем изменения настройки пользователя, либо отключения режима DND). Вместо этого приложения должны вносить вклад в AutomaticZenRule , которую система объединяет в глобальную политику с существующей наиболее оперативной схемой-политикой.

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

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_ANY_ORIENTATION_TO_USER

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

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

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

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

При включении, исключает пакеты, к переопределению применяется из обработки совместимости камеры в режиме свободной формы для приложений с фиксированной ориентацией.

В режиме окончания свободной формы обработка совместимости имитирует работу на портретном устройстве, путем письма, разбивая окно приложения и изменяя характеристики камеры на то, что обычно ожидают в портретном устройстве: 90 и 270 градусов вращения датчика для задней и передней камеры, соответственно, и настройки вращения дисплея на 0.

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

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

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

При включении это изменение заставляет пакеты, он применяется, чтобы игнорировать текущее значение android:resizeableActivity , а также целевой SDK, равный или ниже, чем Android 6.0 (уровень API 23), и рассматривать действие как нерезидентское. В этом случае значение камеры вращения и обрезки зависит только от необходимой компенсации, учитывая текущее вращение дисплея.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

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

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

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

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

При включении гарантирует, что пользователям представлен выбор захвата одного приложения или всего экрана при начале сеанса MediaProjection , переопределяя использование MediaProjectionConfig#createConfigForDefaultDisplay .

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_LAYOUT_IN_DISPLAY_CUTOUT_MODE

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

При включении переопределяет макет в поведении в режиме выреза. Это будет применяться только в том случае, если край до края не будет соблюден.

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_ONLY_FOR_CAMERA

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

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

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 используется только тогда, когда на действие не указывается какая -либо другая фиксированная ориентация.

PARSE_CONTENT_DISPOSITION_USING_RFC_6266

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

При включении позволяет анализировать заголовки дискуссии контента, которые соответствуют RFC 6266. В частности, это позволяет анализировать значения filename* , которые могут использовать другой кодирование символов.

RATE_LIMIT_TOASTS

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

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

STREAM_INT_DIFFERS_FROM_NEXT_INT

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

При включении методы Random.ints() теперь возвращают другую последовательность чисел, чем методы Random.nextInt() . Это следует из изменений в https://bugs.openjdk.org/browse/jdk-8301574 .

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15 об изменениях API OpenJDK» .

USE_EXPERIMENTAL_COMPONENT_ALIAS

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

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

USE_NEW_ISO_LOCALE_CODES

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

При включении языковые коды для иврита, идиша и индонезийцев больше не преобразуются в свои устаревшие формы (иврит: iw , идиш: ji и индонезийский: in ).

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15 об изменениях API OpenJDK» .

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

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

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

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

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

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

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

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

Заключимые изменения в структуре совместимости в Android 15

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

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

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

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

При включении isSessionConfigurationSupported также проверяет совместимость параметров сеанса при поддержке HAL.

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

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

При включении, создатель фона фона фона, создавших PendingIntent блоки по умолчанию.

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15» о запуске защищенной фоновой активности .

DEPRECATE_UI_FONT

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

При включении атрибут elegantTextHeight TextView по умолчанию становится true , когда ваше приложение работает на устройстве с Android 15 или выше, заменив компактный шрифт, используемый по умолчанию, на некоторые сценарии, которые имеют большие вертикальные метрики с тем, который гораздо более читаемым.

Чтобы узнать больше об этом изменении, см. В разделе на странице «Изменения в поведении Android 15 об атрибуте eleganttextheaith» по умолчанию к True .

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% от вертикального и горизонтального разрешения реального дисплея.

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

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

При включении при использовании Arrays.asList(...).toArray() тип компонента полученного массива теперь является Object , а не тип элементов базового массива. Итак, следующий код генерирует исключение ClassCastException :

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

В этом случае, чтобы сохранить String как тип компонента в результирующем массиве, вы можете вместо этого использовать Collection.toArray(Object[]) :

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

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15 об изменениях API OpenJDK» .

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

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

При включении, чтобы предотвратить наличие каких-либо существующих приложений иметь проблемы совместимости приложений с использованием не-SDK ClientTransaction#getActivityToken() , разрешайте только LaunchActivityItem .

ENABLE_MATCH_LOCAL_NETWORK

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

При включении приложения по умолчанию получают сетевые обратные вызовы из локальных сетей. ConnectivityManager.NetworkCallback , нацеленные на Android 14 (API -уровень 34) или более низкие, все еще необходимы для добавления NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK NetworkCapabilities NetworkRequest сети.

ENABLE_STRICT_FORMATTER_VALIDATION

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

При включении, проверка индекса аргументов, флагов, ширины и точности теперь более строгая при использовании API String.format() и Formatter.format() .

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15 об изменениях API OpenJDK» .

ENFORCE_EDGE_TO_EDGE

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

При включении приложения будут по умолчанию по умолчанию на устройствах, работающих на Android 15 или выше.

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15 о принудительном исполнении

ENFORCE_STRICT_QUERY_BUILDER

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

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

FGS_BOOT_COMPLETED_RESTRICTIONS

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

При включении фон службы переднего плана начинается с BOOT_COMPLETED трансляций для всех типов, кроме:

Чтобы узнать больше об этом изменении, см. Раздел на странице «Изменения в поведении Android 15» об ограничениях на BOOT_COMPLETED Broadcast Receivers, которые запускают службы переднего плана .

FGS_INTRODUCE_TIME_LIMITS

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

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

Чтобы узнать больше об этом изменении, см. Раздели на странице «Изменения в поведении Android 15 о поведении тайм -аута для синхронизации данных и типов переднего плана».

FGS_SAW_RESTRICTIONS

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

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

To learn more about this change, see the section in the Android 15 behavior changes page about Restrictions on starting foreground services while an app holds the SYSTEM_ALERT_WINDOW permission .

FORCE_DISABLE_HEVC_SUPPORT

Идентификатор изменения: 174227820
Default State : Disabled for all apps.

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

FORCE_ENABLE_HEVC_SUPPORT

Идентификатор изменения: 174228127
Default State : Disabled for all apps.

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

FORCE_NON_RESIZE_APP

Change ID: 181146395
Default State : Disabled for all apps.

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

FORCE_RESIZE_APP

Идентификатор изменения: 174042936
Default State : Disabled for all apps.

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

GWP_ASAN

Change ID: 145634846
Default State : Disabled for all apps.

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

To learn more about using GWP-ASan, see the GWP-ASan guide .

IS_DEVICE_OWNER_USER_AWARE

Change ID: 307233716
Default State : Enabled for apps that target Android 15 (API level 35) or higher.

When enabled, the isDeviceOwnerApp(String) method will use the user contained within the context. For apps targeting Android 14 (API level 34) or lower, the user of the calling process will be used ( Process.myUserHandle() ).

MANAGE_GLOBAL_ZEN_VIA_IMPLICIT_RULES

Change ID: 308670109
Default State : Enabled for apps that target Android 15 (API level 35) or higher.

When enabled, apps can no longer change the global state or policy of Do Not Disturb (DND) on a device (either by modifying user settings, or turning off DND mode). Instead, apps must contribute an AutomaticZenRule , which the system combines into a global policy with the existing most-restrictive-policy-wins scheme..

To learn more about this change, see the section in the Android 15 behavior changes page about Changes to when apps can modify the global state of Do Not Disturb mode .

NATIVE_HEAP_ZERO_INIT

Идентификатор изменения: 178038272
Default State : Disabled for all apps.

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

NATIVE_MEMTAG_ASYNC

Change ID: 145772972
Default State : Disabled for all apps.

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

NATIVE_MEMTAG_SYNC

Идентификатор изменения: 177438394
Default State : Disabled for all apps.

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

OVERRIDE_ANY_ORIENTATION

Change ID: 265464455
Default State : Disabled for all apps.

When enabled, this change allows the following orientation overrides to be applied regardless of the orientation requested by the activity:

OVERRIDE_ANY_ORIENTATION_TO_USER

Change ID: 310816437
Default State : Disabled for all apps.

When enabled, enables SCREEN_ORIENTATION_USER , which overrides any orientation requested by the activity. Fixed orientation apps can be overridden to fullscreen on large screen devices with ignoreOrientationRequest enabled with this override.

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

Change ID: 314961188
Default State : Disabled for all apps.

When enabled, excludes the packages the override is applied to from the camera compatibility treatment in free-form windowing mode for fixed-orientation apps.

In free-form windowing mode, the compatibility treatment emulates running on a portrait device by letterboxing the app window and changing the camera characteristics to what apps commonly expect in a portrait device: 90 and 270 degree sensor rotation for back and front cameras, respectively, and setting display rotation to 0.

Use this flag to disable the compatibility treatment for apps that don't respond well to the treatment.

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

Change ID: 191514214
Default State : Disabled for all apps.

When enabled, this change forces the packages it is applied to ignore the current value of android:resizeableActivity as well as target SDK equal to or lower than Android 6.0 (API level 23) and consider the activity as non-resizable. In this case, the value of camera rotate and crop only depends on the needed compensation considering the current display rotation.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

Change ID: 189229956
Default State : Disabled for all apps.

When enabled, this change forces the packages it is applied to override the default camera rotate and crop behavior and always return CaptureRequest.SCALER_ROTATE_AND_CROP_NONE .

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

Change ID: 316897322
Default State : Disabled for all apps.

When enabled, ensures that users are presented with a choice of capturing a single app or the entire screen when initiating a MediaProjection session, overriding the usage of MediaProjectionConfig#createConfigForDefaultDisplay .

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

Change ID: 266124927
Default State : Disabled for all apps.

Enables SCREEN_ORIENTATION_REVERSE_LANDSCAPE for the app it's applied to. Unless OVERRIDE_ANY_ORIENTATION is also enabled, SCREEN_ORIENTATION_REVERSE_LANDSCAPE is used only when the activity specifies landscape orientation. Enabling this change can help you test your app behavior for differences between devices where landscape orientation corresponds to Surface.ROTATION_90 and devices where it corresponds to Surface.ROTATION_270 .

OVERRIDE_LAYOUT_IN_DISPLAY_CUTOUT_MODE

Change ID: 332679525
Default State : Disabled for all apps.

When enabled, overrides the layout in display cutout mode behavior. This will only apply if edge-to-edge is not enforced.

OVERRIDE_MIN_ASPECT_RATIO

Идентификатор изменения: 174042980
Default State : Disabled for all apps.

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

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

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

Change ID: 218959984
Default State : Disabled for all apps.

When enabled, overrides the minimum aspect ratio restriction in portrait fullscreen in order to use all available screen space.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

Идентификатор изменения: 180326787
Default State : Disabled for all apps.

Если 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_ONLY_FOR_CAMERA

Change ID: 325586858
Default State : Disabled for all apps.

When enabled, restricts treatments that force a given min aspect ratio to apply so that they only apply when an app is connected to the camera.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

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

When OVERRIDE_MIN_ASPECT_RATIO is also enabled, this change limits any other changes that force an activity's minimum aspect ratio to a certain value—such as OVERRIDE_MIN_ASPECT_RATIO_LARGE and OVERRIDE_MIN_ASPECT_RATIO_MEDIUM —to activities that also have a portrait orientation.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

Change ID: 236283604
Default State : Disabled for all apps.

When enabled, this change excludes packages that is applied to from the ignore orientation restrictions that device manufacturers can set.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

Change ID: 265451093
Default State : Disabled for all apps.

Enables SCREEN_ORIENTATION_NOSENSOR for the app it's applied to. Unless OVERRIDE_ANY_ORIENTATION is also enabled, SCREEN_ORIENTATION_NOSENSOR is used only when the activity doesn't specify any other fixed orientation.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

Change ID: 265452344
Default State : Disabled for all apps.

Enables SCREEN_ORIENTATION_PORTRAIT for the app it's applied to. Unless OVERRIDE_ANY_ORIENTATION is also enabled, SCREEN_ORIENTATION_PORTRAIT is used only when the activity doesn't specify any other fixed orientation.

PARSE_CONTENT_DISPOSITION_USING_RFC_6266

Change ID: 319400769
Default State : Enabled for apps that target Android 15 (API level 35) or higher.

When enabled, allows parsing of Content-Disposition headers that conform to RFC 6266. In particular, this enables parsing of filename* values that can use a different character encoding.

RATE_LIMIT_TOASTS

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

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

STREAM_INT_DIFFERS_FROM_NEXT_INT

Change ID: 308103782
Default State : Enabled for apps that target Android 15 (API level 35) or higher.

When enabled, the Random.ints() methods now return a different sequence of numbers than the Random.nextInt() methods do. This follows from the changes in https://bugs.openjdk.org/browse/JDK-8301574 .

To learn more about this change, see the section in the Android 15 behavior changes page about OpenJDK API changes .

USE_EXPERIMENTAL_COMPONENT_ALIAS

Change ID: 196254758
Default State : Disabled for all apps.

When enabled, the system allows the "android" package to use component aliases.

USE_NEW_ISO_LOCALE_CODES

Change ID: 291868760
Default State : Enabled for apps that target Android 15 (API level 35) or higher.

When enabled, language codes for Hebrew, Yiddish, and Indonesian are no longer converted to their obsolete forms (Hebrew: iw , Yiddish: ji , and Indonesian: in ).

To learn more about this change, see the section in the Android 15 behavior changes page about OpenJDK API changes .