Aby uruchomić CTS, najpierw przygotuj środowisko fizyczne, komputer stacjonarny i urządzenie z Androidem, którego używasz do testowania.
Środowisko fizyczne
Beacony Bluetooth LE
Jeśli testowane urządzenie obsługuje Bluetooth LE, umieść w odległości 5 metrów od niego co najmniej 3 beacony Bluetooth LE, aby przeprowadzić test skanowania Bluetooth LE. Nie trzeba ich konfigurować ani emitować żadnych konkretnych danych. Mogą to być beacony dowolnego typu, w tym iBeacon, Eddystone czy nawet urządzenia symulujące beacony BLE.
Łącze ultraszerokopasmowe
Jeśli urządzenie do testów obsługuje łącze ultraszerokopasmowe (UWB), inne urządzenie obsługujące UWB musi znajdować się w odpowiedniej odległości i w taki sposób, aby nie było w strefie martwej anteny i strefy martwej strefy radiowej. W przypadku testów dokładności odległości obowiązują określone wymagania dotyczące pozycjonowania i orientacji. Szczegółowe informacje o konfiguracji znajdziesz w artykule Wymagania dotyczące UWB. Test UWB musi być uruchamiany ręcznie. W wierszu poleceń należy określić, które 2 urządzenia znajdują się w odległości 1 metra od siebie. Szczegółowe informacje o podziale na fragmenty, który jest wymagany do przeprowadzenia tego testu, znajdziesz w artykule Local sharding (w języku angielskim).
Aparaty
Podczas przeprowadzania testu CTS aparatu używaj zwykłych warunków oświetleniowych z wykresem wzoru testowego (np. szachownicy). Umieść kartę z wzorcem testowym w odległości odpowiadającej minimalnej odległości ostrości urządzenia testowego, aby nie była ona zbyt blisko obiektywu.
Skieruj czujniki kamery na scenę o wystarczającym oświetleniu, aby testowane czujniki mogły osiągnąć i utrzymać maksymalną skonfigurowaną liczbę klatek na sekundę (FPS), jak określono w CONTROL_AE_TARGET_FPS_RANGE
.
Dotyczy to wszystkich czujników kamery zgłoszonych przez getCameraIdList
, ponieważ test przechodzi przez wymienione urządzenia i mierzy wydajność indywidualnie.
Jeśli urządzenie do testowania obsługuje kamery zewnętrzne, takie jak kamery internetowe USB, podłącz kamerę zewnętrzną podczas uruchamiania CTS. W przeciwnym razie testy CTS się nie powiedzą.
GPS/GNSS
Jeśli urządzenie DUT obsługuje funkcję globalnego systemu pozycjonowania/globalnego systemu nawigacji satelitarnej (GPS/GNSS), podaj sygnał GPS/GNSS na urządzeniu DUT na odpowiednim poziomie sygnału do odbioru i obliczenia lokalizacji GPS. Część GPS musi być zgodna ze standardem ICD-GPS-200C. W innych przypadkach sygnał GPS/GNSS może być dowolnego typu, w tym symulator satelity lub wzmacniacz GPS/GNSS sygnałów zewnętrznych. Można też umieścić DUT w pobliżu okna, aby mógł bezpośrednio odbierać wystarczający sygnał GPS/GNSS.
Wi-Fi i IPv6
Testy CTS wymagają sieci Wi-Fi obsługującej IPv4 i IPv6, która ma połączenie z internetem z działającym DNS-em dla IPv4 i IPv6, obsługuje multicast IP i może traktować DUT jako odizolowanego klienta. Odseparowany klient to konfiguracja, w której urządzenie DUT nie ma widoczności do wiadomości rozgłoszeniowych lub wiadomości z wielu sieci w tym podsieci. Występuje to w przypadku konfiguracji punktu dostępu Wi-Fi (AP) lub uruchomienia DUT na odizolowanej podsieci bez połączenia z innymi urządzeniami.
Jeśli nie masz dostępu do natywnej sieci IPv6, sieci operatora IPv6 ani VPN, aby przejść niektóre testy zależne od IPv6, możesz użyć punktu dostępu Wi-Fi i tunelu IPv6.
Aby przejść CTS, urządzenie DUT musi mieć ustawione flagi UP
, BROADCAST
i MULTICAST
w interfejsie Wi-Fi. Interfejs Wi-Fi musi mieć przypisane adresy IPv4 i IPv6.
Sprawdź właściwości interfejsu Wi-Fi za pomocą adb shell ifconfig
.
W przypadku urządzeń obsługujących współbieżność Wi-Fi STA/STA wymagane są co najmniej 2 sieci Wi-Fi. Aby przejść test CTS, sieci Wi-Fi muszą działać na różnych pasmach z różnymi identyfikatorami SSID lub na tym samym identyfikatorze SSID z różnymi identyfikatorami BSSID.
Wi-Fi RTT
Android zawiera interfejs Wi-Fi RTT API, który umożliwia czas błądzenia (RTT) w sieci Wi-Fi. Pozwala to urządzeniom mierzyć odległość do punktów dostępu z dokładnością 1–2 m, co znacznie zwiększa dokładność lokalizacji w pomieszczeniach. Dwa zalecane urządzenia obsługujące Wi-Fi RTT to Google Wifi i punkt dostępu fitlet2 firmy Compulab (z ustawioną przepustowością 40 MHz w paśmie 5 GHz).
Punkty dostępu powinny być włączone, ale nie wymagają połączenia z siecią. Punkty dostępu nie muszą znajdować się obok urządzenia testowego, ale zaleca się, aby znajdowały się w odległości 1 metra od tego urządzenia. Zwykle wystarczy jeden punkt dostępu. Aby uzyskać spójne wyniki testów CTS RTT Wi-Fi, sprawdź, czy kanał jest słabo wykorzystywany.
Konfiguracja komputera
Uwaga: pakiet CTS obsługuje maszyny z systemem Linux 64-bitowym. CTS nie jest obsługiwany w systemie Windows ani macOS.
FFMPEG
Zainstaluj na maszynie hosta pakiet ffmpeg w wersji 5.1.3 (lub nowszej).
Wymagania dotyczące hosta
Minimalne wymagania dotyczące maszyny hosta CTS to 32 GB pamięci RAM i 256 GB pojemności dysku. Jest to konieczne, aby uwzględnić zwiększoną liczbę przypadków testów CTS i zwiększenie rezerwacji miejsca w kopcu Java w Tradefed.
ADB i AAPT2
Zanim uruchomisz CTS, upewnij się, że masz zainstalowane najnowsze wersje Android Debug Bridge (adb) i Android Asset Packaging Tool (AAPT2) oraz że dodałaś/dodałeś te narzędzia do ścieżki systemowej komputera.
Aby zainstalować ADB i AAPT2, pobierz najnowsze narzędzia platformy Android SDK oraz narzędzia Android SDK do kompilacji z Menedżera pakietu SDK w Android Studio lub za pomocą narzędzia wiersza poleceń sdkmanager.
Upewnij się, że adb
i aapt2
znajdują się na ścieżce systemowej. W tym poleceniu zakładamy, że zarchiwizowane pakiety zostały pobrane do podkatalogu o nazwie android-sdk
w katalogu głównym:
export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>
Java Development Kit (JDK) dla Ubuntu
Zainstaluj odpowiednią wersję pakietu Java Development Kit (JDK).
- W przypadku Androida 11 zainstaluj OpenJDK11.
- W przypadku Androida 9 i 10 zainstaluj OpenJDK 9.
- W przypadku Androida 7.0, 7.1, 8.0 i 8.1 zainstaluj OpenJDK8.
Więcej informacji znajdziesz w wymaganiach dotyczących JDK.
Konfiguracja obsługi Pythona
Zainstaluj virtualenv
na swojej platformie, postępując zgodnie z instrukcjami instalacji.
Aby sprawdzić, czy instalacja się udała, uruchom virtualenv -h
.
Pliki CTS
Pobierz i otwórz pakiety CTS z Compatibility Test Suite Downloads (Pobieranie pakietów Compatibility Test Suite) odpowiadające wersji Androida na Twoich urządzeniach oraz wszystkim interfejsom binarnych aplikacji (ABI), które obsługują Twoje urządzenia.
Pobierz i otwórz najnowszą wersję plików multimedialnych CTS.
Pobieranie plików CTS związanych z Mainline (opcjonalnie)
Gdy po raz pierwszy uruchamiasz wersję CTS, CTS dynamicznie pobiera niektóre pliki CTS związane z Mainline, co wydłuża czas działania o co najmniej 10 minut w zależności od szybkości Twojej sieci.
Aby uniknąć wydłużenia czasu działania CTS, możesz pobrać pliki CTS związane z Mainline przed uruchomieniem wersji CTS, wykonując te instrukcje:
Aby poznać poziom interfejsu API Androida na urządzeniu, wykonaj te czynności:
adb shell getprop ro.build.version.sdk
Aby pobrać pliki Mainline CTS, postępuj zgodnie z instrukcjami w skrypcie
download_mcts.sh
.W zależności od szybkości sieci pobieranie może potrwać co najmniej 10 minut.
Wykrywanie urządzeń
Wykonaj czynności, aby skonfigurować system tak, aby wykrywał urządzenie.
Limit pamięci
W skrypcie cts-tradefed możesz zwiększyć maksymalną ilość pamięci dostępnej podczas testowego uruchomienia. Więcej informacji znajdziesz w przykładowym pliku CL.
Konfiguracja urządzenia z Androidem
Kompilacje użytkownika
Zgodne urządzenie to urządzenie z kompilacją podpisaną za pomocą klucza użytkownika lub klucza wersji. Na urządzeniu musi być zainstalowany obraz systemu oparty na kompatybilnej kompilacji użytkownika (Android 4.0 lub nowszej) z nazwą kodową, tagiem i numerem kompilacji.
Właściwość kompilacji na poziomie pierwszego interfejsu API
Niektóre wymagania CTS zależą od kompilacji, z którą urządzenie zostało pierwotnie dostarczone. Na przykład urządzenia, które pierwotnie były dostarczane z wersjami wcześniejszymi, mogą nie spełniać wymagań systemowych obowiązujących w przypadku urządzeń z późniejszymi wersjami.
Aby udostępnić te informacje CTS, producenci urządzeń mogli zdefiniować właściwość w czasie kompilacji ro.product.first_api_level
. Wartość tej właściwości to pierwszy poziom interfejsu API, z którym urządzenie zostało wprowadzone na rynek.
Producenci urządzeń mogą ponownie wykorzystać wspólną implementację, aby wprowadzić nowy produkt jako uaktualnienie dotychczasowego produktu w tej samej grupie urządzeń. Producenci urządzeń mogą opcjonalnie ustawić poziom interfejsu API istniejącego produktu na ro.product.first_api_level
, aby wymagania dotyczące uaktualnienia były stosowane w przypadku CTS i Treble/VTS.
Aby ustawić tę właściwość, producenci urządzeń mogą zdefiniować wartość PRODUCT_SHIPPING_API_LEVEL
w pliku device.mk
, jak w tym przykładzie:
# PRODUCT_SHIPPING_API_LEVEL sets ro.product.first_api_level to indicate
# the first api level that the device has been commercially launched on.
PRODUCT_SHIPPING_API_LEVEL := 21
Pierwszy poziom API na Androida 9 lub nowszy
W przypadku urządzeń z Androidem 9 lub nowszym ustaw właściwość ro.product.first_api_level
na prawidłową wartość z Kryptonimy, tagi i numery kompilacji.
Pierwszy poziom interfejsu API na Androida 8.x lub starszego
W przypadku urządzeń z Androidem 8.x lub starszym usuń właściwość ro.product.first_api_level
w pierwszej wersji produktu. W przypadku wszystkich kolejnych kompilacji ustaw wartość parametru ro.product.first_api_level
na prawidłową wartość poziomu interfejsu API. Umożliwia to usłudze prawidłowe zidentyfikowanie nowego produktu i zachowanie informacji o pierwszym poziomie interfejsu API tego produktu. Jeśli flaga jest nieustawiona, Android przypisuje Build.VERSION.SDK_INT
do ro.product.first_api_level
.
Pakiety uzupełniające CTS
Android 10 lub nowszy zawiera format pakietu o nazwie APEX. Aby przeprowadzać testy CTS interfejsów API do zarządzania APEX (np. aktualizować APEX-y do nowej wersji lub zgłaszać aktywne APEX-y), musisz wstępnie zainstalować pakiet CtsShimApex
w partycji /system
.
Test walidacji shimu APEX sprawdza implementację CtsShimApex
.
ro.apex.updatable requirements
Jeśli właściwość
ro.apex.updatable
jest ustawiona natrue
, właściwośćCtsShimApex
jest wymagana na wszystkich urządzeniach, które obsługują zarządzanie pakietami APEX.Jeśli brakuje właściwości
ro.apex.updatable
lub nie jest ona skonfigurowana,CtsShimApex
nie musi być wstępnie zainstalowana na urządzeniu.
Test walidacji shimu APEX sprawdza implementację CtsShimApex
.
CtsShim wstępne instalacje i wstępne wczytywanie
Począwszy od Androida 11, CtsShimApex
zawiera 2 wstępnie skompilowane aplikacje (skompilowane z źródeł kompilacji), które nie zawierają żadnego kodu oprócz pliku manifestu. Pakiet CTS używa tych aplikacji do testowania uprawnień i uprawnień.
Jeśli urządzenie nie obsługuje zarządzania pakietami APEX (czyli brakuje lub nie jest ustawiona właściwość ro.apex.updatable
) albo jeśli na urządzeniu jest zainstalowana wersja 10 lub starsza, obie wstępnie skompilowane aplikacje muszą być zainstalowane w systemie osobno.
Jeśli APEX jest obsługiwany, w przypadku odpowiedniej wersji należy umieścić w nim wstępnie zainstalowane pliki jako /system/apex/com.android.apex.cts.shim.apex
.
Jeśli używasz zwykłych wstępnie utworzonych aplikacji, wartości CtsShim
i CtsShimPriv
dla odpowiedniej wersji muszą być umieszczone odpowiednio jako /system/app/CtsShimPrebuilt.apk
i /system/priv-app/CtsShimPrivPrebuilt.apk
.
W tabeli poniżej znajdziesz listę aplikacji wstępnie instalowanych i wstępnie wczytywanych w przypadku każdej wersji i architektury urządzenia.
Wersja urządzenia | Wstępna instalacja (jeśli Apex jest obsługiwany) |
Wczytaj wstępnie | ||
---|---|---|---|---|
WŁĄCZ WYKRYWANIE | x86 | WŁĄCZ WYKRYWANIE | x86 | |
Android 15 | android15-arm-release | android15-x86-release | android15-arm-CtsShim.apk | android15-x86-CtsShim.apk |
Android 14 | android14-arm-release | android14-x86-release | android14-arm-CtsShim.apk | android14-x86-CtsShim.apk |
Android 13 | android13-arm-release | android13-x86-release | android13-arm-CtsShim.apk | android13-x86-CtsShim.apk |
Android 12 | android12-arm-release | android12-x86-release | android12-arm-CtsShim.apk | android12-x86-CtsShim.apk |
Android 11 | android11-arm-release | android11-x86-release | android11-arm-CtsShim.apk | android11-x86-CtsShim.apk |
Android 10 | android10-release | android10-arm-CtsShim.apk | android10-x86-CtsShim.apk | |
Android 9, O i O-MR1 | Nie dotyczy | Nie dotyczy | arm-CtsShim.apk | x86-CtsShim.apk |
Aby przejść testy, wstępnie załaduj aplikacje w odpowiednich katalogach na obrazie systemu bez ponownego podpisywania aplikacji.
Przykładowy applet
W Androidzie 9 wprowadzono interfejsy Open Mobile API. W przypadku urządzeń, które zgłaszają więcej niż 1 element zabezpieczeń, CTS dodaje testy weryfikujące działanie interfejsów Open Mobile API. Te przypadki testowe wymagają jednorazowej instalacji przykładowego appleta w wbudowanym elemencie zabezpieczeń (eSE) urządzenia testowego lub na karcie SIM używanej przez to urządzenie. Przykładowy applet eSE i przykładowy applet karty SIM znajdziesz w AOSP.
Więcej informacji o przypadkach testowych interfejsu Open Mobile API i przypadków testowych kontroli dostępu znajdziesz w dokumentacji CTS Test for Secure Element (test CTS dla elementów zabezpieczeń).
Wymagania dotyczące miejsca na dane
Testy obciążeniowe CTS wymagają, aby klipy wideo znajdowały się na zewnętrznym urządzeniu pamięci masowej (/sdcard
). Większość klipów pochodzi z filmu Big Buck Bunny, którego prawa autorskie posiada fundacja Blender Foundation na mocy licencji Creative Commons Attribution 3.0.
Wymagana ilość miejsca zależy od maksymalnej rozdzielczości odtwarzania wideo obsługiwanej przez urządzenie. Informacje o wymaganych rozdzielczościach w przypadku danej wersji platformy znajdziesz w sekcji 5 dokumentu Definicja zgodności Androida.
Oto wymagania dotyczące miejsca na dane w zależności od maksymalnej rozdzielczości odtwarzania filmu:
- 480 x 360: 98 MB
- 720 x 480: 193 MB
- 1280 x 720: 606 MB
- 1920 x 1080: 1863 MB
Ekran i miejsce na dane
- Urządzenie, które nie ma wbudowanego ekranu, musi być podłączone do ekranu.
Jeśli urządzenie ma gniazdo na kartę pamięci, włóż pustą kartę SD. Użyj karty SD obsługującej magistralę UHS (Ultra High Speed) z pojemnością SDHC lub SDXC albo karty o klasie szybkości co najmniej 10, aby mieć pewność, że przejdzie test CTS.
Jeśli urządzenie ma gniazda na karty SIM, włóż kartę SIM do każdego gniazda. Jeśli urządzenie obsługuje SMS-y, każda karta SIM musi mieć wypełnione własne pole numeru. W przypadku urządzeń z Androidem 12 lub nowszym wszystkie karty SIM muszą obsługiwać przechowywanie numerów skróconego wybierania (ADN). Wymagania te spełniają karty GSM i USIM z pliku dedykowanego operatorowi telekomunikacyjnemu (DFTelecom).
UICC dla deweloperów
Aby przeprowadzić testy interfejsu CTS carrier API, urządzenie musi używać karty SIM z uprawnieniami CTS carrier spełniającymi wymagania określone w artykule Przygotowanie karty UICC.
Konfiguracja urządzenia z Androidem
Przywróć dane fabryczne na urządzeniu: Ustawienia > Tworzenie kopii zapasowej i resetowanie > Przywracanie danych fabrycznych.
Ustaw język urządzenia na angielski (Stany Zjednoczone): Ustawienia > Język i wprowadzanie tekstu > Język.
Jeśli urządzenie obsługuje dostosowywanie domyślnych czcionek, ustaw domyślną rodzinę czcionek
sans-serif
naRoboto
(domyślna rodzina czcioneksans-serif
używana w kompilacji AOSP).Włącz ustawienia lokalizacji, jeśli na urządzeniu jest funkcja GPS lub Wi-Fi/sieci komórkowej: Ustawienia > Lokalizacja > Włączone.
Połącz się z siecią Wi-Fi obsługującą IPv6, która może traktować urządzenie DUT jako odizolowanego klienta (patrz Środowisko fizyczne powyżej) i mieć połączenie z internetem: Ustawienia > Wi-Fi.
Upewnij się, że na urządzeniu nie ma ustawionego wzoru ani hasła: Ustawienia > Zabezpieczenia > Blokada ekranu > Brak.
Włącz Debugowanie USB na urządzeniu: Ustawienia > Opcje programisty > Debugowanie USB.
Ustaw czas w formacie 12-godzinnym: Ustawienia > Data i godzina > Użyj formatu 24-godzinnego > Wyłącz.
Aby urządzenie nie zasypiało: Ustawienia > Opcje programisty > Nie zasypiaj > Wł.
W Androidzie 5.x i 4.4.x ustaw urządzenie tak, aby zezwalało na fałszywe lokalizacje: Ustawienia > Opcje programisty > Zezwalaj na fałszywe lokalizacje > Wył.
W Androidzie 4.2 lub nowszym wyłącz weryfikację aplikacji przez USB: Ustawienia > Opcje programisty > Weryfikuj aplikacje przez USB > Wyłącz.
W Androidzie 13 lub nowszym ustaw urządzenie tak, aby zezwalało na korzystanie z fikcyjnego modemu: Ustawienia > Opcje programisty > Zezwalaj na korzystanie z fikcyjnego modemu > Wył.
Uruchom przeglądarkę i zamknij wszystkie ekrany uruchamiania lub konfiguracji.
Połącz komputer, który będzie używany do testowania urządzenia, za pomocą kabla USB.
Przed uruchomieniem CTS ustaw Roboto2 jako czcionkę bezszeryfową, używając dostępnej dla użytkownika opcji (nie ukrytej).
Instalacja pliku
Zainstaluj i skonfiguruj aplikacje pomocnicze na urządzeniu.
Skonfiguruj urządzenie zgodnie z wersją CTS:
CTS w wersjach 2.1 R2–4.2 R4: skonfiguruj urządzenie (lub emulator), aby przeprowadzać testy dostępności za pomocą:
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
Na urządzeniu włącz delegowanie: Ustawienia > Ułatwienia dostępu > Ułatwienia dostępu > Delegowanie usługi ułatwień dostępu.
CTS w wersji 6.x lub starszej: na urządzeniach, które deklarują
android.software.device_admin
, skonfiguruj urządzenie, aby uruchomić test administracji urządzenia za pomocą:adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`
W sekcji Ustawienia > Bezpieczeństwo > Wybierz administratorów urządzenia włącz
android.deviceadmin.cts.CtsDeviceAdminReceiver*
administratorów urządzenia. Upewnij się, żeandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
i innych wstępnie zainstalowanych administratorów urządzeń pozostają wyłączone.
Aby skopiować pliki multimedialne pakietu CTS na urządzenie, wykonaj te czynności:
- Przejdź (
cd
) do ścieżki, na której pobrane i rozpakowane pliki multimedialne są przechowywane. Zmień uprawnienia pliku:
chmod u+x copy_media.sh
Skopiuj niezbędne pliki:
Aby skopiować klipy o rozdzielczości do 720 x 480, uruchom:
./copy_media.sh 720x480
Jeśli nie masz pewności co do maksymalnej rozdzielczości, skopiuj wszystkie pliki:
./copy_media.sh all
Jeśli w sekcji adb jest kilka urządzeń, dodaj na końcu numer seryjny (
-s
) konkretnego urządzenia. Aby na przykład skopiować obraz o rozdzielczości do 720 x 480 na urządzenie o numerze seryjnym 1234567, uruchom:./copy_media.sh 720x480 -s 1234567
- Przejdź (