Odczyt DPU w wersji produkcyjnej

W Androidzie 16 QPR2 wprowadzono odczyt z jednostki przetwarzania wyświetlacza (DPU) w środowisku produkcyjnym. Odczyt z DPU został wprowadzony w Androidzie 9 w celu testowania danych wyjściowych Hardware Composer (HWC) z wykorzystaniem bloku sprzętowego do „odczytywania” pikseli na ekranie do pamięci dostępnej dla procesora. Odczyt z DPU możesz stosować w środowisku produkcyjnym w przypadkach użycia, które wymagają przechwytywania treści na pełnym ekranie.

Przypadki użycia

Sprzęt do odczytu nadaje się do:

  • animacji, które wymagają przekształcenia statycznego stanu całego ekranu, np. animacji wyłączania;

  • przypadków użycia sztucznej inteligencji, które wymagają znajomości treści ekranu w bezpiecznym enklawie;

  • automatycznych testów.

Sprzęt do odczytu nie nadaje się do:

  • przechwytywania podzbioru stanu ekranu, który wyklucza lub ukrywa inne widoczne treści na ekranie;

  • przechwytywania treści chronionych DRM i przesyłania ich do niezabezpieczonego środowiska.

Włączanie odczytu

Aby włączyć odczyt:

  1. Użyj IComposerClient::getReadbackBufferAttributes, aby określić, że implementacja HWC zgłasza atrybuty bufora odczytu.

  2. Włącz właściwość systemową debug.sf.productionize_readback_screenshot.

    Sygnalizuje to systemowi, że odczyt z DPU jest wydajny, nie zawiera błędów wizualnych i jest gotowy do użytku w środowisku produkcyjnym.

  3. Użyj ScreenCapture systemowego interfejsu API, aby poprosić o zrzut ekranu obsługiwany przez DPU. Jeśli to możliwe, system próbuje użyć odczytu z DPU, ale klienci API mogą tego wymagać, przekazując flagę CAPTURE_MODE_REQUIRE_OPTIMIZED.

Testowanie odczytu

Zalecamy testowanie wielu ścieżek użytkownika, koncentrując się na wydajności, poprawności i zużyciu energii. Przetestuj wymienione wcześniej przypadki użycia, aby sprawdzić, czy wydajność jest zadowalająca i czy nie występują błędy wizualne, takie jak migotanie ekranu lub niezamierzone przesunięcie kolorów.