Odczyt DPU w wersji produkcyjnej

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:

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

  2. 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.

  3. 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.