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

Мы продолжим выпускать ежеквартальные выпуски 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 添加了新 API,可帮助您在手势导航中启用预测性返回系统动画,例如“返回主屏幕”动画。通过使用新的 PRIORITY_SYSTEM_NAVIGATION_OBSERVER
注册 onBackInvokedCallback
,您的应用可以在系统处理返回导航时接收常规的 onBackInvoked
调用,而不会影响正常的返回导航流程。
Android 16 还添加了 finishAndRemoveTaskCallback()
和 moveTaskToBackCallback
。通过向 OnBackInvokedDispatcher
注册这些回调,系统可以在调用返回手势时触发特定行为并播放相应的提前动画。
Более богатые тактильные ощущения
自诞生之日起,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()
чтобы определить, какой тип компонента вызвал запуск, что может быть полезно для оптимизации процесса запуска вашего приложения.
Лучший самоанализ работы
API JobScheduler#getPendingJobReason()
возвращает причину, по которой задание может быть ожидающим. Однако задание может быть отложено по нескольким причинам.
В Android 16 мы представляем новый API JobScheduler#getPendingJobReasons(int jobId)
, который возвращает несколько причин, по которым задание находится в состоянии ожидания, из-за как явных ограничений, установленных разработчиком, так и неявных ограничений, установленных системой.
Мы также представляем JobScheduler#getPendingJobReasonsHistory(int jobId)
, который возвращает список последних изменений ограничений.
Мы рекомендуем использовать API, чтобы помочь вам разобраться, почему ваши задания могут не выполняться, особенно если вы наблюдаете снижение показателей успеха определенных задач или имеете ошибки, связанные с задержкой выполнения определенных заданий. Например, не удалось обновить виджеты в фоновом режиме или не удалось вызвать задание предварительной выборки перед запуском приложения.
Это также может помочь вам лучше понять, не выполняются ли определенные задания из-за ограничений, определенных системой, а не из-за явно установленных ограничений.
Адаптивная частота обновления
Android 15 中引入的自适应刷新率 (ARR) 可让受支持硬件上的显示屏刷新率使用离散的 VSync 步长来适应内容帧速率。这不仅降低了功耗,还无需进行可能导致卡顿的模式切换。
Android 16 引入了 hasArrSupport()
和 getSuggestedFrameRate(int)
,同时恢复了 getSupportedRefreshRates()
,以便您的应用更轻松地利用 ARR。RecyclerView 1.4 在从快速滑动或平滑滚动中稳定下来时会在内部支持 ARR,我们将继续努力,将 ARR 支持添加到更多 Jetpack 库中。这篇帧速率文章介绍了许多可用于设置帧速率的 API,以便您的应用可以直接使用 ARR。
API-интерфейсы запаса в ADPF
SystemHealthManager
引入了 getCpuHeadroom
和 getGpuHeadroom
API,旨在为游戏和资源密集型应用提供可用 CPU 和 GPU 资源的估算值。通过这些方法,您可以评估应用或游戏如何以最佳方式改善系统运行状况,尤其是在与用于检测热节流的其他 Android 动态性能框架 (ADPF) API 搭配使用时。
在受支持的设备上使用 CpuHeadroomParams
和 GpuHeadroomParams
,您可以自定义用于计算余量的时间范围,并在平均资源可用性或最低资源可用性之间进行选择。这有助于您相应地减少 CPU 或 GPU 资源用量,从而提升用户体验并延长电池续航时间。
Доступность
В Android 16 добавлены новые API и функции специальных возможностей, которые помогут сделать ваше приложение доступным каждому пользователю.
Улучшенные API специальных возможностей
Android 16 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。
向 TtsSpan 添加了时长
Android 16 使用 TYPE_DURATION
扩展了 TtsSpan
,其中包含 ARG_HOURS
、ARG_MINUTES
和 ARG_SECONDS
。这样,您就可以直接为时长添加注释,确保通过 TalkBack 等服务获得准确且一致的文本转语音输出。
支持具有多个标签的元素
Android 目前允许界面元素从其他元素派生其无障碍功能标签,现在还支持关联多个标签,这是 Web 内容中常见的情况。通过在 AccessibilityNodeInfo
中引入基于列表的 API,Android 可以直接支持这些多标签关系。在进行这项更改的过程中,我们已弃用 AccessibilityNodeInfo#setLabeledBy
和 #getLabeledBy
,改用 #addLabeledBy
、#removeLabeledBy
和 #getLabeledByList
。
改进了对可展开元素的支持
Android 16 添加了无障碍功能 API,可让您传达互动元素(例如菜单和展开式列表)的展开或收起状态。通过使用 setExpandedState
设置展开状态,并使用 CONTENT_CHANGE_TYPE_EXPANDED
内容更改类型调度 TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents,您可以确保 TalkBack 等屏幕阅读器会读出状态更改,从而提供更直观、更包容的用户体验。
不确定进度条
Android 16 添加了 RANGE_TYPE_INDETERMINATE
,让您可以为确定性和不确定性 ProgressBar
微件公开 RangeInfo
,从而让 TalkBack 等服务能够更一致地为进度指示器提供反馈。
三态复选框
Android 16 中的新 AccessibilityNodeInfo
getChecked
和 setChecked(int)
方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isChecked
和 setChecked(boolean)
。
补充说明
如果无障碍服务提供关于 ViewGroup
的说明,则会将来自其子视图的内容标签合并在一起。如果您为 ViewGroup
提供 contentDescription
,无障碍服务会假定您还要覆盖不可聚焦的子视图的说明。如果您想为下拉菜单(例如“字体系列”)添加标签,同时保留当前的无障碍功能选择(例如“Roboto”),这可能会造成问题。Android 16 添加了 setSupplementalDescription
,以便您提供用于提供 ViewGroup
相关信息的文本,而不会覆盖其子项中的信息。
必填表单字段
Android 16 向 AccessibilityNodeInfo
添加了 setFieldRequired
,以便应用可以告知无障碍服务需要输入表单字段。对于填写各种类型表单的用户来说,这是一个重要的场景,即使是简单的必填条款及条件复选框,也能帮助用户始终如一地识别必填字段并在必填字段之间快速导航。
Телефон как микрофонный вход для голосовых вызовов со слуховыми аппаратами LEA
В Android 16 пользователям слуховых аппаратов LE Audio добавлена возможность переключаться между встроенными микрофонами слуховых аппаратов и микрофоном телефона для голосовых вызовов. Это может быть полезно в шумной обстановке или в других ситуациях, когда микрофоны слухового аппарата могут работать некорректно.
Регуляторы громкости окружающей среды для слуховых аппаратов LEA
В Android 16 пользователи слуховых аппаратов LE Audio получают возможность регулировать громкость окружающего звука, улавливаемого микрофонами слухового аппарата. Это может быть полезно в ситуациях, когда фоновый шум слишком громкий или слишком тихий.
Камера
Android 16 расширяет поддержку профессиональных пользователей камер, позволяя использовать гибридную автоматическую экспозицию, а также точную настройку цветовой температуры и оттенков. Новый индикатор ночного режима помогает вашему приложению узнать, когда следует переключиться на сеанс камеры в ночном режиме и выйти из него. Новые действия Intent
упрощают съемку движущихся фотографий, и мы продолжаем улучшать изображения UltraHDR за счет поддержки кодирования HEIC и новых параметров из проекта стандарта ISO 21496-1.
Гибридная автоэкспозиция
В Android 16 в Camera2 добавлены новые гибридные режимы автоэкспозиции, позволяющие вручную контролировать определенные аспекты экспозиции, а алгоритм автоэкспозиции (AE) позаботится обо всем остальном. Вы можете управлять ISO + AE и временем экспозиции + AE , что обеспечивает большую гибкость по сравнению с текущим подходом, при котором вы либо имеете полное ручное управление, либо полностью полагаетесь на автоматическую экспозицию.
public void setISOPriority() {
...
int[] availablePriorityModes =
mStaticInfo.getCharacteristics().get(CameraCharacteristics.
COLOR_AE_AVAILABLE_PRIORITY_MODES);
...
// 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);
reqBuilder.set(CaptureRequest.SENSOR_SENSITIVITY,
TEST_SENSITIVITY_VALUE);
CaptureRequest request = reqBuilder.build();
...
}
Точная настройка цветовой температуры и оттенков.
Android 16 增加了对相机的精细色温和色调调整的支持,以更好地支持专业视频录制应用。在较低版本的 Android 中,您可以通过 CONTROL_AWB_MODE
控制白平衡设置,其中包含仅限于预设列表的选项,例如白炽灯、多云和黄昏。COLOR_CORRECTION_MODE_CCT
可让您使用 COLOR_CORRECTION_COLOR_TEMPERATURE
和 COLOR_CORRECTION_COLOR_TINT
根据相关色温精确调整白平衡。
public void setCCT() {
...
Range<Integer> colorTemperatureRange =
mStaticInfo.getCharacteristics().get(CameraCharacteristics.
COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE);
// Set to manual mode to enable CCT mode
reqBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CameraMetadata.CONTROL_AWB_MODE_OFF);
reqBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE,
CameraMetadata.COLOR_CORRECTION_MODE_CCT);
reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE, 5000);
reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TINT, 30);
CaptureRequest request = reqBuilder.build();
...
}
以下示例展示了应用不同色温和色调调整后的照片效果:





Обнаружение сцены в ночном режиме камеры
Чтобы ваше приложение знало, когда переключаться на сеанс камеры в ночном режиме и обратно, в 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

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
,让您可以创作阈值、Sepia 和 Hue Saturation 等复杂效果,并将其应用于绘制调用。从 Android 13 开始,您可以使用 AGSL 创建扩展 Shader
的自定义 RuntimeShader。新 API 反映了这一点,添加了由 AGSL 驱动的 RuntimeColorFilter
(用于扩展 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 在搭载 Wi-Fi 6 的 802.11az 的受支持设备上为 Wi-Fi 位置信息添加了对强大的安全功能的支持,让应用能够将该协议的更高精确性、更高可伸缩性和动态调度与安全增强功能(包括基于 AES-256 的加密和防范中间人攻击)相结合。这样,在近距离使用情形(例如解锁笔记本电脑或车门)时,便可更安全地使用该功能。802.11az 与 Wi-Fi 6 标准集成,可利用其基础架构和功能实现更广泛的采用和更轻松的部署。
Общие API ранжирования
Android 16 включает новый RangingManager
, который позволяет определять расстояние и угол на поддерживаемом оборудовании между локальным и удаленным устройством. RangingManager
поддерживает использование различных технологий определения дальности, таких как зондирование каналов BLE, ранжирование на основе BLE RSSI, сверхширокополосный диапазон и время прохождения сигнала Wi-Fi в оба конца.
СМИ
Android 16 включает в себя множество функций, улучшающих качество мультимедиа.
Улучшения выбора фотографий
照片选择器为用户提供了一种安全的内置授权方式,让用户可以向应用授予对本地存储空间和云端存储空间中所选图片和视频的访问权限,而不是对整个媒体库的访问权限。通过 Google 系统更新和 Google Play 服务组合使用模块化系统组件,该工具向后支持到 Android 4.4(API 级别 19)。只需几行代码即可与相关的 Android Jetpack 库集成。
Android 16 对照片选择器进行了以下改进:
- 嵌入式照片选择器:新 API,可让应用将照片选择器嵌入其视图层次结构中。这样,它就感觉像是应用中更为集成的一部分,同时仍可利用进程隔离功能,让用户能够选择媒体,而无需应用拥有过于宽泛的权限。为了最大限度地提高跨平台版本的兼容性并简化集成,如果您想集成嵌入式照片选择器,则需要使用即将推出的 Android Jetpack 库。
- 照片选择器中的云搜索:新的 API 可让 Android 照片选择器从云端媒体提供商中进行搜索。照片选择器中的搜索功能即将推出。
Расширенное профессиональное видео
В Android 16 появилась поддержка кодека Advanced Professional Video (APV), который предназначен для использования для записи видео высокого качества профессионального уровня и постобработки.
Стандарт кодека APV имеет следующие особенности:
- Качество видео без потерь (близкое к качеству необработанного видео)
- Низкая сложность и высокая пропускная способность внутрикадрового кодирования (без прогнозирования области пикселей) для лучшей поддержки рабочих процессов редактирования.
- Поддержка диапазона высоких скоростей передачи данных до нескольких Гбит/с для контента с разрешением 2K, 4K и 8K, обеспечиваемая облегченной схемой энтропийного кодирования.
- Мозаичное разделение кадров для иммерсивного контента и включения параллельного кодирования и декодирования.
- Поддержка различных форматов выборки цветности и битовой глубины.
- Поддержка многократного декодирования и перекодирования без серьезного ухудшения качества изображения.
- Поддержка многопросмотрового видео и вспомогательного видео, такого как глубина, альфа и предварительный просмотр.
- Поддержка HDR10/10+ и пользовательских метаданных.
Эталонная реализация APV предоставляется в рамках проекта OpenAPV . В Android 16 будет реализована поддержка профиля APV 422-10, который обеспечивает выборку цвета YUV 422 вместе с 10-битным кодированием и целевым битрейтом до 2 Гбит/с.
Конфиденциальность
Android 16 включает в себя множество функций, которые помогают разработчикам приложений защищать конфиденциальность пользователей.
Обновления Health Connect
Health Connect в предварительной версии для разработчиков добавляет ACTIVITY_INTENSITY
, новый тип данных, определенный в соответствии с рекомендациями Всемирной организации здравоохранения в отношении умеренной и активной активности. Для каждой записи необходимо указать время начала и окончания, а также умеренную или высокую интенсивность активности.
Health Connect также содержит обновленные API, поддерживающие медицинские записи. Это позволяет приложениям читать и записывать медицинские записи в формате FHIR с явного согласия пользователя. Этот API находится в программе раннего доступа. Если вы хотите принять участие, зарегистрируйтесь и станьте частью нашей программы раннего доступа .
Песочница конфиденциальности на Android
Android 16 中集成了最新版本的 Privacy Sandbox on Android,这是我们持续致力于开发可让用户放心地知道其隐私受到保护的技术的一部分。您可以访问我们的网站,详细了解 Privacy Sandbox on Android 开发者 Beta 版计划,以便顺利上手。不妨了解 SDK 运行时,它可让 SDK 在与其所服务的应用分离的专用运行时环境中运行,从而为用户数据收集和共享提供更强的保护措施。
Безопасность
Android 16 включает функции, которые помогут вам повысить безопасность вашего приложения и защитить его данные.
API обмена ключами
Android 16 添加了一些 API,这些 API 支持与其他应用共享对 Android Keystore 密钥的访问权限。新的 KeyStoreManager
类支持按应用 uid 授予和撤消对密钥的访问权限,并包含一个供应用访问共享密钥的 API。
Форм-факторы устройств
Android 16 предоставляет вашим приложениям поддержку, позволяющую максимально эффективно использовать форм-факторы Android.
Стандартизированная система качества изображения и звука для телевизоров
Android 16 中的新 MediaQuality
软件包公开了一组标准化 API,用于访问音频和图片配置文件以及与硬件相关的设置。这样,在线播放应用就可以查询配置文件并将其动态应用于媒体:
- 使用更大动态范围进行母版制作的电影需要更高的色彩准确度,才能看清阴影中的细微细节并根据环境光线进行调整,因此,最好使用色彩准确度优先于亮度的配置文件。
- 体育赛事直播通常采用较窄的动态范围进行母版制作,但通常是在白天观看,因此偏向亮度而非色彩准确度的配置文件可以获得更好的效果。
- 完全交互式内容需要尽可能减少处理以缩短延迟时间,并且需要更高的帧速率,因此许多电视都附带游戏配置文件。
借助此 API,应用可以在个人资料之间切换,用户可以享受调整支持的电视,以便尽可能适合其内容。
Интернационализация
В Android 16 добавлены функции и возможности, которые улучшают взаимодействие с пользователем при использовании устройства на разных языках.
Вертикальный текст
Android 16 添加了对垂直渲染和测量文本的低级支持,以便为库开发者提供基本的垂直书写支持。这对于日语等通常使用竖向书写系统的语言特别有用。Paint
类中添加了一个新标志 VERTICAL_TEXT_FLAG
。使用 Paint.setFlags
设置此标志后,Paint 的文本测量 API 将报告垂直进度,而不是水平进度,并且 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 мм» для пользователя, который настроил свой телефон на английский язык (Дания) или использует свой телефон на английском языке (США) с метрической системой в качестве предпочтительной системы измерения.
Чтобы найти эти настройки, откройте приложение «Настройки» и выберите «Система» > «Языки и регион» .