Android 16 QPR2 引入了已投入生产的显示处理单元 (DPU) 回读功能。DPU 回读功能最初在 Android 9 中引入,用于测试硬件混合渲染器 (HWC) 输出,利用硬件块将屏幕上的像素“回读”到 CPU 可访问的内存中。您可以在生产环境中使用 DPU 回读,以满足需要捕获全屏内容的用例。
用例
读回硬件适用于:
需要转换整个屏幕的静态状态的动画,例如关机动画
需要在安全飞地中了解屏幕内容的人工智能 (AI) 用例
自动测试
读回硬件不适合以下情况:
捕获屏幕状态的子集,排除或隐藏其他可见的屏幕内容
捕获受 DRM 保护的内容并将其传输到不安全的环境
启用朗读功能
如需启用回读,请执行以下操作:
使用
IComposerClient::getReadbackBufferAttributes指定 HWC 实现报告回读缓冲区属性。启用
debug.sf.productionize_readback_screenshot系统属性。这会向系统发出信号,表明 DPU 回读性能良好且没有视觉 bug,可以用于生产。
使用
ScreenCapture系统 API 请求由 DPU 支持的屏幕截图。系统会尽可能尝试使用 DPU 回读,但 API 客户端可以通过传递CAPTURE_MODE_REQUIRE_OPTIMIZED标志来要求使用 DPU 回读。
测试回读
我们建议您测试多个用户历程,重点关注性能、正确性和功耗。测试前面列出的使用情形,以验证性能是否令人满意,以及是否存在视觉 bug,例如屏幕闪烁或意外的颜色偏移。