W przypadku systemu Android 11 lub nowszego moduły pomocnicze interakcji z urządzeniami pakietu Compatibility Test Suite (CTS) umożliwiają dostosowanie sposobu interakcji niektórych testów CTS z interfejsem użytkownika (UI) na określonym urządzeniu. Oznacza to, że czynności takie jak wymiana elementu interfejsu użytkownika, który nie jest objęty dokumentem definicji zgodności systemu Android (CDD) ani dokumentacją interfejsu API, można wykonywać w trakcie zaliczania testu CTS.
Producenci OEM, którzy chcą dostosować interfejs Androida podczas opracowywania produktu i muszą przejść CTS, mogą być w stanie zaimplementować moduły pomocnicze. Jeśli korzystasz z domyślnej implementacji Androida, nie jest wymagana żadna dodatkowa praca.
Implementacja modułów pomocniczych
Wymagania dotyczące dostosowania interfejsu użytkownika
Sprawdź moduły CDD lub Mainline pod kątem wymagań interfejsu użytkownika. Jeśli żądany interfejs użytkownika jest objęty modułami CDD lub Mainline, nie można go dostosować.
Jeśli testy CTS, które wchodzą w interakcję z żądanym interfejsem użytkownika, nie korzystają ze struktury pomocniczej, wówczas tego interfejsu użytkownika nie można dostosować. Współpracuj z właścicielem testu, aby przekonwertować moduł testowy, zanim będzie można zmienić interfejs użytkownika.
W przeciwnym razie możesz dostosować interfejs użytkownika.
Przebieg wdrożenia
- Dostosuj interfejs użytkownika do potrzeb konkretnego produktu.
- Wyznacz istniejące moduły pomocnicze AOSP jako podklasy dla modułów testowych CTS, które muszą współdziałać z interfejsem użytkownika. Zastąp odpowiednio niezbędne interakcje dostosowanym interfejsem użytkownika. Zamienniki różnią się w zależności od rodzaju zmian.
- Podklasy OEM znajdują się w pakiecie OEM, takim jak
com.[oem].cts.helpers
. - Każda podklasa OEM ma nazwę ze wspólnym przedrostkiem, który odróżnia ją od implementacji AOSP, która ma przedrostek
Default
.
- Podklasy OEM znajdują się w pakiecie OEM, takim jak
- Utwórz pomocników w pliku APK, stosując się do konwencji programu uruchamiającego testy.
-
Android.bp
powinien zadeklarowaćandroid_test_helper_app
o tej samej nazwie, co zawarty pakiet. -
AndroidManifest.xml
dla pliku APK musi deklarować właściwość metadanych o nazwieinteraction-helpers-prefix
z wartością prefiksu klasy wybranego w poprzednim punkcie. - Aplikacja powinna zależeć od
cts-helpers-core
,cts-helpers-interfaces
icom.android.cts.helpers.aosp
. Jeśli pomocnicy OEM w pełni zaimplementują wszystkie odpowiednie interfejsy, wówczascom.android.cts.helpers.aosp
jest opcjonalny.
-
- Ustaw właściwość
ro.vendor.cts_interaction_helper_packages
w obrazie urządzenia, aby zawierała nazwę pliku APK. Jeśli chcesz oddzielić implementacje pomocnicze w wielu plikach APK, ta właściwość może zawierać listę pakietów rozdzielonych dwukropkami. - Upewnij się, że plik APK jest dostępny w katalogu
testcases
podczas uruchamiania Tradefed for CTS. W razie potrzeby potwierdź, że wybrano oczekiwaną klasę implementacji pomocniczej, sprawdzając komunikaty logcat. - Opcjonalne, ale wysoce zalecane: prześlij swoją implementację pomocniczą do AOSP lub udostępnij ją do testów przez strony trzecie.
Przykładowa implementacja pomocnika
Na przykład CtsPrintTestCases
oczekuje pomocnika z interfejsem zdefiniowanym w ICtsPrintHelper
. Implementacja AOSP nazywa się com.android.cts.helpers.aosp.DefaultCtsPrintHelper
.
Jeśli dostosujesz interfejs drukowania, możesz utworzyć com.oem.cts.helpers.OemCtsPrintHelper
, który będzie podklasą DefaultCtsPrintHelper
. android_test_helper_app
w Android.bp
nosi nazwę com.oem.cts.helpers
, co powoduje utworzenie com.oem.cts.helpers.apk
i deklaruje prefiks interaction-helpers-prefix
jako Oem
w AndroidManifest.xml
.
Właściwość urządzenia ro.vendor.cts_interaction_helper_packages
jest ustawiona na com.oem.cts.helpers
.
Implementacje referencyjne
Implementacje referencyjne obejmują interfejsy w cts/libs/helpers
i domyślne pomocniki AOSP w cts/helpers
. Interfejs najwyższego poziomu jest udokumentowany w cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java
.
Aby połączyć test CTS z jego pomocnikami, właściciele testów mogą skorzystać z definicji @Rule
udokumentowanej w cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java
.
Każdy moduł CTS korzystający z frameworka i jego oczekiwane zachowanie pomocnika jest udokumentowane w interfejsie zdefiniowanym w cts/libs/helpers/core/src/com/android/cts/helpers
.
Przeprowadzanie testów CTS
Testowanie bez pomocników
Poza jedną właściwością opcja testowania bez pomocników nie istnieje w czasie wykonywania na urządzeniu, ale opcjonalnie modyfikuje sposób interakcji testów CTS z urządzeniem. Jeśli chcesz uruchomić CTS bez implementacji pomocniczych, masz dwie możliwości:
- Usuń właściwość
ro.vendor.cts_interaction_helper_packages
z urządzenia. Uniemożliwia to całkowite wykorzystanie pomocników w tej kompilacji. - Usuń pomocniczy plik APK z katalogu
testcases
przed uruchomieniem CTS. Zapobiega to używaniu pomocników w jakichkolwiek uruchomieniach, dopóki plik APK nie zostanie przywrócony dotestcases
.
Możesz zmienić ustawienia domyślne za pomocą argumentów Tradefed i kontrolki właściwości ro.vendor.cts_interaction_helper_packages
, z której ładowany jest pomocniczy plik APK.
Poniżej znajdują się oczekiwane wartości lub zakresy każdego z dostępnych ustawień.
-
ro.vendor.cts_interaction_helper_packages
to ciąg znaków oddzielony dwukropkami zawierający nazwy pakietów. Może przyjmować dowolną wartość, która jest prawidłowym wyborem pakietu dla implementacji pomocniczej producenta OEM. -
cts-tradefed
akceptuje argumentdevice-interaction-helper:property-name
, który tymczasowo zmienia oczekiwaną właściwość dla jednego przebiegu testu, taki jak--module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp'
. Wartością nazwy właściwości może być dowolna właściwość ustawiona na urządzeniu. Wartość właściwości podlega tym samym ograniczeniom, co właściwośćro.vendor.cts_interaction_helper_packages
opisana powyżej.
Testowanie z dostosowaniami
Domyślnie implementacje referencyjne przechodzą CTS na standardowym systemie Android. Sprawdź, czy wdrożenia partnerów przechodzą CTS z dostosowaniami interfejsu użytkownika. Uruchom dowolne moduły CTS obejmujące dostosowany interfejs użytkownika lub funkcje.
Niektóre moduły lub pomocnicy CTS mogą jeszcze nie obsługiwać niektórych dostosowań.
- Moduł CTS, który wchodzi w interakcję z interfejsem użytkownika, który chcesz dostosować, może nie korzystać ze struktury pomocniczej. Oczekuje się, że moduły CTS zostaną przekonwertowane do platformy pomocniczej w oparciu o zapotrzebowanie i priorytety właściciela testu. Zgłaszaj prośby o konwersję na wczesnym etapie procesu, aby mieć pewność, że konwersja przebiegnie zgodnie z harmonogramem, podobnie jak w przypadku żądania zmian CTS w celu obsługi planowanych funkcji.
- Funkcje udostępniane przez istniejącego pomocnika mogą nie w pełni uwzględniać dostosowania, które chcesz wprowadzić. Funkcje pomocnicze powinny abstrahować od zależności interfejsu użytkownika. Jeśli funkcja pomocnicza pośrednio jest zależna od interfejsu użytkownika, można to potraktować podobnie jak błędy w CTS.