Функции и API

В Android 16 представлены новые замечательные функции и API для разработчиков. В следующих разделах кратко описаны эти функции, чтобы помочь вам начать работу с соответствующими API.

Подробный список новых, изменённых и удалённых API можно найти в отчёте о различиях в API . Подробнее о новых API см. в справочнике по API Android — новые API выделены для наглядности.

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

Основная функциональность

Android включает в себя новые API, расширяющие основные возможности системы Android.

Два релиза Android API в 2025 году

  • Эта предварительная версия предназначена для следующего основного выпуска Android, запуск которого запланирован на второй квартал 2025 года. Этот выпуск похож на все наши предыдущие выпуски API, в которых мы можем планировать изменения поведения, которые часто привязаны к targetSdkVersion.
  • Мы планируем выпуск основного выпуска на квартал раньше (второй квартал, а не третий квартал в предыдущие годы), чтобы лучше согласовываться с графиком запуска устройств в нашей экосистеме, чтобы больше устройств могли получить основной выпуск Android раньше. Поскольку основной выпуск выйдет во втором квартале, вам нужно будет проводить ежегодное тестирование совместимости на несколько месяцев раньше, чем в предыдущие годы, чтобы убедиться, что ваши приложения готовы.
  • Мы планируем выпустить еще один выпуск в четвертом квартале 2025 года, который также будет включать новые API для разработчиков. Основной выпуск второго квартала станет единственным выпуском в 2025 году, включающим запланированные изменения в поведении, которые могут повлиять на приложения.

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

Хронология выпусков Android в 2025 году с учетом того, что 25кв2        выпуск является основным выпуском, а выпуск 25Q4 — второстепенным выпуском.

Мы продолжим выпускать ежеквартальные выпуски Android. Обновления Q1 и Q3 между выпусками API будут предоставлять дополнительные обновления, которые помогут обеспечить постоянное качество. Мы активно работаем с нашими партнерами по устройствам, чтобы сделать выпуск Q2 доступным как можно большему количеству устройств.

Использование новых API с основными и второстепенными выпусками

Защита блока кода с помощью проверки уровня API сегодня осуществляется с использованием константы SDK_INT с помощью VERSION_CODES . Это будет по-прежнему поддерживаться в основных выпусках Android.

if (SDK_INT >= VERSION_CODES.BAKLAVA) {
  // Use APIs introduced in Android 16
}

Новую константу SDK_INT_FULL можно использовать для проверки API как на основные, так и на второстепенные версии с помощью нового перечисления VERSION_CODES_FULL .

if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
  // Use APIs introduced in a major or minor release
}

Вы также можете использовать метод Build.getMinorSdkVersion() чтобы получить только второстепенную версию SDK.

val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)

Эти API еще не доработаны и могут быть изменены, поэтому, если у вас есть какие-либо вопросы, отправьте нам свой отзыв .

Пользовательский опыт и системный пользовательский интерфейс

Android 16 предоставляет разработчикам приложений и пользователям больше возможностей и гибкости для настройки устройств в соответствии со своими потребностями.

Уведомления, ориентированные на прогресс

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

Notification.ProgressStyle — это новый стиль уведомлений, который позволяет создавать уведомления, ориентированные на прогресс. Ключевые варианты использования включают совместную поездку, доставку и навигацию. В классе Notification.ProgressStyle вы можете обозначать состояния и этапы пути пользователя с помощью точек и сегментов .

Дополнительную информацию см. на странице документации по уведомлениям, ориентированным на прогресс .

Уведомление о ходе выполнения отображается на экране блокировки.
Уведомление, ориентированное на прогресс, отображается в тени уведомлений.

Прогнозируемые обратные обновления

Android 16 adds new APIs to help you enable predictive back system animations in gesture navigation such as the back-to-home animation. Registering the onBackInvokedCallback with the new PRIORITY_SYSTEM_NAVIGATION_OBSERVER allows your app to receive the regular onBackInvoked call whenever the system handles a back navigation without impacting the normal back navigation flow.

Android 16 additionally adds the finishAndRemoveTaskCallback() and moveTaskToBackCallback. By registering these callbacks with the OnBackInvokedDispatcher, the system can trigger specific behaviors and play corresponding ahead-of-time animations when the back gesture is invoked.

Более богатые тактильные ощущения

Android предоставляет контроль над тактильным приводом с момента его создания.

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

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

Производительность и инструменты разработчика

Хотя большая часть нашей работы по повышению вашей производительности сосредоточена вокруг таких инструментов, как Android Studio , Jetpack Compose и библиотеки Android Jetpack , мы всегда ищем способы на платформе помочь вам реализовать ваше видение.

Обработка контента для живых обоев

В Android 16 платформа живых обоев получила новый API контента для решения проблем, связанных с динамическими обоями, управляемыми пользователем. В настоящее время живые обои, включающие пользовательский контент, требуют сложной реализации, ориентированной на конкретные услуги. В Android 16 представлены WallpaperDescription и WallpaperInstance . WallpaperDescription позволяет идентифицировать отдельные экземпляры живых обоев из одного и того же сервиса. Например, обои, экземпляры которых есть как на главном экране, так и на экране блокировки, могут иметь уникальное содержимое в обоих местах. Средство выбора обоев и WallpaperManager используют эти метаданные, чтобы лучше представлять обои пользователям, упрощая процесс создания разнообразных и персонализированных живых обоев.

Производительность и аккумулятор

В Android 16 представлены API, которые помогают собирать информацию о ваших приложениях.

Системное профилирование

ProfilingManager был добавлен в Android 15 , что дает приложениям возможность запрашивать сбор данных профилирования с помощью Perfetto на общедоступных устройствах в полевых условиях. Однако, поскольку это профилирование должно быть запущено из приложения, приложениям будет сложно или невозможно захватить критические потоки, такие как запуски или ANR.

Чтобы помочь в этом, в Android 16 реализовано системное профилирование в ProfilingManager . Приложения могут регистрировать заинтересованность в получении трассировок для определенных триггеров, таких как reportFullyDrawn о холодном стартеFullyDrawn или ANR, а затем система запускает и останавливает трассировку от имени приложения. После завершения трассировки результаты доставляются в каталог данных приложения.

Запустить компонент в ApplicationStartInfo

ApplicationStartInfo был добавлен в Android 15 , что позволяет приложению видеть причины запуска процесса, тип запуска, время запуска, регулирование и другие полезные диагностические данные. В Android 16 добавлен getStartComponent() чтобы определить, какой тип компонента вызвал запуск, что может быть полезно для оптимизации процесса запуска вашего приложения.

Лучшая работа по самоанализу

The JobScheduler#getPendingJobReason() API returns a reason why a job might be pending. However, a job might be pending for multiple reasons.

In Android 16, we are introducing a new API JobScheduler#getPendingJobReasons(int jobId), which returns multiple reasons why a job is pending, due to both explicit constraints set by the developer and implicit constraints set by the system.

We're also introducing JobScheduler#getPendingJobReasonsHistory(int jobId), which returns a list of the most recent constraint changes.

We recommend using the API to help you debug why your jobs may not be executing, especially if you're seeing reduced success rates of certain tasks or have bugs around latency of certain job completion. For example, updating widgets in the background failed to occur or prefetch job failed to be called prior to app start.

This can also better help you understand if certain jobs are not completing due to system defined constraints versus explicitly set constraints.

Адаптивная частота обновления

Адаптивная частота обновления (ARR), представленная в Android 15, позволяет частоте обновления дисплея на поддерживаемом оборудовании адаптироваться к частоте кадров контента с помощью дискретных шагов VSync. Это снижает энергопотребление, устраняя при этом необходимость в переключении режимов, которое может привести к рывкам.

В Android 16 представлены hasArrSupport() и getSuggestedFrameRate(int) при восстановлении getSupportedRefreshRates() , чтобы вашим приложениям было проще использовать преимущества ARR. RecyclerView 1.4 внутренне поддерживает ARR, когда он устанавливается при прокрутке или плавной прокрутке , и мы продолжаем работу по добавлению поддержки ARR в другие библиотеки Jetpack. В этой статье о частоте кадров рассматриваются многие API-интерфейсы, которые вы можете использовать для установки частоты кадров, чтобы ваше приложение могло напрямую использовать ARR.

API-интерфейсы Headroom в ADPF

The SystemHealthManager introduces the getCpuHeadroom and getGpuHeadroom APIs, designed to provide games and resource-intensive apps with estimates of available CPU and GPU resources. These methods offer a way for you to gauge how your app or game can best improve system health, particularly when used in conjunction with other Android Dynamic Performance Framework (ADPF) APIs that detect thermal throttling.

By using CpuHeadroomParams and GpuHeadroomParams on supported devices, you can customize the time window used to compute the headroom and select between average or minimum resource availability. This can help you reduce your CPU or GPU resource usage accordingly, leading to better user experiences and improved battery life.

Доступность

В Android 16 добавлены новые API и функции специальных возможностей, которые помогут вам сделать ваше приложение доступным для каждого пользователя.

Улучшенные API-интерфейсы доступности

В Android 16 добавлены дополнительные API для улучшения семантики пользовательского интерфейса, которые помогают улучшить согласованность для пользователей, которые полагаются на службы специальных возможностей, такие как TalkBack .

Контурный текст для максимальной контрастности текста

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

Android 16 содержит новые API-интерфейсы AccessibilityManager , позволяющие вашим приложениям проверять или регистрировать прослушиватель, чтобы узнать, включен ли этот режим. В первую очередь это касается наборов UI Toolkit, таких как Compose, которые предлагают аналогичный визуальный опыт. Если вы поддерживаете библиотеку UI Toolkit или ваше приложение выполняет настраиваемую отрисовку текста в обход класса android.text.Layout , вы можете использовать это, чтобы узнать, включен ли контурный текст.

Текст с повышенной контрастностью до и после новой функции специальных возможностей контурного текста в Android 16

Длительность добавлена ​​в TtsSpan

Android 16 расширяет TtsSpan с помощью TYPE_DURATION , состоящего из ARG_HOURS , ARG_MINUTES и ARG_SECONDS . Это позволяет напрямую комментировать продолжительность времени, обеспечивая точное и согласованное преобразование текста в речь с помощью таких сервисов, как TalkBack .

Поддержка элементов с несколькими метками

В настоящее время Android позволяет элементам пользовательского интерфейса получать свою метку доступности из другой, а также теперь предлагает возможность связывания нескольких меток, что является распространенным сценарием в веб-контенте. Введя API на основе списков в AccessibilityNodeInfo , Android может напрямую поддерживать эти отношения с несколькими метками. В рамках этого изменения мы отказались от использования AccessibilityNodeInfo#setLabeledBy и #getLabeledBy в пользу #addLabeledBy , #removeLabeledBy и #getLabeledByList .

Улучшенная поддержка расширяемых элементов.

В Android 16 добавлены API специальных возможностей, которые позволяют передавать развернутое или свернутое состояние интерактивных элементов, таких как меню и расширяемые списки. Установив расширенное состояние с помощью setExpandedState и отправив TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents с типом изменения контента CONTENT_CHANGE_TYPE_EXPANDED , вы можете гарантировать, что программы чтения с экрана, такие как TalkBack , сообщают об изменениях состояния, обеспечивая более интуитивно понятный и инклюзивный пользовательский интерфейс.

Неопределенные индикаторы прогресса

В Android 16 добавлен RANGE_TYPE_INDETERMINATE , что дает вам возможность предоставлять RangeInfo как для определенных, так и для неопределенных виджетов ProgressBar , что позволяет таким сервисам, как TalkBack , более последовательно предоставлять обратную связь для индикаторов прогресса.

Флажок с тремя состояниями

Новые методы AccessibilityNodeInfo getChecked и setChecked(int) в Android 16 теперь поддерживают состояние «частично проверено» в дополнение к состояниям «проверено» и «не проверено». Это заменяет устаревшие логические значения isChecked и setChecked(boolean) .

Дополнительные описания

Когда служба доступности описывает ViewGroup , она объединяет метки контента из своих дочерних представлений. Если вы предоставляете contentDescription для ViewGroup , службы специальных возможностей предполагают, что вы также переопределяете описание нефокусируемых дочерних представлений. Это может быть проблематично, если вы хотите пометить элементы как раскрывающийся список (например, «Семейство шрифтов»), сохраняя при этом текущий выбор для доступности (например, «Робото»). В Android 16 добавлен setSupplementalDescription , чтобы вы могли предоставлять текст, предоставляющий информацию о ViewGroup , не переопределяя информацию от ее дочерних элементов.

Обязательные поля формы

В Android 16 добавлен setFieldRequired в AccessibilityNodeInfo , чтобы приложения могли сообщать службе специальных возможностей, что требуется ввести данные в поле формы. Это важный сценарий для пользователей, заполняющих многие типы форм, даже такие простые, как флажок «Обязательные положения и условия», помогающий пользователям последовательно идентифицировать и быстро перемещаться между необходимыми полями.

Телефон как микрофонный вход для голосовых вызовов со слуховыми аппаратами LEA

Android 16 adds the capability for users of LE Audio hearing aids to switch between the built-in microphones on the hearing aids and the microphone on their phone for voice calls. This can be helpful in noisy environments or other situations where the hearing aid's microphones might not perform well.

Регуляторы громкости звука для слуховых аппаратов LEA

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

Камера

В Android 16 улучшена поддержка профессиональных пользователей камер, включая гибридную автоматическую экспозицию, а также точную настройку цветовой температуры и оттенков. Новый индикатор ночного режима помогает вашему приложению определить, когда следует переключаться на ночной режим съёмки и выходить из него. Новые действия Intent упрощают съёмку движущихся объектов, и мы продолжаем улучшать качество изображений UltraHDR, добавляя поддержку кодирования HEIC и новых параметров из проекта стандарта ISO 21496-1.

Гибридная автоэкспозиция

Android 16 adds new hybrid auto-exposure modes to Camera2, allowing you to manually control specific aspects of exposure while letting the auto-exposure (AE) algorithm handle the rest. You can control ISO + AE, and exposure time + AE, providing greater flexibility compared to the current approach where you either have full manual control or rely entirely on auto-exposure.

fun setISOPriority() {
    // ... (Your existing code before the snippet) ...

    val availablePriorityModes = mStaticInfo.characteristics.get(
        CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES
    )

    // ... (Your existing code between the snippets) ...

    // Turn on AE mode to set priority mode
    reqBuilder.set(
        CaptureRequest.CONTROL_AE_MODE,
        CameraMetadata.CONTROL_AE_MODE_ON
    )
    reqBuilder.set(
        CaptureRequest.CONTROL_AE_PRIORITY_MODE,
        CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
    )
    reqBuilder.set(
        CaptureRequest.SENSOR_SENSITIVITY,
        TEST_SENSITIVITY_VALUE
    )
    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after the snippet) ...
}

Точная регулировка цветовой температуры и оттенка

В Android 16 добавлена ​​поддержка камеры для точной настройки цветовой температуры и оттенков для лучшей поддержки профессиональных приложений для записи видео. В предыдущих версиях Android вы могли управлять настройками баланса белого с помощью CONTROL_AWB_MODE , который содержит параметры, ограниченные списком предустановок, таких как «Лампа накаливания» , «Облачно » и «Сумерки» . COLOR_CORRECTION_MODE_CCT позволяет использовать COLOR_CORRECTION_COLOR_TEMPERATURE и COLOR_CORRECTION_COLOR_TINT для точной настройки баланса белого на основе коррелированной цветовой температуры.

fun setCCT() {
    // ... (Your existing code before this point) ...

    val colorTemperatureRange: Range<Int> =
        mStaticInfo.characteristics[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE]

    // Set to manual mode to enable CCT mode
    reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF
    reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30

    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after this point) ...
}

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

Исходное изображение без примененных настроек цветовой температуры или оттенка.
Изображение с цветовой температурой, настроенной на 3000.
Изображение с цветовой температурой, настроенной на 7000.


Изображение с уровнем оттенка, пониженным на 50.
Изображение с уровнем оттенка, увеличенным на 50.

Распознавание сцен в ночном режиме камеры

Чтобы ваше приложение знало, когда переключаться на сеанс камеры в ночном режиме и обратно, в Android 16 добавлен EXTENSION_NIGHT_MODE_INDICATOR . Если поддерживается, он доступен в CaptureResult в Camera2.

Это API, о котором мы кратко упомянули в блоге «Как Instagram позволяет пользователям делать потрясающие фотографии при слабом освещении» . Этот пост представляет собой практическое руководство по реализации ночного режима вместе с практическим примером, который связывает более качественные фотографии в ночном режиме в приложении с увеличением количества фотографий, публикуемых с камеры в приложении.

Действия при захвате фото движения

В Android 16 добавлены стандартные действия Intent — ACTION_MOTION_PHOTO_CAPTURE и ACTION_MOTION_PHOTO_CAPTURE_SECURE , которые запрашивают у приложения камеры захват движущейся фотографии и возврат ее.

Вы должны либо передать дополнительный EXTRA_OUTPUT , чтобы контролировать, куда будет записано изображение, либо Uri через Intent.setClipData(ClipData) . Если вы не установили ClipData , он будет скопирован туда при вызове Context.startActivity(Intent) .

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

Улучшения изображения UltraHDR

Иллюстрация качества изображения стандартного динамического диапазона (SDR) и расширенного динамического диапазона (HDR).

Android 16 продолжает нашу работу по обеспечению потрясающего качества изображения с помощью UltraHDR. Он добавляет поддержку изображений UltraHDR в формате файлов HEIC. Эти изображения получат тип ImageFormat HEIC_ULTRAHDR и будут содержать встроенную карту усиления, аналогичную существующему формату UltraHDR JPEG. Мы также работаем над поддержкой AVIF для UltraHDR, так что следите за обновлениями.

Кроме того, в Android 16 реализованы дополнительные параметры UltraHDR из проекта стандарта ISO 21496-1 , включая возможность получать и устанавливать цветовое пространство, в котором следует применять математические вычисления карты усиления, а также поддержку базовых изображений в кодировке HDR с картами усиления SDR.

Графика

Android 16 включает в себя новейшие графические улучшения, такие как пользовательские графические эффекты с AGSL.

Пользовательские графические эффекты с AGSL

В Android 16 добавлены RuntimeColorFilter и RuntimeXfermode , позволяющие создавать сложные эффекты, такие как «Порог», «Сепия» и «Насыщенность оттенка», и применять их для рисования вызовов. Начиная с Android 13, вы можете использовать AGSL для создания пользовательских RuntimeShaders , расширяющих Shader . Новый API отражает это, добавляя RuntimeColorFilter на базе AGSL, который расширяет ColorFilter , и эффект Xfermode , который позволяет реализовать настраиваемую компоновку и смешивание на основе AGSL между исходными и целевыми пикселями.

private val thresholdEffectString = """
    uniform half threshold;

    half4 main(half4 c) {
        half luminosity = dot(c.rgb, half3(0.2126, 0.7152, 0.0722));
        half bw = step(threshold, luminosity);
        return bw.xxx1 * c.a;
    }"""

fun setCustomColorFilter(paint: Paint) {
   val filter = RuntimeColorFilter(thresholdEffectString)
   filter.setFloatUniform(0.5);
   paint.colorFilter = filter
}

Связность

Android 16 обновляет платформу, предоставляя вашему приложению доступ к новейшим достижениям в области коммуникационных и беспроводных технологий.

С повышенной безопасностью

Android 16 adds support for robust security features in Wi-Fi location on supported devices with Wi-Fi 6's 802.11az, allowing apps to combine the higher accuracy, greater scalability, and dynamic scheduling of the protocol with security enhancements including AES-256-based encryption and protection against MITM attacks. This allows it to be used more safely in proximity use cases, such as unlocking a laptop or a vehicle door. 802.11az is integrated with the Wi-Fi 6 standard, leveraging its infrastructure and capabilities for wider adoption and easier deployment.

Общие API ранжирования

Android 16 включает новый RangingManager , который позволяет определять расстояние и угол на поддерживаемом оборудовании между локальным и удаленным устройством. RangingManager поддерживает использование различных технологий определения дальности, таких как зондирование каналов BLE, ранжирование на основе BLE RSSI, сверхширокополосный диапазон и время прохождения сигнала Wi-Fi в оба конца.

Наличие устройства в диспетчере сопутствующих устройств

In Android 16, new APIs are being introduced for binding your companion app service. Service will be bound when BLE is in range and Bluetooth is connected and service will be unbound when BLE is out of range or Bluetooth is disconnected. App will receives a new 'onDevicePresenceEvent()' callback based on various of DevicePresenceEvent. More details can be found in 'startObservingDevicePresence(ObservingDevicePresenceRequest)'.

СМИ

Android 16 включает в себя ряд функций, улучшающих возможности мультимедиа.

Улучшения в выборе фотографий

Средство выбора фотографий предоставляет пользователям безопасный встроенный способ предоставить вашему приложению доступ к выбранным изображениям и видео как из локального, так и из облачного хранилища, а не ко всей медиатеке. Используя комбинацию модульных системных компонентов через обновления системы Google и службы Google Play , он поддерживается до Android 4.4 (уровень API 19) . Для интеграции требуется всего несколько строк кода с соответствующей библиотекой Android Jetpack .

Android 16 включает следующие улучшения средства выбора фотографий:

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

Продвинутое профессиональное видео

Android 16 introduces support for the Advanced Professional Video (APV) codec which is designed to be used for professional level high quality video recording and post production.

The APV codec standard has the following features:

  • Perceptually lossless video quality (close to raw video quality)
  • Low complexity and high throughput intra-frame-only coding (without pixel domain prediction) to better support editing workflows
  • Support for high bit-rate range up to a few Gbps for 2K, 4K and 8K resolution content, enabled by a lightweight entropy coding scheme
  • Frame tiling for immersive content and for enabling parallel encoding and decoding
  • Support for various chroma sampling formats and bit-depths
  • Support for multiple decoding and re-encoding without severe visual quality degradation
  • Support multi-view video and auxiliary video like depth, alpha, and preview
  • Support for HDR10/10+ and user-defined metadata

A reference implementation of APV is provided through the OpenAPV project. Android 16 will implement support for the APV 422-10 Profile that provides YUV 422 color sampling along with 10-bit encoding and for target bitrates of up to 2Gbps.

Конфиденциальность

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

Обновления Health Connect

Health Connect добавляет ACTIVITY_INTENSITY — тип данных, определенный в соответствии с рекомендациями Всемирной организации здравоохранения относительно умеренной и интенсивной активности. Для каждой записи требуется время начала, время окончания и то, является ли интенсивность активности умеренной или интенсивной.

Health Connect также содержит обновленные API, поддерживающие медицинские записи . Это позволяет приложениям читать и записывать медицинские записи в формате FHIR с явного согласия пользователя.

Privacy Sandbox на Android

Android 16 включает в себя последнюю версию Privacy Sandbox для Android , что является частью нашей постоянной работы по разработке технологий, позволяющих пользователям знать, что их конфиденциальность защищена. На нашем веб-сайте вы найдете дополнительную информацию о бета-программе Privacy Sandbox для разработчиков Android, которая поможет вам начать работу. Ознакомьтесь со средой выполнения SDK , которая позволяет SDK запускаться в выделенной среде выполнения отдельно от приложения, которое они обслуживают, обеспечивая более надежную защиту при сборе и обмене пользовательскими данными.

Безопасность

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

API обмена ключами

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

Форм-факторы устройств

Android 16 позволяет вашим приложениям максимально эффективно использовать возможности форм-факторов Android.

Стандартизированная структура качества изображения и звука для телевизоров

The new MediaQuality package in Android 16 exposes a set of standardized APIs for access to audio and picture profiles and hardware-related settings. This allows streaming apps to query profiles and apply them to media dynamically:

  • Movies mastered with a wider dynamic range require greater color accuracy to see subtle details in shadows and adjust to ambient light, so a profile that prefers color accuracy over brightness may be appropriate.
  • Live sporting events are often mastered with a narrow dynamic range, but are often watched in daylight, so a profile that preferences brightness over color accuracy can give better results.
  • Fully interactive content wants minimal processing to reduce latency, and wants higher frame rates, which is why many TV's ship with a game profile.

The API allows apps to switch between profiles and users to enjoy tuning supported TVs to best suit their content.

Интернационализация

В Android 16 добавлены функции и возможности, которые дополняют пользовательский опыт при использовании устройства на разных языках.

Вертикальный текст

В Android 16 добавлена ​​низкоуровневая поддержка вертикального рендеринга и измерения текста, чтобы обеспечить базовую поддержку вертикального письма для разработчиков библиотек. Это особенно полезно для таких языков, как японский, в которых обычно используются вертикальные системы письма. В класс Paint добавлен новый флаг VERTICAL_TEXT_FLAG . Когда этот флаг установлен с помощью Paint.setFlags , API измерения текста Paint будут сообщать о вертикальном перемещении вместо горизонтального, а Canvas будет рисовать текст вертикально.

val text = "「春は、曙。」"
Box(
    Modifier.padding(innerPadding).background(Color.White).fillMaxSize().drawWithContent {
        drawIntoCanvas { canvas ->
            val paint = Paint().apply { textSize = 64.sp.toPx() }
            // Draw text vertically
            paint.flags = paint.flags or VERTICAL_TEXT_FLAG
            val height = paint.measureText(text)
            canvas.nativeCanvas.drawText(
                text,
                0,
                text.length,
                size.width / 2,
                (size.height - height) / 2,
                paint
            )
        }
    }
) {}

Настройка системы измерений

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

Использование форматтеров может помочь адаптироваться к местным условиям. Например, «0,5 дюйма» на английском языке (США) равно «12,7 мм» для пользователя, который настроил свой телефон на английский язык (Дания) или использует свой телефон на английском языке (США) с метрической системой в качестве предпочтительной системы измерения.

Чтобы найти эти настройки, откройте приложение «Настройки» и выберите «Система» > «Языки и регион» .