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 Menedżera okien (WM) opisane poniżej. Te zasady mają zastosowanie do:

  • Wersje Androida, które korzystają z architektury wielookienkowej. Została ona wprowadzona w Androidzie 14 i jest kontynuowana w Androidzie 15 z skalowalnym interfejsem.

  • Skalowalny interfejs Androida i własne implementacje

Stosując te zasady, możesz z wyprzedzeniem uniknąć większości problemów z zgodnością z CTS i testami funkcjonalnymi.

Terminologia

niezmiennik
Warunek logiczny, który pozostaje prawdziwy przez cały czas działania aplikacji i zapewnia jej integralność strukturalną. Niezmiennik działa jako reguła graniczna.
specjalne działanie,
Ta kluczowa aktywność aplikacji, znana też jako aktywność automatycznego interfejsu lub aktywność interfejsu systemu, ma na ekranie wydzielony obszar, który jest zawsze widoczny lub widoczny przez większość czasu, nawet gdy użytkownik naciśnie przycisk Home. Przykładem może być aplikacja do nawigacji głównej lub aplikacja klastrowa.
standardowa aktywność,
Każda standardowa aktywność aplikacji, która nie jest kluczowa 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 implementacjach WM.

Używanie stabilnej konfiguracji podczas uruchamiania aktywności

Każda nowa standardowa aktywność powinna być uruchamiana za pomocą pojedynczego przejścia WM, które ustawia jej ostateczną pozycję, rozmiar i gęstość. Nie wolno wywoływać drugiego przejścia, które zmienia konfigurację okna zadania bazowego (np. rozmiar lub gęstość) bezpośrednio po pierwszym, ponieważ powoduje to zmianę konfiguracji natychmiast po utworzeniu aktywności.

Przenoszenie standardowych aktywności do stanu zatrzymania

Gdy użytkownik przechodzi do zadania lub sceny głównej, musisz przenieść wszystkie uruchomione standardowe działania do stanu zatrzymania, aby zachować przewidywalny cykl życia aplikacji na Androida wymagany przez testy CTS.

Zapobieganie zasłanianiu standardowych treści dotyczących aktywności

Nie rysuj niestandardowych dekoracji ani elementów interfejsu, które zasłaniają zawartość standardowej aktywności. Jeśli rysujesz niestandardowe nakładki (np. niestandardowy pasek sterowania klimatyzacją), musisz zgłosić systemowi ich wymiary za pomocą SystemOverlay wstawień. W przypadku Androida 15 i nowszych wersji używaj DecorPanel w skalowalnym interfejsie.

Ukrywanie nakładek w żądaniu trybu immersyjnego

Gdy aplikacja zażąda trybu pełnoekranowego, musisz ukryć wszystkie tymczasowe elementy niestandardowego interfejsu i usunąć ich wcięcia SystemOverlay. Trwałe przeszkody zakłócają oczekiwania aplikacji dotyczące pikseli.

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

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

Zakłóca to testy elementów interfejsu. Tymczasowo możesz określić ten sam promień zaokrąglenia narożników wyświetlacza, który stosujesz do powierzchni standardowej aktywności.

Zachowanie rozmiaru aplikacji w przypadku prośby o tryb immersyjny

Gdy aplikacja wysyła żądanie przejścia w tryb pełnoekranowy, nie zmieniaj rozmiaru okna aplikacji. Spowoduje to zmianę konfiguracji, która może zakłócić działanie usługi. Zamiast tego, aby zmaksymalizować aplikację, udostępnij przycisk pełnego ekranu, którym użytkownik może sterować.