Skip to content

媒体、图形与性能:相机专业控制、AGSL、UltraHDR、APV 与 ADPF 裕度 ​

本页导读:Android 16 在图形侧给了 AGSL 自定义滤镜/混合与自适应帧率落地 API;相机侧一口气补齐混合自动曝光、色温精确调节、夜间模式指示器与动态照片 Intent;影像格式侧 UltraHDR 扩到 HEIC 并跟进 ISO 21496-1;编解码侧引入专业级 APV;性能侧有 ADPF 的 CPU/GPU 裕度 API 和系统触发的 Perfetto 剖析。本页逐项标版本、给官方链接,并说明「帧 timing」这类话题在 16 的真实官方口径。

版本注记:事实源为官方Android 16 特性页(图形/相机/媒体/性能章节)与行为变更页,核对时间 2026-10。全部特性为 Android 16 / API 36,另有标注除外。

一、能力总表 ​

特性域官方入口
RuntimeColorFilter / RuntimeXfermode(AGSL)图形AGSL 文档
自适应刷新率应用侧 API(hasArrSupport 等)图形/功耗帧率指南
ADPF 裕度:getCpuHeadroom/getGpuHeadroom性能SystemHealthManager 参考
系统触发的 Perfetto 剖析性能ProfilingManager 参考
ApplicationStartInfo.getStartComponent()性能特性页性能节
混合自动曝光(AE 优先级)相机Camera2 文档
色温/色调精确调整(CCT)相机同上
夜间模式指示器 EXTENSION_NIGHT_MODE_INDICATOR相机CaptureResult 参考
动态照片 Intent(ACTION_MOTION_PHOTO_CAPTURE)相机特性页相机节
UltraHDR:HEIC 载体 + ISO 21496-1 参数影像UltraHDR 文档
APV 专业视频编解码编解码MediaFormat 参考
嵌入式照片选择器 + 云搜索媒体平台特性页媒体节
电视标准化画质音质框架(MediaQuality)媒体平台TV 设计入口

二、图形:AGSL 从「自定义 Shader」扩展到「自定义滤镜与混合」 ​

版本注记:Android 16 / API 36。谱系:Android 13(API 33)引入 AGSL RuntimeShader;16 新增两个同族类。

  • 新增 RuntimeColorFilter(扩展 ColorFilter)与 RuntimeXfermode(扩展 Xfermode):用 AGSL 源码字符串定义「源像素→目标像素」的自定义滤镜与合成混合,套进普通 Paint 即可作用于绘制调用。
  • 官方示例是阈值二值化滤镜:uniform 传阈值,main(half4 c) 里算亮度 dot(rgb, 0.2126/0.7152/0.0722) 后 step——等于把过去只能在 RenderEffect/原生层做的效果下沉到 framework 公开 API。
  • 工程意义:Sepia、Hue-Saturation、对比度曲线这类效果不再需要各 app 自带 native 渲染栈;系统可做统一优化。自研图片编辑器/滤镜 SDK 的建议是把效果表逐步 AGSL 化。
  • 文档与语法:AGSL(Android Graphics Shading Language)。

选型速查(16 上给效果找实现方式的顺序):

需求首选说明
单图层调色/滤镜RuntimeColorFilterAGSL 只改写源像素,最便宜
两图层自定义混合RuntimeXfermode控制 src×dst 组合,可做溶解、遮罩类效果
程序化纹理/渐变RuntimeShader(API 33 起)生成型内容,非滤镜
多 pass 复杂管线RenderEffect 组合三者每个 effect 仍是独立小 AGSL

参数注入方式与 RuntimeShader 同族:setFloatUniform(index, value) / setFloatUniform(name, ...) 绑定 AGSL 里的 uniform,逐帧改 uniform 即可做动画滤镜;AGSL 字符串可预编译缓存,避免每帧构造对象。

三、帧率与「帧 timing」:官方给的是 ARR API,不是新时间戳 ​

版本注记:Android 16 / API 36。

  • 自适应刷新率(ARR)落地:ARR 机制本身 Android 15(API 35)引入(用离散 VSync 步长贴合内容帧率省电);Android 16 补上应用侧工具:Display.hasArrSupport()、Display.getSuggestedFrameRate(int),并恢复 getSupportedRefreshRates()。RecyclerView 1.4 已在内部适配 ARR(快滑停稳过程)。全量用法见帧率指南。
  • 帧 timing 话题的 16 真实口径:官方特性页没有新增「帧时间戳/呈现预测」类公开 API;平台侧的呈现数据通路(Frame Pacing/SurfaceFlinger 时间线)继续以 Perfetto trace + Frame Pacing Monitor 作为官方推荐观察面。抓帧 timing 的实操路径写在本项目 tools/02 调试工具链,不在本篇承诺新接口。

为什么不给新 API:呈现时间线数据已可通过 Perfetto 的 gfx/sched 轨道完整还原(vsync、post fence、frame timeline),framework 侧再加公开接口的边际收益低;Google 的选择是把观测做深而不是把内部结构外抛。读 trace 的能力,因此成为 16 时代图形调试的硬要求。

四、性能可观测性:三个新扳手 ​

版本注记:Android 16 / API 36。

4.1 ADPF 裕度 API(Cpu/Gpu Headroom) ​

  • SystemHealthManager 新增 getCpuHeadroom(CpuHeadroomParams) / getGpuHeadroom(GpuHeadroomParams)(参考):给出「现在还能安全用多少 CPU/GPU」的估算值。
  • 参数可选时间窗口与「平均可用 vs 最低可用」口径;官方定位是与热缓解状态检测(ADPF thermal API)配合,让游戏/重负载应用在升温前提前降载,兼顾帧率与电池。
  • ADPF 全家族(性能提示、状态回调、CPU/GPU Workload API)背景见ADPF 主文档。

4.2 系统触发的性能分析(System-triggered profiling) ​

  • Android 15 的 ProfilingManager 只能「应用自己发起 Perfetto 采集」,抓不到冷启动与 ANR 现场;Android 16 允许注册触发器(冷启动到 reportFullyDrawn、ANR),由系统代为启停 trace,产物落应用数据目录。
  • 这是「线上性能归因」的官方正道:以前各家 SDK 靠 hook/轮询凑的启动与 ANR 现场采集,现在一条注册搞定。ANR 现场 trace 的解读见 tools/02。

4.3 启动诊断增强 ​

  • ApplicationStartInfo(Android 15 引入)新增 getStartComponent():区分触发进程启动的组件类型(Activity/服务/广播等),配合既有启动原因/启动时间字段做启动归因。
  • 作业内省(配额调试入口)见 01 页 §二:getPendingJobReasons / getPendingJobReasonsHistory。

五、相机:专业控制的四块新砖 ​

版本注记:Android 16 / API 36,Camera2 面。

5.1 混合自动曝光(Hybrid AE) ​

官方示例的最小形态(Kotlin,特性页原例改写):

kotlin
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, myIsoValue) // 锁 ISO,AE 管快门
  • 过去二选一:全自动 AE 或全手动。16 新增 AE 优先级模式(CONTROL_AE_PRIORITY_MODE_*,配合 CONTROL_AE_MODE_ON):ISO 优先(你锁 SENSOR_SENSITIVITY,AE 管曝光时间)与曝光时间优先(你锁 SENSOR_EXPOSURE_TIME,AE 管 ISO)两种混合形态。
  • 能力探测:CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES。参考:CameraMetadata 常量。

注意取景-拍摄一致性:AE 优先级与 CCT 在预览会话和拍照会话要各下一遍参数,只配一边会出现「预览一个色、成片另一个色」的经典事故;回归用例里把「预览截图 vs 成片主色」做对比。

5.2 精确色温与色调(CCT) ​

  • 旧路径 CONTROL_AWB_MODE 只有白炽/多云/黄昏等预设;新增 COLOR_CORRECTION_MODE_CCT:以相关色温直调,配 COLOR_CORRECTION_COLOR_TEMPERATURE(K 值,范围见 COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE)与 COLOR_CORRECTION_COLOR_TINT(绿-品红轴)。需先 CONTROL_AWB_MODE_OFF。
  • 面向专业录像 app 的手动白平衡需求。

5.3 夜间模式场景指示器 ​

  • CaptureResult 新增 EXTENSION_NIGHT_MODE_INDICATOR:告诉应用「当前场景已被系统判定进/出夜间模式扩展」,UI 可以正确点亮/熄灭夜景标识(探测 CameraCharacteristics 扩展列表)。官方在特性页引用了 Instagram 的低光拍摄案例研究(特性页原文)。

5.4 动态照片拍摄 Intent ​

  • 新标准 Intent:ACTION_MOTION_PHOTO_CAPTURE / ACTION_MOTION_PHOTO_CAPTURE_SECURE,请求相机应用拍动态照片(Motion Photo)并回传;输出用 EXTRA_OUTPUT 或 Intent.setClipData(ClipData) 传 Uri。拍后处理链路(转码/上传)可以少一套私有协议。

六、UltraHDR:载体扩张 + 标准化参数 ​

版本注记:Android 16 / API 36。UltraHDR 基础格式见官方 HDR 图片文档。

  • HEIC 载体:新增 ImageFormat 类型 HEIC_ULTRAHDR(参考),增益图内嵌方式与现有 UltraHDR JPEG 一致;官方明确 AVIF 支持在路上(特性页原文「敬请期待」,尚未交付,别按已上线写排期)。
  • ISO 21496-1 草稿标准参数:增益图色彩空间可查可设;HDR 基底图可配 SDR 增益图。跨设备传递 HDR 亮度意图时不再只靠厂商私有元数据。

落地建议(UltraHDR):新增量以「解码兼容 + 增益图缺失自动回退 SDR」为底线做灰度;编辑类 app 先把增益图当作可调图层暴露(强度/饱和度分离),比一刀切的 HDR 强度滑杆体验好得多。

七、APV:给专业视频工作流的编解码器 ​

版本注记:Android 16 / API 36;MIME 见 MediaFormat.MIMETYPE_VIDEO_APV。

官方列出的 APV(Advanced Professional Video)特性,决定它适合「拍摄-剪辑-交付」链路而不是分发链路:

  • 感知近无损画质;仅帧内编码(无像素域预测),低复杂度高吞吐,天生抗随机访问——剪辑友好。

  • 高码率区间(最高数十 Gbps),面向 2K/4K/8K;轻量熵编码。

  • 帧平铺支持并行编解码与沉浸式内容;多色度采样与位深。

  • 多次解码再编码画质不崩(剪辑管线刚需);多视图与辅助视频(深度/Alpha/预览)。

  • HDR10/10+ 与用户自定义元数据。

  • 对 SoC 的要求在「编码吞吐」而非常规「压缩率」:4K/10bit 422 码率按 GB/min 量级预估存储与传输,拍前检查剩余空间应当成为相机应用接入 APV 的配套交互。

选型提醒:APV 定位是拍摄与中间格式,分发链路仍是 AV1/HEIF 的天下;接入时把「APV 录制 → 剪辑 → 转 AV1 交付」当完整管线规划,别拿它直接当网络分发码流。

  • Android 16 落地 APV 422-10 配置(YUV 422 采样、10 bit,目标码率最高 2 Gbps);参考实现在 OpenAPV 项目。

八、媒体平台组件:选择器、电视与 MediaStore ​

版本注记:Android 16 / API 36。

  • 嵌入式照片选择器:新 API 允许把选择器嵌进应用视图层级(不再整屏跳转),进程隔离与免全库授权的安全模型不变;官方要求经 Android Jetpack 库接入以保跨版本兼容。照片选择器本体是 Mainline 组件 + Play 服务,官方口径后向覆盖到 Android 4.4(API 19)——「媒体组件可单独更新」在 16 的典型例证。
  • 云媒体搜索:选择器新增向云端媒体提供方发起搜索的 API,云相册与本机相册一个选择器收口。落地建议:嵌入式形态务必经 Jetpack 接入,让库替你处理 Mainline 版本碎片;自建「全选/半选」交互的 app 迁移成本最低、收益最直接。
  • 电视 MediaQuality:新软件包公开标准化 API,读取/切换电视的画质音质配置文件(色彩准确度优先 vs 亮度优先 vs 低延迟游戏档),播放类 app 可按内容类型动态选档。
  • MediaStore 版本锁定(target36):getVersion() 每应用唯一化,防指纹;行为细节见 02 页 §九。

九、健康 × 媒体:核实结果 ​

官方 Android 16 特性页的媒体/图形章节没有「健康数据与媒体联动」的条目(2026-10 核对)。健康侧的能力全部集中在 Health Connect 与传感器/连接域,见 05 页 §四;坊间若有「16 健康相册/体征视频」类说法,按传闻/待验证处理,本站不收录。

十、落地与测试清单 ​

  • 相机四件套按「能力探测 → 降级路径」接入:AE 优先级、CCT、夜景指示、动态照片 Intent 都要先查 CameraCharacteristics,没有就回落旧流程;测试必须真机(模拟器 camera2 覆盖有限)。
  • AGSL 滤镜先在内部 demo 里对比新旧渲染栈的帧耗时(用 tools/02 的 gfxinfo/Perfetto 方法),收益确认再迁移。
  • ARR:长列表页在支持机型上验证 hasArrSupport() 分支与 SuggestedFrameRate 对齐(Compose 侧配合 frameRate 修饰符)。
  • 游戏/播放器:headroom API 接入热测试(连续 30 分钟高负载 + 帧率曲线),确认降载动作发生在节流硬墙之前。
  • 线上剖析:注册系统触发 trace(冷启动/ANR),并在隐私合规文档里说明采集范围。
  • APV/UltraHDR 属「拍得出/存得下」能力,服务端转码链路同步升级再开客户入口。
  • 照片选择器嵌入式形态:在 Mainline 旧版本设备上验证 Jetpack 回退路径(整屏模式),避免「新形态崩溃、旧形态没测」两头漏。
  • 系统触发剖析的产物落应用私有目录,注意随应用数据清理策略一并管理,防止 trace 堆积占存储。
  • 相机 Intent 类特性(动态照片)要做「目标相机应用不支持」的 ActivityNotFound 兜底,标准 Intent 不代表人人实现。

十一、三个快答 ​

  • UltraHDR 是 HDR 视频吗? 不是,它是静态图像的 SDR 基底 + 增益图方案(JPEG/HEIC 载体),与 HDR 视频链路(HDR10/10+ 等)并行不混用;电视侧 MediaQuality 管的是播放设备档位选择。
  • getSuggestedFrameRate 和 preferredDisplayMode 什么关系? 前者面向 ARR 内容帧率建议(离散 VSync 步长),后者是固定显示模式切换;长列表省电选 ARR,视频定档选后者,可叠加使用。
  • headroom API 会给出绝对算力值吗? 官方口径是「估算值」,且不同设备/热状态下口径抖动大;用法应是相对趋势判断(余量快速收窄→提前降载),不要拿数值做跨机型对比。

本页小结 ​

本页小结:Android 16 的媒体图形主线是「专业平权」:AGSL 让自定义滤镜进 framework、CCT/混合 AE 让手动控制不再全或无、UltraHDR 用 HEIC 与 ISO 21496-1 把 HDR 图像标准化、APV 给专业视频一个系统级编解码、照片选择器以 Mainline 形态把安全授权模式铺到 API 19。性能侧 getCpuHeadroom/getGpuHeadroom 与系统触发剖析把「热降频前自救」和「现场 trace」变成一等公民。帧 timing 无新公开 API——那是 Perfetto 的地盘,见工具篇。

参考资料 ​

基于 Android 16 / API 36 · 内容为原创整理,转载请注明出处