W Androidzie 16 QPR2 wprowadziliśmy odczyt jednostki przetwarzania wyświetlania obrazu (DPU) w wersji produkcyjnej. Odczyt DPU został wprowadzony w Androidzie 9, aby testować dane wyjściowe kompozytora sprzętowego (HWC) przy użyciu bloku sprzętowego do „odczytywania” pikseli na ekranie do pamięci dostępnej dla procesora. Odczyt DPU możesz stosować w środowisku produkcyjnym w przypadku zastosowań, które wymagają przechwytywania treści pełnoekranowych.
Przypadki użycia
Sprzęt do odczytu jest odpowiedni w przypadku:
animacje, które wymagają przekształcenia statycznego stanu całego ekranu, np. animacje wyłączania;
Zastosowania sztucznej inteligencji (AI), które wymagają znajomości treści ekranu w bezpiecznej enklawie
Automatyczne testowanie
Sprzęt do odczytywania nie nadaje się do:
rejestrowanie podzbioru stanu ekranu, który wyklucza lub ukrywa inne widoczne treści wyświetlane na ekranie;
przechwytywanie treści chronionych DRM i przesyłanie ich do niezabezpieczonego środowiska;
Włączanie odczytywania
Aby włączyć odczytywanie:
Użyj
IComposerClient::getReadbackBufferAttributes, aby określić, że implementacja HWC raportuje atrybuty bufora odczytu.Włącz właściwość systemową
debug.sf.productionize_readback_screenshot.Sygnalizuje to systemowi, że odczyt DPU działa prawidłowo i nie zawiera błędów wizualnych, a także jest gotowy do użytku produkcyjnego.
Użyj interfejsu API systemu
ScreenCapture, aby poprosić o zrzut ekranu obsługiwany przez DPU. System próbuje w miarę możliwości używać odczytu DPU, ale klienci API mogą tego wymagać, przekazując flagęCAPTURE_MODE_REQUIRE_OPTIMIZED.
Testowanie odczytu
Zalecamy przetestowanie wielu ścieżek użytkownika, zwracając szczególną uwagę na wydajność, poprawność i pobór mocy. 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 niezamierzona zmiana koloru.