Чтобы запустить CTS, сначала подготовьте физическую среду, настольный компьютер и устройство Android, которое вы используете для тестирования.
Физическая среда
Bluetooth-маяки LE
Если тестируемое устройство (DUT) поддерживает Bluetooth LE, разместите как минимум три маяка Bluetooth LE в пределах 5 метров от DUT для тестирования сканирования Bluetooth LE. Эти маяки не нужно настраивать или излучать что-то конкретное, они могут быть любого типа, включая iBeacon, Eddystone или даже устройства, имитирующие маяки BLE.
Сверхширокополосный
Если тестируемое устройство поддерживает сверхширокополосную связь (UWB), другое устройство, поддерживающее UWB, должно быть расположено достаточно близко и ориентировано так, чтобы не было антенн и мертвой зоны радиосвязи. Для испытаний на точность расстояния существуют особые требования к позиционированию и ориентации. Подробности настройки см. в разделе Требования UWB . Тест СШП необходимо запустить вручную, указав в командной строке, какие два устройства находятся на расстоянии одного метра друг от друга. Подробную информацию о сегментировании, необходимом для этого теста, см. в разделе Локальное сегментирование .
Камеры
При использовании камеры CTS используйте нормальные условия освещения с таблицей тестового шаблона (например, шахматной доской). Разместите таблицу тестового шаблона в соответствии с минимальным расстоянием фокусировки тестируемого устройства, чтобы убедиться, что она не находится слишком близко к объективу.
Направьте датчики камеры на сцену с достаточным освещением, чтобы тестируемые датчики могли достигать и сохранять максимальное настроенное целевое количество кадров в секунду (FPS), как указано в CONTROL_AE_TARGET_FPS_RANGE
. Это относится ко всем датчикам камер, о которых сообщает getCameraIdList
, поскольку тест проходит по перечисленным устройствам и измеряет производительность индивидуально.
Если тестируемое устройство поддерживает внешние камеры, например веб-камеры USB, подключите внешнюю камеру при запуске CTS. В противном случае тесты CTS не пройдут.
GPS/ГНСС
Если ИУ поддерживает функцию глобальной системы позиционирования/глобальной навигационной спутниковой системы (GPS/GNSS), подайте на ИУ сигнал GPS/GNSS с подходящим уровнем сигнала для приема и расчета местоположения GPS. Часть GPS должна соответствовать стандарту ICD-GPS-200C. В противном случае сигнал GPS/GNSS может быть любого типа, включая спутниковый симулятор или ретранслятор сигналов GPS/GNSS внешних сигналов, или вы можете разместить тестируемое устройство достаточно близко к окну, чтобы оно могло напрямую принимать достаточный сигнал GPS/GNSS.
Wi-Fi и IPv6
Для тестов CTS требуется сеть Wi-Fi, которая поддерживает IPv4 и IPv6, имеет подключение к Интернету с работающим DNS для IPv4 и IPv6, поддерживает многоадресную рассылку IP и может рассматривать DUT как изолированный клиент. Изолированный клиент — это конфигурация, в которой DUT не видит широковещательные/многосетевые сообщения в этой подсети. Это происходит при настройке точки доступа Wi-Fi (AP) или при запуске тестируемого устройства в изолированной подсети без подключения других устройств.
Если у вас нет доступа к собственной сети IPv6, сети оператора связи IPv6 или VPN для прохождения некоторых тестов в зависимости от IPv6, вы можете использовать точку доступа Wi-Fi и туннель IPv6.
Для передачи CTS тестируемому устройству необходимы флаги UP
, BROADCAST
и MULTICAST
, установленные на интерфейсе Wi-Fi. Интерфейсу Wi-Fi необходимо назначить адреса IPv4 и IPv6. Проверьте свойства интерфейса Wi-Fi с помощью adb shell ifconfig
.
Для устройств, поддерживающих Wi-Fi STA/STA Concurrency , требуется несколько сетей Wi-Fi (минимум 2). Чтобы пройти CTS, сети Wi-Fi должны работать на разных диапазонах с разными SSID или на одном и том же SSID с разными BSSID.
Wi-Fi РТТ
Android включает API Wi-Fi RTT для возможности определения времени прохождения сигнала Wi-Fi (RTT) . Это позволяет устройствам измерять расстояние до точек доступа с точностью от 1 до 2 метров, что значительно повышает точность определения местоположения в помещении. Двумя рекомендуемыми устройствами, поддерживающими Wi-Fi RTT, являются Google Wi-Fi и точка доступа Fitlet2 от Compulab (настроенная на полосу пропускания 40 МГц при частоте 5 ГГц).
Точки доступа должны быть включены, но не требуют подключения к сети. Точки доступа не обязательно должны располагаться рядом с тестирующим устройством, но рекомендуется располагать их в пределах 40 футов от тестируемого устройства. Одной точки доступа обычно достаточно.
Настройка настольного компьютера
Внимание : CTS поддерживает 64-битные машины Linux. CTS не поддерживается в ОС Windows или MacOS.
ФФМПЕГ
Установите пакет ffmpeg версии 5.1.3 (или более поздней версии) на хост-компьютер.
Требования к хост-машине
Минимальные требования для хост-компьютера CTS — 32 ГиБ ОЗУ и 256 ГиБ дискового пространства. Это необходимо для удовлетворения возросшего количества тестовых случаев CTS и увеличения резервирования кучи Java в Tradefed.
АБР и AAPT2
Перед запуском CTS убедитесь, что вы установили последние версии Android Debug Bridge (adb) и Android Asset Packaging Tool (AAPT2) и добавили расположение этих инструментов в системный путь вашего компьютера.
Чтобы установить ADB и AAPT2, загрузите новейшие инструменты платформы Android SDK и инструменты сборки Android SDK из диспетчера SDK Android Studio или из инструмента командной строки sdkmanager .
Убедитесь, что adb
и aapt2
находятся в вашем системном пути. Следующая команда предполагает, что вы загрузили архивы пакетов в подкаталог android-sdk
в вашем домашнем каталоге:
export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>
Комплект разработки Java для Ubuntu
Установите подходящую версию Java Development Kit (JDK) .
- Для Android 11 установите OpenJDK11.
- Для Android 9 и Android 10 установите OpenJDK9.
- Для Android 7.0, 7.1, 8.0 и 8.1 установите OpenJDK8.
Подробности смотрите в требованиях JDK .
Настройка поддержки Python
Установите virtualenv
для вашей платформы, следуя инструкциям по установке .
Вы можете убедиться, что установка прошла успешно, вызвав virtualenv -h
.
CTS-файлы
Загрузите и откройте пакеты CTS из пакета «Загрузки пакета тестирования совместимости», соответствующие версии Android вашего устройства и всем двоичным интерфейсам приложений (ABI), которые поддерживают ваши устройства.
Загрузите и откройте последнюю версию медиафайлов CTS .
Загрузите файлы CTS, связанные с основной линией (необязательно)
Когда вы запускаете версию CTS в первый раз, CTS динамически загружает некоторые файлы CTS, связанные с основной линией, что увеличивает время работы как минимум на 10 минут, в зависимости от скорости вашей сети.
Чтобы избежать этого дополнительного времени выполнения CTS, вы можете загрузить файлы CTS, связанные с основной линией, перед запуском версии CTS, следуя этим инструкциям:
Получите уровень Android API на устройстве, выполнив:
adb shell getprop ro.build.version.sdk
Следуйте инструкциям сценария
download_mcts.sh
, чтобы загрузить файлы Mainline CTS.Загрузка занимает не менее 10 минут, в зависимости от скорости вашей сети.
Обнаружение устройства
Следуйте инструкциям, чтобы настроить систему на обнаружение вашего устройства .
Ограничение памяти
Возможно, вы захотите увеличить максимальный объем памяти, доступной во время тестового запуска в сценарии cts-tradefed . Обратитесь к примеру CL для получения дополнительной информации.
Настройка Android-устройства
Пользовательские сборки
Совместимое устройство определяется как устройство со сборкой, подписанной пользователем/ключом выпуска. На вашем устройстве должен быть установлен образ системы, основанный на известной совместимой пользовательской сборке (Android 4.0 или более поздней версии), указанной в кодовых именах, тегах и номерах сборок .
Свойство сборки первого уровня API
Определенные требования CTS зависят от сборки, с которой изначально было поставлено устройство. Например, устройства, которые изначально поставляются с более ранними сборками, могут быть исключены из системных требований, которые применяются к устройствам, поставляемым с более поздними сборками.
Чтобы сделать эту информацию доступной для CTS, производители устройств могли бы определить свойство времени сборки ro.product.first_api_level
. Значением этого свойства является первый уровень API, с которым устройство было коммерчески запущено.
Производители устройств могут повторно использовать общую базовую реализацию для запуска нового продукта в качестве обновления существующего продукта в той же группе устройств. Производители устройств могут дополнительно установить уровень API существующего продукта на ro.product.first_api_level
, чтобы требования к обновлению применялись к CTS и Treble/VTS.
Производители устройств могут определить PRODUCT_SHIPPING_API_LEVEL
в своем файле device.mk
, чтобы установить это свойство, как показано в следующем примере:
# 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
Первый уровень API для Android 9 или выше
Для устройств, запущенных с Android 9 или более поздней версии, установите для свойства ro.product.first_api_level
допустимое значение из кодовых имен, тегов и номеров сборок .
Первый уровень API для Android 8.x или ниже
Для устройств, запущенных на Android 8.x или более ранней версии, отключите (удалит) свойство ro.product.first_api_level
для первой сборки продукта. Для всех последующих сборок установите для ro.product.first_api_level
правильное значение уровня API. Это позволяет свойству правильно идентифицировать новый продукт и сохраняет информацию о первом уровне API продукта. Если флаг не установлен, Android назначает Build.VERSION.SDK_INT
для ro.product.first_api_level
.
Пакеты прокладок CTS
Android 10 или более поздней версии включает формат пакета под названием APEX . Чтобы запустить тесты CTS для API управления APEX (например, обновление до новой версии или сообщение об активных APEX), необходимо предварительно установить пакет CtsShimApex
в раздел /system
.
Тест проверки прокладки APEX проверяет реализацию CtsShimApex
.
ro.apex.обновляемые требования
Если для свойства
ro.apex.updatable
установлено значениеtrue
,CtsShimApex
требуется для всех устройств, поддерживающих управление пакетами APEX.Если свойство
ro.apex.updatable
отсутствует или не задано,CtsShimApex
не требуется предварительно устанавливать на устройстве.
Тест проверки прокладки APEX проверяет реализацию CtsShimApex
.
CtsShim предустанавливает и загружает
Начиная с Android 11, CtsShimApex
содержит два готовых приложения (созданных из исходного кода сборки ), которые не содержат никакого кода, кроме манифеста. CTS использует эти приложения для проверки привилегий и разрешений.
Если устройство не поддерживает управление пакетами APEX (то есть свойство ro.apex.updatable
отсутствует или не задано) или если на устройстве установлена версия 10 или ниже, два готовых приложения должны быть предварительно установлены в система отдельно.
Если поддерживается APEX, предустановленные версии соответствующего выпуска должны быть размещены как /system/apex/com.android.apex.cts.shim.apex
.
Если используются обычные готовые приложения, CtsShim
и CtsShimPriv
для соответствующей версии должны быть размещены как /system/app/CtsShimPrebuilt.apk
и /system/priv-app/CtsShimPrivPrebuilt.apk
соответственно.
В следующей таблице перечислены предустановленные и предварительные загрузки, доступные для каждой версии и архитектуры устройства.
Версия устройства | Предварительная установка (если поддерживается APEX) | Предварительная загрузка | ||
---|---|---|---|---|
РУКА | х86 | РУКА | х86 | |
Андроид 15 | Android15-выпуск руки | Android15-x86-релиз | android15-arm-CtsShim.apk | android15-x86-CtsShim.apk |
Андроид 14 | android14-выпуск руки | Android14-x86-релиз | android14-arm-CtsShim.apk | android14-x86-CtsShim.apk |
Андроид 13 | Android13-выпуск руки | Android13-x86-релиз | android13-arm-CtsShim.apk | android13-x86-CtsShim.apk |
Андроид 12 | Android12-выпуск руки | Android12-x86-релиз | android12-arm-CtsShim.apk | android12-x86-CtsShim.apk |
Андроид 11 | android11-выпуск руки | Android11-x86-релиз | android11-arm-CtsShim.apk | android11-x86-CtsShim.apk |
Андроид 10 | Android10-релиз | android10-arm-CtsShim.apk | android10-x86-CtsShim.apk | |
Android 9, O и O-MR1 | Н/Д | Н/Д | Arm-CtsShim.apk | x86-CtsShim.apk |
Чтобы пройти тесты, предварительно загрузите приложения в соответствующие каталоги образа системы, не подписывая их повторно.
Пример апплета
В Android 9 появились открытые мобильные API. Для устройств, которые сообщают о более чем одном защищенном элементе, CTS добавляет тестовые примеры для проверки поведения API Open Mobile. Эти тестовые сценарии требуют однократной установки образца апплета во встроенный элемент безопасности (eSE) тестируемого устройства или на SIM-карту, используемую тестируемым устройством. Образец апплета eSE и образца апплета SIM можно найти в AOSP.
См. CTS Test for Secure Element для получения более подробной информации о тестовых примерах Open Mobile API и тестовых примерах контроля доступа.
Требования к хранению
Стресс-тесты мультимедиа CTS требуют, чтобы видеоклипы находились на внешнем хранилище ( /sdcard
). Большинство клипов взято с сайта Big Buck Bunny , авторские права на который принадлежат Blender Foundation по лицензии Creative Commons Attribution 3.0 .
Требуемое пространство зависит от максимального разрешения воспроизведения видео, поддерживаемого устройством. См. раздел 5 документа «Определение совместимости Android» для получения информации о версии платформы и необходимых разрешениях.
Вот требования к памяти в зависимости от максимального разрешения воспроизведения видео:
- 480x360: 98 МБ
- 720x480: 193 МБ
- 1280x720: 606 МБ
- 1920x1080: 1863 МБ
Экран и память
- Любое устройство, не имеющее встроенного экрана, необходимо подключить к экрану.
Если в устройстве есть слот для карты памяти, вставьте пустую SD-карту. Используйте SD-карту, поддерживающую сверхвысокоскоростную (UHS) шину с емкостью SDHC или SDXC, или карту с классом скорости не менее 10 или выше, чтобы гарантировать, что она может пройти CTS.
Если в устройстве есть слоты для SIM-карт, вставьте активированную SIM-карту в каждый слот. Если устройство поддерживает SMS, на каждой SIM-карте должно быть заполнено собственное поле номера. Для устройств под управлением Android 12 или выше все SIM-карты должны иметь поддержку хранения номеров сокращенного набора (ADN). Карты GSM и USIM со специальным файлом для телекоммуникаций (DF Telecom ) удовлетворяют этому требованию.
Разработчик UICC
Для запуска тестов API оператора CTS устройству необходимо использовать SIM-карту с привилегиями оператора CTS, соответствующую требованиям, указанным в разделе «Подготовка UICC» .
Конфигурация Android-устройства
Сбросьте настройки устройства до заводских настроек: Настройки > Резервное копирование и сброс > Сброс к заводским настройкам .
Установите язык вашего устройства на английский ( США ): «Настройки» > «Язык и ввод» > «Язык» .
Если устройство поддерживает настройку шрифтов по умолчанию, установите для семейства шрифтов
sans-serif
по умолчанию значениеRoboto
(семейство шрифтовsans-serif
по умолчанию, используемое в сборках AOSP).Включите настройку местоположения, если на устройстве есть функция GPS или Wi-Fi/сотовой сети: Настройки > Местоположение > Вкл .
Подключитесь к сети Wi-Fi, которая поддерживает IPv6, может рассматривать DUT как изолированный клиент (см. «Физическая среда» выше) и имеет подключение к Интернету: «Настройки» > «Wi-Fi» .
Убедитесь, что на устройстве не установлен графический ключ или пароль: «Настройки» > «Безопасность» > «Блокировка экрана» > «Нет» .
Включите отладку по USB на вашем устройстве: Настройки > Параметры разработчика > Отладка по USB .
Установите время в 12-часовом формате: «Настройки» > «Дата и время» > «Использовать 24-часовой формат» > «Выкл.» .
Настройте устройство на бодрствование: «Настройки» > «Параметры разработчика» > «Не спать» > «Вкл.» .
Только в Android 5.x и 4.4.x настройте устройство на разрешение имитации местоположений: Настройки > Параметры разработчика > Разрешить имитацию местоположений > Вкл .
В Android 4.2 или более поздней версии отключите проверку приложений через USB: «Настройки» > «Параметры разработчика» > «Проверка приложений через USB» > «Выкл.» .
В Android 13 или более поздней версии настройте на устройстве разрешение имитации модема: Настройки > Параметры разработчика > Разрешить имитацию модема > Вкл .
Запустите браузер и закройте все экраны запуска/настройки.
Подключите настольный компьютер, который будет использоваться для тестирования устройства, с помощью USB-кабеля.
Перед запуском CTS установите Roboto2 в качестве шрифта без засечек, используя доступную пользователю настройку (не скрытую).
Установка файла
Установите и настройте вспомогательные приложения на устройстве.
Настройте свое устройство в соответствии с вашей версией CTS:
CTS версий с 2.1 R2 по 4.2 R4: настройте свое устройство (или эмулятор) для запуска тестов доступности с помощью:
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
На устройстве включите делегирование: Настройки > Специальные возможности > Специальные возможности > Служба делегирования специальных возможностей .
CTS версии 6.x или ниже: на устройствах, которые объявляют
android.software.device_admin
, настройте свое устройство для запуска теста администрирования устройства, используя:adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`
В меню «Настройки» > «Безопасность» > «Выбор администраторов устройства » включите двух администраторов устройства
android.deviceadmin.cts.CtsDeviceAdminReceiver*
. Убедитесь, чтоandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
и любые другие предварительно загруженные администраторы устройств остаются отключенными.
Скопируйте медиафайлы CTS на устройство следующим образом:
- Перейдите (
cd
) к пути, по которому загружаются и распаковываются медиафайлы. Измените права доступа к файлу:
chmod u+x copy_media.sh
Скопируйте необходимые файлы:
Чтобы скопировать клипы до разрешения 720x480, запустите:
./copy_media.sh 720x480
Если вы не уверены в максимальном разрешении, скопируйте все файлы:
./copy_media.sh all
Если в adb имеется несколько устройств, добавьте в конец параметр последовательного порта (
-s
) конкретного устройства. Например, чтобы скопировать размер до 720x480 на устройство с серийным номером 1234567, выполните:./copy_media.sh 720x480 -s 1234567
- Перейдите (