Um CTS auszuführen, bereiten Sie zunächst Ihre physische Umgebung, Ihren Desktop-Computer und das Android-Gerät vor, das Sie zum Testen verwenden.
Physische Umgebung
Bluetooth LE-Beacons
Wenn das zu testende Gerät (DUT) Bluetooth LE unterstützt, platzieren Sie für den Bluetooth LE-Scantest mindestens drei Bluetooth LE-Beacons im Umkreis von 5 Metern um das DUT. Diese Beacons müssen nicht konfiguriert werden oder etwas Besonderes aussenden, und können beliebiger Art sein, einschließlich iBeacon, Eddystone oder sogar Geräte, die BLE-Beacons simulieren.
Ultra-Breitband
Wenn das DUT Ultrabreitband (UWB) unterstützt, muss ein anderes Gerät, das UWB unterstützt, nahe genug positioniert und ausgerichtet sein, damit keine Antennen- und Funktotzone entsteht. Für die Entfernungsgenauigkeitstests gibt es spezifische Positionierungs- und Orientierungsanforderungen. Einzelheiten zur Einrichtung finden Sie unter UWB-Anforderungen . Der UWB-Test muss manuell ausgeführt werden, indem in der Befehlszeile angegeben wird, welche zwei Geräte einen Meter voneinander entfernt sind. Einzelheiten zum Sharding, das für diesen Test erforderlich ist, finden Sie unter Lokales Sharding .
Kameras
Verwenden Sie beim Ausführen von Kamera-CTS normale Lichtbedingungen mit einem Testmusterdiagramm (z. B. einem Schachbrettmuster). Platzieren Sie die Testmustertabelle entsprechend der minimalen Fokusentfernung des Prüflings, um sicherzustellen, dass er nicht zu nah am Objektiv ist.
Richten Sie die Kamerasensoren auf eine Szene mit ausreichender Beleuchtung, damit die zu testenden Sensoren die in CONTROL_AE_TARGET_FPS_RANGE
angegebenen maximalen konfigurierten Zielbilder pro Sekunde (FPS) erreichen und beibehalten können. Dies gilt für alle von getCameraIdList
gemeldeten Kamerasensoren, da der Test die aufgelisteten Geräte durchläuft und die Leistung einzeln misst.
Wenn das DUT externe Kameras wie USB-Webcams unterstützt, schließen Sie beim Ausführen von CTS eine externe Kamera an. Andernfalls schlagen die CTS-Tests fehl.
GPS/GNSS
Wenn das DUT die Funktion Global Positioning System/Global Navigation Satellite System (GPS/GNSS) unterstützt, stellen Sie dem DUT ein GPS/GNSS-Signal mit einem geeigneten Signalpegel für den Empfang und die GPS-Standortberechnung zur Verfügung. Der GPS-Teil muss mit ICD-GPS-200C kompatibel sein. Ansonsten kann das GPS/GNSS-Signal beliebiger Art sein, einschließlich eines Satellitensimulators oder eines GPS/GNSS-Repeaters für Außensignale, oder Sie können den Prüfling nahe genug an einem Fenster platzieren, sodass er direkt ausreichend GPS/GNSS-Signal empfangen kann.
WLAN und IPv6
CTS-Tests erfordern ein Wi-Fi-Netzwerk, das IPv4 und IPv6 unterstützt, über eine Internetverbindung mit funktionierendem DNS für IPv4 und IPv6 verfügt, IP-Multicast unterstützt und das DUT als isolierten Client behandeln kann. Ein isolierter Client ist eine Konfiguration, bei der das DUT keinen Einblick in die Broadcast-/Multinetzwerk-Nachrichten in diesem Subnetzwerk hat. Dies geschieht bei einer Wi-Fi Access Point (AP)-Konfiguration oder indem das DUT in einem isolierten Subnetzwerk ausgeführt wird, ohne dass andere Geräte angeschlossen sind.
Wenn Sie keinen Zugriff auf ein natives IPv6-Netzwerk, ein IPv6-Trägernetzwerk oder ein VPN haben, um einige von IPv6 abhängige Tests zu bestehen, können Sie einen WLAN-Zugangspunkt und einen IPv6-Tunnel verwenden.
Um CTS zu bestehen, muss das DUT die Flags UP
, BROADCAST
und MULTICAST
auf der Wi-Fi-Schnittstelle setzen. Der Wi-Fi-Schnittstelle müssen IPv4- und IPv6-Adressen zugewiesen werden. Überprüfen Sie die Eigenschaften der Wi-Fi-Schnittstelle mit adb shell ifconfig
.
Für Geräte, die Wi-Fi STA/STA Concurrency unterstützen, sind mehrere Wi-Fi-Netzwerke (mindestens 2) erforderlich. Um CTS zu bestehen, müssen die Wi-Fi-Netzwerke auf unterschiedlichen Bändern mit unterschiedlichen SSIDs oder auf derselben SSID mit unterschiedlichen BSSIDs laufen.
Wi-Fi RTT
Android enthält die Wi-Fi RTT API für eine Wi-Fi Round Trip Time (RTT) -Funktion. Dadurch können Geräte ihre Entfernung zu Zugangspunkten mit einer Genauigkeit von 1 bis 2 Metern messen, was die Genauigkeit der Standortbestimmung in Innenräumen deutlich erhöht. Zwei empfohlene Geräte, die Wi-Fi RTT unterstützen, sind Google Wifi und der fitlet2 Access Point von Compulab (eingestellt auf 40 MHz Bandbreite bei 5 GHz).
Die Access Points sollten eingeschaltet sein, benötigen aber keine Netzwerkverbindung. Access Points müssen sich nicht in der Nähe des Testgeräts befinden, es wird jedoch empfohlen, dass sie sich in einem Umkreis von 40 Fuß um das DUT befinden. Normalerweise reicht ein Zugangspunkt aus.
Einrichtung eines Desktop-Computers
Achtung : CTS unterstützt 64-Bit-Linux-Maschinen. CTS wird unter Windows oder MacOS nicht unterstützt.
FFMPEG
Installieren Sie das Paket ffmpeg Version 5.1.3 (oder höher) auf dem Hostcomputer.
Upgrade der Host-Maschine
Es wird dringend empfohlen, den Arbeitsspeicher des CTS-Hostcomputers auf 128 GB und die Festplatte auf 256 GB aufzurüsten. Dies ist erforderlich, um der erhöhten Anzahl von CTS-Testfällen und einer erhöhten Java-Heap-Speicherplatzreservierung in Tradefed gerecht zu werden.
ADB und AAPT2
Stellen Sie vor dem Ausführen des CTS sicher, dass Sie die aktuellen Versionen von Android Debug Bridge (adb) und Android Asset Packaging Tool (AAPT2) installiert und den Speicherort dieser Tools zum Systempfad Ihres Computers hinzugefügt haben.
Um ADB und AAPT2 zu installieren, laden Sie die neuesten Android SDK Platform Tools und Android SDK Build Tools vom SDK Manager von Android Studio oder vom Befehlszeilentool sdkmanager herunter.
Stellen Sie sicher, dass sich adb
und aapt2
in Ihrem Systempfad befinden. Der folgende Befehl geht davon aus, dass Sie die Paketarchive in ein Unterverzeichnis namens android-sdk
in Ihrem Home-Verzeichnis heruntergeladen haben:
export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>
Java Development Kit für Ubuntu
Installieren Sie die richtige Version des Java Development Kit (JDK) .
- Installieren Sie für Android 11 OpenJDK11.
- Installieren Sie für Android 9 und Android 10 OpenJDK9.
- Installieren Sie für Android 7.0, 7.1, 8.0 und 8.1 OpenJDK8.
Einzelheiten finden Sie in den JDK-Anforderungen .
Setup für Python-Unterstützung
Installieren Sie virtualenv
für Ihre Plattform, indem Sie den Installationsanweisungen folgen.
Sie können überprüfen, ob die Installation erfolgreich war, indem Sie virtualenv -h
aufrufen.
CTS-Dateien
Laden Sie die CTS-Pakete von Compatibility Test Suite Downloads herunter und öffnen Sie sie, die der Android-Version Ihrer Geräte und allen von Ihren Geräten unterstützten Application Binary Interfaces (ABIs) entsprechen.
Laden Sie die neueste Version der CTS-Mediendateien herunter und öffnen Sie sie.
Geräteerkennung
Befolgen Sie die Schritte, um Ihr System so einzurichten, dass es Ihr Gerät erkennt .
Speicherlimit
Möglicherweise möchten Sie den maximal verfügbaren Speicher während des Testlaufs im cts-tradefed -Skript erhöhen. Weitere Informationen finden Sie im Beispiel-CL .
Einrichtung eines Android-Geräts
Benutzer-Builds
Ein kompatibles Gerät ist als Gerät mit einem vom Benutzer/Freigabeschlüssel signierten Build definiert. Auf Ihrem Gerät sollte ein Systemabbild ausgeführt werden, das auf dem bekanntermaßen kompatiblen Benutzer-Build (Android 4.0 oder höher) aus Codenamen, Tags und Build-Nummern basiert.
Build-Eigenschaft der ersten API-Ebene
Bestimmte CTS-Anforderungen hängen von der Bauart ab, mit der ein Gerät ursprünglich ausgeliefert wurde. Beispielsweise können Geräte, die ursprünglich mit früheren Builds ausgeliefert wurden, von den Systemanforderungen ausgeschlossen werden, die für Geräte gelten, die mit späteren Builds ausgeliefert werden.
Um diese Informationen CTS zur Verfügung zu stellen, hätten Gerätehersteller die Build-Time-Eigenschaft ro.product.first_api_level
definieren können. Der Wert dieser Eigenschaft ist die erste API-Ebene, mit der das Gerät kommerziell gestartet wurde.
Die Gerätehersteller können die gemeinsame zugrunde liegende Implementierung wiederverwenden, um ein neues Produkt als Upgrade eines vorhandenen Produkts in derselben Gerätegruppe auf den Markt zu bringen. Die Gerätehersteller können optional die API-Ebene des vorhandenen Produkts auf ro.product.first_api_level
festlegen, sodass Upgrade-Anforderungen für CTS und Treble/VTS gelten.
Die Gerätehersteller können PRODUCT_SHIPPING_API_LEVEL
in ihrer Datei device.mk
definieren, um diese Eigenschaft festzulegen, wie im folgenden Beispiel gezeigt:
# 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
Erste API-Ebene für Android 9 oder höher
Legen Sie für Geräte, die mit Android 9 oder höher gestartet wurden, die Eigenschaft ro.product.first_api_level
auf einen gültigen Wert aus Codenamen, Tags und Build-Nummern fest.
Erste API-Ebene für Android 8.x oder niedriger
Bei Geräten, die unter Android 8.x oder niedriger gestartet wurden, deaktivieren (entfernen) Sie die Eigenschaft ro.product.first_api_level
für den ersten Build des Produkts. Setzen Sie für alle nachfolgenden Builds ro.product.first_api_level
auf den richtigen API-Level-Wert. Dadurch kann die Eigenschaft ein neues Produkt korrekt identifizieren und Informationen über die erste API-Ebene des Produkts beibehalten. Wenn das Flag nicht gesetzt ist, weist Android Build.VERSION.SDK_INT
ro.product.first_api_level
zu.
CTS-Unterlegscheibenpakete
Android 10 oder höher enthält ein Paketformat namens APEX . Um CTS-Tests für APEX-Verwaltungs-APIs auszuführen (z. B. Aktualisierung auf eine neue Version oder Meldung aktiver APEXes), müssen Sie ein CtsShimApex
Paket auf einer /system
Partition vorinstallieren.
Der APEX-Shim-Validierungstest überprüft die Implementierung von CtsShimApex
.
ro.apex.updatable-Anforderungen
Wenn die Eigenschaft
ro.apex.updatable
auftrue
gesetzt ist, istCtsShimApex
für alle Geräte erforderlich, die die APEX-Paketverwaltung unterstützen.Wenn die Eigenschaft
ro.apex.updatable
fehlt oder nicht festgelegt ist, mussCtsShimApex
nicht auf einem Gerät vorinstalliert werden.
Der APEX-Shim-Validierungstest überprüft die Implementierung von CtsShimApex
.
CtsShim wird vorinstalliert und vorab geladen
Ab Android 11 enthält CtsShimApex
zwei vorgefertigte Apps (aus der Build-Quelle erstellt), die außer dem Manifest keinen Code enthalten. CTS verwendet diese Apps, um Privilegien und Berechtigungen zu testen.
Wenn das Gerät die APEX-Paketverwaltung nicht unterstützt (d. h. die Eigenschaft ro.apex.updatable
fehlt oder nicht festgelegt ist) oder wenn auf dem Gerät Version 10 oder niedriger ausgeführt wird, müssen die beiden vorgefertigten Apps im vorinstalliert sein System separat.
Wenn APEX unterstützt wird, müssen die Vorinstallationen für die entsprechende Version als /system/apex/com.android.apex.cts.shim.apex
platziert werden.
Wenn reguläre vorgefertigte Apps verwendet werden, müssen CtsShim
und CtsShimPriv
für die entsprechende Version als /system/app/CtsShimPrebuilt.apk
bzw. /system/priv-app/CtsShimPrivPrebuilt.apk
platziert werden.
In der folgenden Tabelle sind die für jede Geräteversion und Architektur verfügbaren Vorinstallationen und Vorladevorgänge aufgeführt.
Geräteversion | Vorinstallieren (sofern APEX unterstützt) | Vorladen | ||
---|---|---|---|---|
ARM | x86 | ARM | x86 | |
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-Version | android10-arm-CtsShim.apk | android10-x86-CtsShim.apk | |
Android 9, O und O-MR1 | N / A | N / A | arm-CtsShim.apk | x86-CtsShim.apk |
Um die Tests zu bestehen, laden Sie die Apps vorab in die entsprechenden Verzeichnisse auf dem Systemabbild, ohne die Apps erneut zu signieren.
Beispiel-Applet
Mit Android 9 wurden Open Mobile APIs eingeführt. Für Geräte, die mehr als ein sicheres Element melden, fügt CTS Testfälle hinzu, um das Verhalten der Open Mobile APIs zu validieren. Diese Testfälle erfordern die einmalige Installation eines Beispiel-Applets im eingebetteten Secure Element (eSE) des DUT oder in der vom DUT verwendeten SIM-Karte. Das eSE-Beispiel-Applet und das SIM-Beispiel-Applet finden Sie in AOSP.
Ausführlichere Informationen zu Open Mobile API-Testfällen und Zugriffskontroll-Testfällen finden Sie unter CTS-Test für Secure Element .
Lagerungssansprüche
Für die CTS-Medienstresstests müssen sich Videoclips auf einem externen Speicher ( /sdcard
) befinden. Die meisten Clips stammen von Big Buck Bunny , das von der Blender Foundation unter der Creative Commons Attribution 3.0-Lizenz urheberrechtlich geschützt ist.
Der erforderliche Speicherplatz hängt von der maximalen Videowiedergabeauflösung ab, die das Gerät unterstützt. Die Plattformversion der erforderlichen Auflösungen finden Sie in Abschnitt 5 im Dokument zur Android-Kompatibilitätsdefinition .
Hier sind die Speicheranforderungen nach maximaler Videowiedergabeauflösung:
- 480x360: 98 MB
- 720x480: 193 MB
- 1280x720: 606 MB
- 1920x1080: 1863 MB
Bildschirm und Lagerung
- Jedes Gerät, das keinen eingebetteten Bildschirm hat, muss an einen Bildschirm angeschlossen werden.
Wenn das Gerät über einen Speicherkartensteckplatz verfügt, stecken Sie eine leere SD-Karte ein. Verwenden Sie eine SD-Karte, die den Ultra-High-Speed-Bus (UHS) mit SDHC- oder SDXC-Kapazität unterstützt, oder eine SD-Karte mit mindestens Geschwindigkeitsklasse 10 oder höher, um sicherzustellen, dass sie den CTS bestehen kann.
Wenn das Gerät über SIM-Kartensteckplätze verfügt, stecken Sie in jeden Steckplatz eine aktivierte SIM-Karte. Wenn das Gerät SMS unterstützt, muss für jede SIM-Karte ein eigenes Nummernfeld ausgefüllt sein. Bei Geräten mit Android 12 oder höher müssen alle SIM-Karten die Speicherung von Kurzwahlnummern (ADN) unterstützen. GSM- und USIM-Karten mit der dedizierten Telekommunikationsdatei (DF Telecom ) erfüllen diese Anforderung.
Entwickler UICC
Um CTS-Carrier-API-Tests ausführen zu können, muss das Gerät eine SIM-Karte mit CTS-Carrier-Berechtigungen verwenden, die den unter „Vorbereitung der UICC“ angegebenen Anforderungen entspricht.
Konfiguration des Android-Geräts
Setzen Sie das Gerät auf Werkseinstellungen zurück: Einstellungen > Sichern & Zurücksetzen > Werksdaten zurücksetzen .
Stellen Sie die Sprache Ihres Geräts auf Englisch ( USA ) ein: Einstellungen > Sprache & Eingabe > Sprache .
Wenn das Gerät das Anpassen von Standardschriftarten unterstützt, legen Sie die standardmäßige
sans-serif
Schriftfamilie aufRoboto
fest (die standardmäßigesans-serif
Schriftfamilie, die in AOSP-Builds verwendet wird).Aktivieren Sie die Standorteinstellung, wenn das Gerät über eine GPS- oder WLAN-/Mobilfunknetzwerkfunktion verfügt: Einstellungen > Standort > Ein .
Stellen Sie eine Verbindung zu einem Wi-Fi-Netzwerk her, das IPv6 unterstützt, das DUT als isolierten Client behandeln kann (siehe physische Umgebung oben) und über eine Internetverbindung verfügt: Einstellungen > Wi-Fi .
Stellen Sie sicher, dass auf dem Gerät kein Sperrmuster oder Passwort eingestellt ist: Einstellungen > Sicherheit > Bildschirmsperre > Keine .
Aktivieren Sie das USB-Debugging auf Ihrem Gerät: Einstellungen > Entwickleroptionen > USB-Debugging .
Stellen Sie die Uhrzeit auf das 12-Stunden-Format ein: Einstellungen > Datum & Uhrzeit > 24-Stunden-Format verwenden > Aus .
Stellen Sie das Gerät so ein, dass es wach bleibt: Einstellungen > Entwickleroptionen > Wach bleiben > Ein .
Nur in Android 5.x und 4.4.x stellen Sie das Gerät so ein, dass Scheinstandorte zugelassen werden: Einstellungen > Entwickleroptionen > Scheinstandorte zulassen > Ein .
Deaktivieren Sie in Android 4.2 oder höher die USB-App-Überprüfung: Einstellungen > Entwickleroptionen > Apps über USB überprüfen > Aus .
Stellen Sie in Android 13 oder höher das Gerät so ein, dass es Scheinmodems zulässt: Einstellungen > Entwickleroptionen > Scheinmodem zulassen > Ein .
Starten Sie den Browser und schließen Sie alle Start-/Setup-Bildschirme.
Schließen Sie den Desktop-Computer, der zum Testen des Geräts verwendet werden soll, mit einem USB-Kabel an.
Bevor Sie CTS ausführen, legen Sie Roboto2 mithilfe einer für den Benutzer zugänglichen (nicht ausgeblendeten) Einstellung als serifenlose Schriftart fest.
Dateiinstallation
Installieren und konfigurieren Sie Hilfs-Apps auf dem Gerät.
Richten Sie Ihr Gerät entsprechend Ihrer CTS-Version ein:
CTS-Versionen 2.1 R2 bis 4.2 R4: Richten Sie Ihr Gerät (oder Ihren Emulator) für die Ausführung der Barrierefreiheitstests ein mit:
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
Aktivieren Sie auf dem Gerät die Delegierung: Einstellungen > Barrierefreiheit > Barrierefreiheit > Barrierefreiheitsdienst delegieren .
CTS-Versionen 6.x oder niedriger: Richten Sie Ihr Gerät auf Geräten, die
android.software.device_admin
deklarieren, für die Ausführung des Geräteverwaltungstests ein, indem Sie Folgendes verwenden:adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`
Aktivieren Sie unter Einstellungen > Sicherheit > Geräteadministratoren auswählen die beiden Geräteadministratoren
android.deviceadmin.cts.CtsDeviceAdminReceiver*
. Stellen Sie sicher, dassandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
und alle anderen vorinstallierten Geräteadministratoren deaktiviert bleiben.
Kopieren Sie die CTS-Mediendateien wie folgt auf das Gerät:
- Navigieren Sie (
cd
) zu dem Pfad, in den die Mediendateien heruntergeladen und entpackt werden. Ändern Sie die Dateiberechtigungen:
chmod u+x copy_media.sh
Kopieren Sie die erforderlichen Dateien:
Um Clips mit einer Auflösung von bis zu 720 x 480 zu kopieren, führen Sie Folgendes aus:
./copy_media.sh 720x480
Wenn Sie sich über die maximale Auflösung nicht sicher sind, kopieren Sie alle Dateien:
./copy_media.sh all
Wenn sich unter adb mehrere Geräte befinden, fügen Sie am Ende die serielle Option (
-s
) eines bestimmten Geräts hinzu. Um beispielsweise bis zu 720 x 480 auf das Gerät mit der Seriennummer 1234567 zu kopieren, führen Sie Folgendes aus:./copy_media.sh 720x480 -s 1234567
- Navigieren Sie (