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:
Użyj
IComposerClient::getReadbackBufferAttributes, aby określić, że implementacja HWC zgłasza atrybuty bufora odczytu.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.
Użyj
ScreenCapturesystemowego 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.