Bereiten Sie zur Ausführung von CTS zuerst Ihre physische Umgebung, Ihren Computer und das Android-Gerät vor, das Sie für den Test verwenden.
Physische Umgebung
Bluetooth LE-Beacons
Wenn das zu testende Gerät Bluetooth LE unterstützt, platzieren Sie für den Bluetooth LE-Scantest im Umkreis von 5 Metern von der DUT mindestens drei Bluetooth LE-Beacons. Diese Beacons müssen nicht konfiguriert werden und geben keine spezifischen Daten aus. Sie können beliebig sein, einschließlich iBeacon, Eddystone oder sogar Geräte, die BLE-Beacons simulieren.
Ultrabreitband
Wenn der DUT Ultrabreitband (UWB) unterstützt, muss ein anderes UWB-fähiges Gerät nah genug positioniert und so ausgerichtet sein, dass sich keine Antenne und keine Funkzone befinden. Für die Tests zur Entfernungsgenauigkeit gibt es spezielle Anforderungen an Position und Ausrichtung. Weitere Informationen zur Einrichtung finden Sie unter UWB-Anforderungen. Der UWB-Test muss manuell ausgeführt werden. Dabei muss in der Befehlszeile angegeben werden, welche zwei Geräte einen Meter voneinander entfernt sind. Weitere Informationen zur für diesen Test erforderlichen Fragmentierung finden Sie unter Lokale Fragmentierung.
Kameras
Verwenden Sie beim Ausführen des CTS der Kamera normale Lichtverhältnisse mit einem Testmusterdiagramm (z. B. mit einem Schachbrettmuster). Platzieren Sie das Testmusterdiagramm entsprechend der minimalen Fokusdistanz des DUT, damit es sich nicht zu nah am Objektiv befindet.
Richten Sie die Kamerasensoren auf ein Ambiente mit ausreichender Beleuchtung aus, damit die zu testenden Sensoren die in CONTROL_AE_TARGET_FPS_RANGE
angegebenen maximal konfigurierten Zielbilder pro Sekunde (fps) erreichen und beibehalten können.
Dies gilt für alle von getCameraIdList
gemeldeten Kamerasensoren, da der Test die aufgeführten Geräte durchläuft und die Leistung einzeln misst.
Wenn der 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 für globales Positionierungssystem/globales Satellitennavigationssystem (GPS/GNSS) unterstützt, senden Sie dem DUT ein GPS-/GNSS-Signal auf einer geeigneten Signalebene für den Empfang und die GPS-Standortberechnung. Der GPS-Teil muss ICD-GPS-200C-konform sein. Andernfalls kann das GPS/GNSS-Signal jeglicher Art sein, einschließlich eines Satellitensimulators oder eines GPS/GNSS-Repeaters für Außensignale. Sie können den DUT aber auch nah genug an einem Fenster platzieren, sodass es direkt genug GPS-/GNSS-Signal empfangen kann.
WLAN und IPv6
CTS-Tests erfordern ein WLAN, das IPv4 und IPv6 unterstützt, eine Internetverbindung mit funktionierendem DNS für IPv4 und IPv6 hat, IP-Multicast unterstützt und die DUT als isolierten Client behandeln kann. Ein isolierter Client ist eine Konfiguration, bei der der DUT die Broadcast-/Multinetzwerk-Nachrichten in diesem Subnetzwerk nicht einsehen kann. Dies geschieht bei der Konfiguration eines Wi-Fi-Zugangspunkts oder durch Ausführen des DUT in einem isolierten Subnetzwerk, ohne dass andere Geräte verbunden sind.
Wenn Sie keinen Zugriff auf ein natives IPv6-Netzwerk, ein IPv6-Mobilfunknetz oder ein VPN haben, um einige IPv6-Tests zu bestehen, können Sie einen WLAN-Zugangspunkt und einen IPv6-Tunnel verwenden.
Zur Übergabe der CTS müssen für den DUT die Flags UP
, BROADCAST
und MULTICAST
auf der WLAN-Schnittstelle festgelegt sein. Der WLAN-Schnittstelle müssen IPv4- und IPv6-Adressen zugewiesen werden.
Prüfe mit adb shell ifconfig
die Eigenschaften der WLAN-Schnittstelle.
Für Geräte, die STA/STA-Gleichzeitigkeit von WLAN unterstützen, sind mehrere WLANs (mindestens 2) erforderlich. Damit die CTS übergeben werden kann, müssen die WLANs auf verschiedenen Bändern mit unterschiedlichen SSIDs oder auf derselben SSID mit unterschiedlichen BSSIDs ausgeführt werden.
WLAN-RTT
Android enthält die Wi-Fi RTT API für die Wi-Fi Round Trip Time (RTT)-Funktion. So können Geräte die Entfernung zu Zugangspunkten mit einer Genauigkeit von 1 bis 2 Metern messen, was die Genauigkeit der Standortbestimmung in Innenräumen erheblich erhöht. Zwei empfohlene Geräte, die WLAN-RTT unterstützen, sind Google Wifi und der fitlet2-Zugangspunkt von Comppulab (festgelegt auf eine Bandbreite von 40 MHz bei 5 GHz).
Die Zugangspunkte sollten eingeschaltet sein, benötigen aber keine Netzwerkverbindung. Zugangspunkte müssen sich nicht neben dem Testgerät befinden, es wird jedoch empfohlen, sich nicht weiter als 15 Meter vom DUT entfernt zu befinden. In der Regel ist ein Zugangspunkt ausreichend.
Einrichtung von Desktopcomputern
Achtung: CTS unterstützt 64-Bit-Linux-Maschinen. CTS wird unter Windows und macOS nicht unterstützt.
FFMPEG
Installieren Sie das ffmpeg-Paket ab Version 5.1.3 auf dem Hostcomputer.
Upgrade der Hostmaschine
Es wird dringend empfohlen, den RAM des CTS-Hostcomputers auf 128 GB und die Festplatte auf 256 GB zu aktualisieren. Sie ist erforderlich, um der gestiegenen Anzahl von CTS-Testfällen und einer erhöhten Reservierung von Java-Heap-Speicherplatz im Tradefed gerecht zu werden.
ADB und AAPT2
Bevor Sie die CTS ausführen, müssen Sie die neuesten Versionen von Android Debug Bridge (ADB) und Android Asset Packaging Tool (AAPT2) installiert und den Speicherort dieser Tools im Systempfad Ihres Computers hinzugefügt haben.
Laden Sie zum Installieren von ADB und AAPT2 die neuesten Android SDK Platform Tools und Android SDK Build Tools über den SDK Manager von Android Studio oder das sdkmanager-Befehlszeilentool herunter.
Achten Sie darauf, dass sich adb
und aapt2
in Ihrem Systempfad befinden. Bei dem folgenden Befehl wird davon ausgegangen, dass Sie die Paketarchive in ein Unterverzeichnis mit dem Namen android-sdk
in Ihrem Basisverzeichnis 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 Kits (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.
Weitere Informationen finden Sie in den JDK-Anforderungen.
Einrichtung für den Python-Support
Installieren Sie virtualenv
für Ihre Plattform. Folgen Sie dazu der Installationsanleitung.
Durch Aufrufen von virtualenv -h
können Sie prüfen, ob die Installation erfolgreich war.
CTS-Dateien
Laden Sie die CTS-Pakete aus Kompatibilitätstest-Suite-Downloads herunter und öffnen Sie sie, die der Android-Version Ihrer Geräte und allen Binärschnittstellen (Application Binary Interface, ABI) entsprechen, die von Ihren Geräten unterstützt werden.
Laden Sie die neueste Version der CTS-Mediendateien herunter und öffnen Sie sie.
Mainline-bezogene CTS-Dateien herunterladen (optional)
Wenn Sie eine CTS-Version zum ersten Mal ausführen, lädt CTS einige Mainline-bezogene CTS-Dateien dynamisch herunter, wodurch die Laufzeit abhängig von Ihrer Netzwerkgeschwindigkeit um mindestens 10 Minuten verlängert wird.
Um diese zusätzliche CTS-Laufzeit zu vermeiden, können Sie die Mainline-bezogenen CTS-Dateien herunterladen, bevor Sie die CTS-Version ausführen. Gehen Sie dazu so vor:
Rufen Sie das Android-API-Level auf dem Gerät ab, indem Sie folgenden Befehl ausführen:
adb shell getprop ro.build.version.sdk
Folgen Sie der Anleitung im Skript
download_mcts.sh
, um die Mainline-CTS-Dateien herunterzuladen.Der Download dauert je nach Netzwerkgeschwindigkeit mindestens 10 Minuten.
Geräteerkennung
Folgen Sie dem Schritt, um Ihr System so einzurichten, dass es Ihr Gerät erkennt.
Arbeitsspeicherlimit
Möglicherweise möchten Sie den maximalen Arbeitsspeicher erhöhen, der während des Testlaufs im Skript cts-tradefed verfügbar ist. Weitere Informationen finden Sie im Beispiel-CL.
Einrichtung von Android-Geräten
Nutzer-Builds
Ein kompatibles Gerät ist ein Gerät mit einem vom Nutzer oder Releaseschlüssel signierten Build. Auf deinem Gerät sollte ein System-Image ausgeführt werden, das auf dem bekanntermaßen kompatiblen Nutzer-Build (Android 4.0 oder höher) von Codenamen, Tags und Build-Nummern basiert.
Build-Attribut der ersten API-Ebene
Bestimmte CTS-Anforderungen hängen vom Build ab, mit dem das Gerät ursprünglich versendet wurde. Beispielsweise können Geräte, die ursprünglich mit älteren Builds ausgeliefert wurden, möglicherweise von den Systemanforderungen ausgeschlossen werden, die für Geräte mit späteren Builds gelten.
Um diese Informationen für CTS verfügbar zu machen, könnten Gerätehersteller das Build-Zeit-Attribut ro.product.first_api_level
definiert haben. 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
setzen, sodass Upgradeanforderungen für CTS und Treble/VTS gelten.
Die Gerätehersteller können PRODUCT_SHIPPING_API_LEVEL
in ihrer Datei device.mk
definieren, um dieses Attribut 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
Erstes API-Level für Android 9 oder höher
Setze bei Geräten mit Android 9 oder höher das Attribut ro.product.first_api_level
auf einen gültigen Wert aus Codenamen, Tags und Build-Nummern.
Erstes API-Level für Android 8.x oder niedriger
Deaktivieren Sie bei Geräten, die mit Android 8.x oder niedriger auf den Markt gebracht wurden, das Attribut ro.product.first_api_level
für den ersten Build des Produkts. Lege für alle nachfolgenden Builds ro.product.first_api_level
auf den richtigen Wert für die API-Ebene fest. So kann das Attribut ein neues Produkt korrekt identifizieren und Informationen zur ersten API-Ebene des Produkts bleiben erhalten. Wenn das Flag nicht festgelegt ist, weist Android Build.VERSION.SDK_INT
ro.product.first_api_level
zu.
CTS-Shim-Pakete
Android 10 oder höher enthält ein Paketformat namens APEX. Wenn Sie CTS-Tests für APEX-Verwaltungs-APIs ausführen möchten (z. B. die Aktualisierung auf eine neue Version oder die Berichterstellung für aktive APEXes), müssen Sie ein CtsShimApex
-Paket auf einer Partition /system
vorinstallieren.
Mit dem APEX-Shim-Validierungstest wird die Implementierung von CtsShimApex
überprüft.
Anforderungen für ro.apex.updatable
Wenn das Attribut
ro.apex.updatable
auftrue
gesetzt ist, istCtsShimApex
für alle Geräte erforderlich, die die APEX-Paketverwaltung unterstützen.Wenn das Attribut
ro.apex.updatable
fehlt oder nicht festgelegt ist, mussCtsShimApex
nicht auf einem Gerät vorinstalliert sein.
Mit dem APEX-Shim-Validierungstest wird die Implementierung von CtsShimApex
überprüft.
CtsShim-Vorinstallationen und -Vorabladevorgänge
Ab Android 11 enthält CtsShimApex
zwei vordefinierte Apps, die aus einem Build-Quellcode erstellt wurden und keinen Code außer dem Manifest enthalten. CTS verwendet diese Anwendungen, um Berechtigungen und Berechtigungen zu testen.
Wenn das Gerät die APEX-Paketverwaltung nicht unterstützt (d. h. das Attribut ro.apex.updatable
fehlt oder nicht festgelegt ist) oder auf dem Gerät Version 10 oder niedriger ausgeführt wird, müssen die beiden vordefinierten Apps separat im System vorinstalliert werden.
Wenn APEX unterstützt wird, müssen die Vorinstallationen für den entsprechenden Release als /system/apex/com.android.apex.cts.shim.apex
platziert werden.
Wenn reguläre vordefinierte Anwendungen verwendet werden, müssen CtsShim
und CtsShimPriv
für den entsprechenden Release als /system/app/CtsShimPrebuilt.apk
und /system/priv-app/CtsShimPrivPrebuilt.apk
platziert werden.
In der folgenden Tabelle sind die für jede Geräteversion und -architektur verfügbaren Vorinstallationen und Vorabladevorgänge aufgeführt.
Geräteversion | vorinstallieren (falls APEX unterstützt wird) |
Vorab laden | ||
---|---|---|---|---|
SCHARF SCHALTEN | x86 | SCHARF SCHALTEN | 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-Release | android10-arm-CtsShim.apk | android10-x86-CtsShim.apk | |
Android 9, O und O-MR1 | – | – | arm-CtsShim.apk | x86-CtsShim.apk |
Um die Tests zu bestehen, laden Sie die Anwendungen vorab in die entsprechenden Verzeichnisse im System-Image, ohne die Anwendungen neu 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. Für diese Testläufe muss einmalig ein Beispiel-Applet im eingebetteten Secure Element (eSE) des DUT oder auf der vom DUT verwendeten SIM-Karte installiert werden. Das eSE-Beispiel-Applet und das SIM-Beispiel-Applet finden Sie in AOSP.
Ausführliche Informationen zu Open Mobile API-Testläufen und Testfällen für die Zugriffssteuerung finden Sie unter CTS-Test für Secure Element.
Speicheranforderungen
Für die CTS-Medien-Stresstests müssen sich Videoclips auf einem externen Speicher befinden (/sdcard
). Die meisten Clips stammen von Big Buck Bunny, das von der Blender Foundation im Rahmen der Creative Commons Attribution 3.0-Lizenz urheberrechtlich geschützt ist.
Der erforderliche Speicherplatz hängt von der maximalen Auflösung ab, die bei der Videowiedergabe vom Gerät unterstützt wird. Die Plattformversion der erforderlichen Auflösungen finden Sie in Abschnitt 5 im Dokument zur Definition der Android-Kompatibilität.
Dies sind die Speicheranforderungen je nach maximaler Auflösung für die Videowiedergabe:
- 480 x 360: 98 MB
- 720 x 480: 193 MB
- 1280 x 720: 606 MB
- 1.920 x 1.080: 1.863 MB
Display und Speicher
- Jedes Gerät ohne eingebetteten Bildschirm muss mit einem Bildschirm verbunden werden.
Wenn das Gerät über einen Steckplatz für Speicherkarten verfügt, stecken Sie eine leere SD-Karte ein. Verwenden Sie eine SD-Karte, die einen Ultra-High-Speed-Bus (UHS) mit SDHC- oder SDXC-Kapazität unterstützt, oder eine mit mindestens einer Geschwindigkeitsklasse von 10, damit er die CTS bestehen kann.
Wenn das Gerät über SIM-Kartensteckplätze verfügt, stecken Sie eine aktivierte SIM-Karte in jeden dieser Steckplätze. Wenn das Gerät SMS unterstützt, muss für jede SIM-Karte ein eigenes Nummernfeld ausgefüllt sein. Auf Geräten mit Android 12 oder höher müssen alle SIM-Karten das Speichern von Kurzwahlnummern (ADN) unterstützen. GSM- und USIM-Karten mit der dedizierten Telekommunikationsdatei (DFTelecom) erfüllen diese Anforderung.
Entwickler-UICC
Zum Ausführen von CTS-Mobilfunkanbieter-API-Tests muss das Gerät eine SIM-Karte mit CTS-Mobilfunkanbieterberechtigungen verwenden, die den unter UICC vorbereiten aufgeführten Anforderungen entspricht.
Android-Gerätekonfiguration
Setzen Sie das Gerät auf die Werkseinstellungen zurück: Einstellungen > Sichern und zurücksetzen > Auf Werkseinstellungen zurücksetzen.
Stellen Sie die Sprache Ihres Geräts auf Englisch (USA) ein: Einstellungen > Sprache & Eingabe > Sprache.
Wenn das Gerät die Anpassung von Standardschriftarten unterstützt, legen Sie die Standardschriftfamilie
sans-serif
aufRoboto
fest. Das ist die Standardschriftfamiliesans-serif
, die in AOSP-Builds verwendet wird.Aktiviere die Standorteinstellung, wenn das Gerät eine GPS- oder WLAN-/Mobilfunkfunktion unterstützt: Einstellungen > Standort > An.
Stellen Sie eine Verbindung zu einem WLAN her, das IPv6 unterstützt, die DUT als isolierten Client behandeln kann (siehe Physische Umgebung oben) und eine Internetverbindung hat: Einstellungen > WLAN.
Achten Sie darauf, dass auf dem Gerät weder ein Sperrmuster noch ein Passwort festgelegt ist: Einstellungen > Sicherheit > Displaysperre > Keine.
Aktiviere USB-Debugging auf deinem Gerät: Einstellungen > Entwickleroptionen > USB-Debugging.
Legen Sie die Uhrzeit auf das 12-Stunden-Format fest: Einstellungen > Datum und Uhrzeit > 24-Stunden-Format verwenden > Aus.
Legen Sie fest, dass das Gerät aktiv bleibt: Einstellungen > Entwickleroptionen > Aktiv bleiben > An.
Nur in Android 5.x und 4.4.x: Legen Sie fest, dass auf dem Gerät simulierte Standorte zugelassen werden: Einstellungen > Entwickleroptionen > Simulierte Standorte zulassen > An.
Deaktiviere in Android 4.2 oder höher die USB-App-Bestätigung: Einstellungen > Entwickleroptionen > Apps über USB bestätigen > Aus.
Richten Sie das Gerät unter Android 13 oder höher so ein, dass Mock-Modem zugelassen wird: Einstellungen > Entwickleroptionen > Mock Modem zulassen > An.
Starten Sie den Browser und schließen Sie alle Start-/Einrichtungsbildschirme.
Schließen Sie den Desktopcomputer, der zum Testen des Geräts verwendet werden soll, mit einem USB-Kabel an.
Bevor Sie CTS ausführen, legen Sie Roboto2 als serifenlose Schriftart fest. Verwenden Sie dazu eine Einstellung für vom Nutzer zugängliche Angebote (nicht ausgeblendet).
Dateiinstallation
Installieren und konfigurieren Sie Hilfs-Apps auf dem Gerät.
Richten Sie Ihr Gerät gemäß Ihrer CTS-Version ein:
CTS-Versionen 2.1 R2 bis 4.2 R4: Richte dein Gerät (oder deinen Emulator) so ein, dass die Tests zur Barrierefreiheit ausgeführt werden:
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
Aktivieren Sie auf dem Gerät die Delegierung: Einstellungen > Bedienungshilfen > Bedienungshilfen > Bedienungshilfe delegieren.
CTS-Version 6.x oder niedriger: Richte dein Gerät auf Geräten, für die
android.software.device_admin
deklariert wird, so ein, dass der Test zur Geräteverwaltung ausgeführt wird. Verwende dazuadb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`
:Aktivieren Sie unter Einstellungen > Sicherheit > Geräteadministratoren auswählen die beiden
android.deviceadmin.cts.CtsDeviceAdminReceiver*
-Geräteadministratoren. Achten Sie darauf, dassandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
und alle anderen vorinstallierten Geräteadministratoren deaktiviert bleiben.
Kopieren Sie die CTS-Mediendateien wie folgt auf das Gerät:
- Gehen Sie (
cd
) zu dem Pfad, in dem die Mediendateien heruntergeladen und entpackt werden. Ändern Sie die Dateiberechtigungen:
chmod u+x copy_media.sh
Kopieren Sie die erforderlichen Dateien:
Führen Sie folgenden Befehl aus, um Clips mit einer Auflösung von 720 x 480 zu kopieren:
./copy_media.sh 720x480
Wenn Sie die maximale Auflösung nicht kennen, kopieren Sie alle Dateien:
./copy_media.sh all
Wenn sich mehrere Geräte unter ADB befinden, füge am Ende die serielle Option (
-s
) eines bestimmten Geräts hinzu. Um beispielsweise eine Größe von bis zu 720 x 480 auf das Gerät mit der Seriennummer 1234567 zu kopieren, führen Sie folgenden Befehl aus:./copy_media.sh 720x480 -s 1234567
- Gehen Sie (