已正式发布的 DPU 回读

Android 16 QPR2 引入了已投入生产的显示处理单元 (DPU) 回读功能。DPU 回读功能最初在 Android 9 中引入,用于测试硬件混合渲染器 (HWC) 输出,利用硬件块将屏幕上的像素“回读”到 CPU 可访问的内存中。您可以在生产环境中使用 DPU 回读,以满足需要捕获全屏内容的用例。

用例

读回硬件适用于:

  • 需要转换整个屏幕的静态状态的动画,例如关机动画

  • 需要在安全飞地中了解屏幕内容的人工智能 (AI) 用例

  • 自动测试

读回硬件不适合以下情况:

  • 捕获屏幕状态的子集,排除或隐藏其他可见的屏幕内容

  • 捕获受 DRM 保护的内容并将其传输到不安全的环境

启用朗读功能

如需启用回读,请执行以下操作:

  1. 使用 IComposerClient::getReadbackBufferAttributes 指定 HWC 实现报告回读缓冲区属性。

  2. 启用 debug.sf.productionize_readback_screenshot 系统属性。

    这会向系统发出信号,表明 DPU 回读性能良好且没有视觉 bug,可以用于生产。

  3. 使用 ScreenCapture 系统 API 请求由 DPU 支持的屏幕截图。系统会尽可能尝试使用 DPU 回读,但 API 客户端可以通过传递 CAPTURE_MODE_REQUIRE_OPTIMIZED 标志来要求使用 DPU 回读。

测试回读

我们建议您测试多个用户历程,重点关注性能、正确性和功耗。测试前面列出的使用情形,以验证性能是否令人满意,以及是否存在视觉 bug,例如屏幕闪烁或意外的颜色偏移。