Zwiększanie zgodności testów z niezmiennikami WindowManager

Aby zapewnić spójne i wysokiej jakości wrażenia użytkownika oraz zapobiec problemom, które prowadzą do niepowodzeń w Compatibility Test Suite (CTS), wdróż podstawowe zasady WindowManager (WM) opisane poniżej. Te zasady pomagają zapewnić zgodność z wytycznymi dotyczącymi jakości aplikacji samochodowych. Te zasady dotyczą:

  • wersji Androida, które korzystają z architektury wielookienkowej, wprowadzonej w Androidzie 14 i kontynuowanej w Androidzie 15 z interfejsem skalowalnym;

  • skalowalnego interfejsu Androida i własnych implementacji.

Stosując się do tych zasad, możesz proaktywnie unikać większości problemów ze zgodnością z CTS i testami funkcjonalnymi.

Terminologia

niezmiennik
Warunek logiczny, który pozostaje prawdziwy przez cały czas działania aplikacji i prowadzi do integralności strukturalnej. Niezmiennik działa jako reguła graniczna.
aktywność specjalna
Znana też jako aktywność interfejsu automatycznego lub aktywność interfejsu systemowego. Ta krytyczna aktywność aplikacji ma na ekranie wydzielony obszar, który jest zawsze widoczny lub widoczny przez większość czasu, nawet gdy użytkownik naciśnie Ekran główny. Może to być np. nawigacja główna lub aplikacja klastra.
aktywność standardowa
Dowolna standardowa aktywność aplikacji, która nie jest krytyczna dla podstawowego interfejsu użytkownika systemu, np. aplikacja multimedialna innej firmy uruchomiona z siatki aplikacji.

Zasady WM

Aby zmaksymalizować zgodność z CTS, stosuj te zasady w swoich implementacjach WM.

Używaj stabilnej konfiguracji podczas uruchamiania aktywności

Każdą nową aktywność standardową uruchamiaj za pomocą pojedynczego przejścia WM, które ustawia jej ostateczne położenie, rozmiar i gęstość. Nie możesz wywoływać drugiego przejścia, które zmienia konfigurację okna bazowego zadania (np. rozmiar lub gęstość) bezpośrednio po pierwszym, ponieważ powoduje to zmianę konfiguracji natychmiast po utworzeniu aktywności.

Przenoszenie aktywności standardowych do stanu zatrzymania

Gdy użytkownik przechodzi do zadania głównego lub sceny głównej, musisz przenieść wszystkie uruchomione aktywności standardowe do stanu zatrzymania, aby zachować przewidywalny cykl życia aplikacji na Androida wymagany przez testy CTS. Więcej informacji o oczekiwaniach dotyczących cyklu życia aplikacji w środowiskach motoryzacyjnych znajdziesz w artykule Zapobieganie używaniu aplikacji, gdy aktywne są ograniczenia dotyczące wrażeń użytkownika.

Zapobieganie zasłanianiu treści aktywności standardowej

Nie rysuj żadnych niestandardowych dekoracji ani elementów interfejsu, które zasłaniają treść aktywności standardowej. Jeśli rysujesz niestandardowe nakładki (np. niestandardowy pasek sterowania klimatyzacją), musisz zgłosić systemowi ich wymiary za pomocą wcięć SystemOverlay. W Androidzie 15 i nowszych wersjach używaj DecorPanel w skalowalnym interfejsie. Aplikacje korzystają z tych wcięć, aby bezpiecznie rozmieszczać treści.

Ukrywanie nakładek na żądanie trybu immersyjnego

Gdy aplikacja zażąda trybu immersyjnego, musisz ukryć wszystkie tymczasowe niestandardowe elementy interfejsu i usunąć ich wcięcia SystemOverlay. Trwałe zasłanianie przeszkadza w spełnianiu oczekiwań aplikacji dotyczących pikseli. Więcej informacji o tym, jak aplikacje żądają trybu immersyjnego i jak go obsługują, znajdziesz w artykule Paski systemowe, tryb immersyjny i renderowanie od krawędzi do krawędzi.

Stosowanie zaokrąglonych rogów tylko na poziomie wyświetlacza

Zaokrąglone rogi stosuj tylko na poziomie wyświetlacza, używając odpowiednich konfiguracji zasobów w frameworks/base. Nie stosuj dowolnych zaokrąglonych rogów do powierzchni aktywności standardowej.

Takie działanie zakłóca testy elementów interfejsu. Tymczasowo możesz określić ten sam promień zaokrąglenia rogów dla wyświetlacza, który stosujesz do powierzchni aktywności standardowej.

Zachowanie rozmiaru aplikacji na żądanie trybu immersyjnego

Gdy aplikacja zażąda przejścia do trybu immersyjnego, nie zmieniaj rozmiaru okna aplikacji. Takie działanie powoduje zakłócającą zmianę konfiguracji. Zamiast tego, aby zmaksymalizować rozmiar aplikacji, udostępnij użytkownikowi przycisk pełnego ekranu.