Android 16 QPR2 では、製品化されたディスプレイ処理ユニット(DPU)のリードバックが導入されました。DPU リードバックは、Hardware Composer(HWC)の出力をテストするために Android 9 で初めて導入されました。ハードウェア ブロックを活用して、画面上のピクセルを CPU アクセス可能なメモリに「リードバック」します。全画面コンテンツのキャプチャが必要なユースケースでは、本番環境で DPU リードバックを使用できます。
ユースケース
読み取りハードウェアは、次のような場合に適しています。
画面全体の静止状態を変換する必要があるアニメーション(電源オフ アニメーションなど)
セキュア エンクレーブ内の画面コンテンツの知識を必要とする人工知能(AI)のユースケース
自動テスト
読み取り専用ハードウェアは、次の用途には適していません。
画面上の他の表示コンテンツを除外または非表示にする画面状態のサブセットをキャプチャする
DRM で保護されたコンテンツをキャプチャして安全でない環境に送信する
読み上げを有効にする
読み上げを有効にするには:
HWC 実装がリードバック バッファ属性をレポートすることを指定するには、
IComposerClient::getReadbackBufferAttributesを使用します。debug.sf.productionize_readback_screenshotシステム プロパティを有効にします。これは、DPU リードバックがパフォーマンスに優れ、視覚的なバグがなく、本番環境での使用の準備ができていることをシステムに通知します。
ScreenCaptureシステム API を使用して、DPU でサポートされるスクリーンショットをリクエストします。システムは可能な限り DPU リードバックを使用しようとしますが、API クライアントはCAPTURE_MODE_REQUIRE_OPTIMIZEDフラグを渡すことでこれを要求できます。
読み取りのテスト
パフォーマンス、正確性、消費電力を重視して、複数のユーザー ジャーニーをテストすることをおすすめします。前述のユースケースをテストして、パフォーマンスが許容範囲内であり、画面のちらつきや意図しない色の変化などの視覚的なバグがないことを確認します。