Дополняет набор тестов на совместимость Android (CTS Verifier). В то время как CTS проверяет API и функции, которые можно автоматизировать, CTS Verifier предоставляет тесты для API и функций, которые невозможно проверить на стационарном устройстве без ручного ввода или позиционирования, например, качество звука, сенсорный экран, акселерометр и камера.
Требования
Перед запуском CTS Verifier убедитесь, что у вас есть следующее оборудование:
- Устройство под управлением Android, прошедшее проверку на совместимость с API Android и успешно прошедшее тестирование CTS. Это тестируемое устройство (DUT).
- Компьютер под управлением Linux с портом, совместимым с USB 2.0. Все соединения с тестируемым устройством осуществляются через этот порт.
- Второе устройство на базе Android с известной совместимостью с Bluetooth, Wi-Fi Direct, Wi-Fi Aware, UWB (если тестируемое устройство поддерживает UWB) и эмуляцией NFC-карты (HCE).
- Wi-Fi роутер, настроенный с указанием имени точки доступа и пароля. Роутер должен иметь возможность отключаться от интернета без выключения питания.
Также убедитесь, что вы подготовили штативы, держатели для устройств и предварительно измеренные расстояния, необходимые для тестов измерения расстояния (близости) для UWB, Wi-Fi NAN и Bluetooth RSSI. Подробности см. в разделе «Калибровка присутствия» .
Требования UICC к тестам NFC
CTS Verifier предлагает следующие тестовые примеры для NFC:
- Отключение поля (использует данные транзакции из 0x54)
- Отменить выбор (используются данные транзакции из 0x52)
- Команда HCI (0025000000) (использует данные транзакции из 0x02)
Для тестирования событий транзакций требуется два устройства, одно из которых должно быть оснащено SecureElement UICC со следующими правилами доступа:
- Хеш APK CtsVerifier: 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
- Авторизованный идентификатор приложения (AID) для доступа к событиям NFC: 0xA000000476416E64726F696443545341
На стороне эмулятора мы ожидаем, что событие транзакции выведет соответствующую активность на передний план.
Настраивать
Измените режим навигации системы тестового устройства на трехкнопочный режим следующим образом:
- Откройте настройки.
- Перейдите в раздел Система > Жесты > Навигация по системе .
- Выберите любой режим навигации с помощью кнопок, предпочтительно трехкнопочный режим, если он доступен.
Для настройки среды тестирования CTS Verifier:
На компьютере с Linux:
- Перед установкой CTS Verifier выполните следующую команду, чтобы разрешить доступ к интерфейсам, не входящим в состав SDK.
adb shell settings put global hidden_api_policy 1Установите Android Studio .
Загрузите APK-файл CTS Verifier для нужной версии Android, чтобы протестировать приложение.
Подключите тестируемое устройство к компьютеру под управлением Linux.
В терминале компьютера под управлением Linux установите
CtsVerifier.apkна тестируемое устройство:adb install -r -g CtsVerifier.apkДля Android 10 и выше выполните следующую команду, чтобы предоставить приложению разрешение на создание отчета:
adb shell appops set com.android.cts.verifier android:read_device_identifiers allowДля Android 11 и выше выполните следующую команду, чтобы разрешить сохранение отчетов в самостоятельно определенной директории в корневом каталоге устройства:
adb shell appops set com.android.cts.verifier MANAGE_EXTERNAL_STORAGE 0Для Android 13 и выше выполните следующую команду, чтобы разрешить доступ к тестовому API для CTS Verifier:
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifierДля Android 14 и выше выполните следующую команду, чтобы предоставить приложению разрешение на включение экрана:
adb shell appops set com.android.cts.verifier TURN_SCREEN_ON 0Убедитесь, что на тестируемом устройстве правильно установлены системная дата и время.
Запустите CTS Verifier
Запустите приложение CTS Verifier, коснувшись значка CTS Verifier на тестируемом устройстве.
![]()
Рисунок 1. Значок верификатора CTS.
Приложение отображает несколько наборов тестов, доступных для ручной проверки.

Рисунок 2. Меню тестов CTS Verifier.
Каждый тест содержит набор общих элементов в нижней части экрана.

Рисунок 3. Экран тестирования с выделенными общими элементами теста.
- Пройдено (✓). Нажмите, если тестируемое устройство соответствует требованиям теста согласно инструкциям в разделе «Информация».
- Информация (?). Нажмите, чтобы отобразить инструкции к тесту. Также появляется автоматически при первом открытии теста.
- Ошибка (!). Нажмите, если тестируемое устройство не соответствует требованиям теста согласно инструкциям в разделе «Информация».
Для некоторых тестов, таких как режим подключения USB-аксессуаров и тест калибровки камеры, требуется дополнительная настройка и инструкции, подробно описанные в следующих разделах.
Проверьте режим USB-аксессуара для версий 8.0 и выше.

Рисунок 4. Процедура проверки USB-аксессуаров для версий 8.0 и выше.

Рисунок 5. Тестирование режима USB-аксессуара для версий 8.0 и выше.
Проверка режима USB-аксессуара для версий 7.x и ниже.
Для проведения теста USB-аксессуаров требуется компьютер под управлением Linux, на котором запущена программа для запуска USB-устройства на настольном компьютере (хосте).
- Подключите тестируемое устройство к компьютеру под управлением Linux.
На компьютере запустите программу
cts-usb-accessoryиз пакета CTS Verifier:./cts-usb-accessoryДождитесь появления диалогового окна на тестируемом устройстве, затем нажмите OK .

Рисунок 6. Тестирование USB-аксессуара.
В приложении CTS Verifier на тестируемом устройстве перейдите к проверке USB-подключения.
На компьютере просмотрите вывод консоли. Пример вывода:
CTS USB Accessory Tester Found possible Android device (413c:2106) - attempting to switch to accessory mode... Failed to read protocol versionfigure3 Found Android device in accessory mode (18d1:2d01)... [RECV] Message from Android device #0 [SENT] Message from Android accessory #0 [RECV] Message from Android device #1 [SENT] Message from Android accessory #1 [RECV] Message from Android device #2 [SENT] Message from Android accessory #2 [RECV] Message from Android device #3 [SENT] Message from Android accessory #3 [RECV] Message from Android device #4 [SENT] Message from Android accessory #4 [RECV] Message from Android device #5 [SENT] Message from Android accessory #5 [RECV] Message from Android device #6 [SENT] Message from Android accessory #6 [RECV] Message from Android device #7 [SENT] Message from Android accessory #7 [RECV] Message from Android device #8 [SENT] Message from Android accessory #8 [RECV] Message from Android device #9 [SENT] Message from Android accessory #9 [RECV] Message from Android device #10 [SENT] Message from Android accessory #10
Откалибруйте поле зрения камеры.
Используйте процедуру калибровки поля зрения, чтобы быстро и с умеренной точностью определить поле зрения устройства.
Настройте тестовую среду:
- Распечатайте PDF-файл с калибровочным шаблоном на бумаге формата 11 x 17 дюймов или A3.
- Наклейте напечатанный шаблон на жесткую основу.
Расположите камеру и напечатанную мишень так, как показано на следующей схеме:

Рисунок 7. Мишень, напечатанная камерой.
Задайте целевую ширину:
- Измерьте расстояние (в сантиметрах) между сплошными линиями на целевом рисунке, чтобы учесть погрешности печати (~38 см).
- Запустите приложение для калибровки.
- Нажмите кнопку настройки и выберите «Расстояние до маркера» .
- Измерьте и введите расстояние до целевого изображения (~100 см).
- Нажмите кнопку «Назад», чтобы вернуться к предварительному просмотру калибровки.
Убедитесь, что устройство и мишень расположены, как показано на рисунке, и что в диалоговом окне настройки введены правильные расстояния. В окне предварительного просмотра отображается изображение с наложенной на него вертикальной линией; эта линия должна совпадать с центральной линией мишени. Прозрачную сетку можно использовать вместе с другими вертикальными линиями, чтобы убедиться, что оптическая ось перпендикулярна мишени.
Выполните калибровочный тест:
- Выберите разрешение изображения (с помощью селектора в левом нижнем углу), затем коснитесь экрана, чтобы сделать снимок. Тест перейдет в режим калибровки и отобразит фотографию с двумя вертикальными линиями, наложенными на изображение.
- Определите точность:
- Если линии совпадают с вертикальными линиями на целевом шаблоне с точностью до нескольких сантиметров, то заявленное поле зрения для выбранного разрешения является точным.
- Если линии не совпадают, отображаемое поле зрения будет неточным. Для исправления этого отрегулируйте ползунок в нижней части экрана до тех пор, пока наложение не совпадет с целевым шаблоном как можно точнее. Когда наложение и изображение целевого шаблона совпадают, отображаемое поле зрения будет приблизительно соответствовать правильному значению. Отображаемое поле зрения должно отличаться от калибровочного значения не более чем на 2 градуса.
- Нажмите кнопку «Назад» и повторите калибровочный тест для всех разрешений изображения, поддерживаемых тестируемым устройством.
Запустите CTS Verifier для просмотра альтернативных режимов.
Начиная с версий CTS 10 R6 и CTS 11 R2, CTS Verifier поддерживает тесты, необходимые для устройств с альтернативными режимами или для устройств с более чем одним режимом экрана.
В верхней части основного списка в CTS Verifier отображается кнопка, позволяющая пользователям переключаться между развернутым и свернутым режимами отображения. CTS Verifier отобразит необходимые тесты для выбранного режима отображения. Для выполнения альтернативных режимов в CTS Verifier необходимо переключить кнопку в соответствующий режим отображения и запустить отображаемый список тестов.

Рисунок 8. Переключатель проверки CTS.
Результаты свернутных тестов будут записаны в тот же отчет, что и результаты несвернутных тестов. Для идентификации каждого результата теста, к которому относится набор тестов, к названию каждого теста в свернутом режиме добавляется суффикс.
<Test result="fail" name="com.android.cts.verifier.deskclock.DeskClockTestsActivity[folded]">
<RunHistory subtest="CREATE_ALARM[folded]">
<Run start="1594176663973" end="1594176665841" isAutomated="false" />
</RunHistory>
</Test>
Результаты экспорта
После завершения всех тестов вы можете сохранить результаты в виде отчета и загрузить их на компьютер. Названия отчетов автоматически добавляются с указанием времени, соответствующего системному времени тестируемого устройства.
Чтобы сохранить результаты тестирования, нажмите значок сохранения (на диск) в верхней части списка категорий тестов.
Дождитесь появления диалогового окна с путем к сохраненному отчету (например,
/sdcard/verifierReports/ctsVerifierReport-date-time.zip), затем запишите этот путь.Подключите тестируемое устройство к компьютеру под управлением Linux.
Загрузите отчеты с подключенного устройства из установленного Android SDK на компьютере с Linux, используя
adb shell content readилиadb pull CTSVerifierReportPath.Для Android 7.x и выше загрузите все отчеты, используя следующую команду:
adb pull /sdcard/verifierReportsДля Android 6.0 и ниже загрузите все отчеты, используя следующую команду:
adb pull /mnt/sdcard/ctsVerifierReports/Для Android 10 и выше, с поддержкой Automotive и устройств, работающих в качестве дополнительного пользователя , загрузите последнюю версию отчета, используя следующую команду:
adb shell content read --user <var>CURRENT_USER</var> --uri content://com.android.cts.verifier.testresultsprovider/reports/latest > report.zipЧтобы отобразить список всех отчетов, доступных на подключенном устройстве:
adb shell content query --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports ``` To download a report from the list, you can specify the Row ID or filename. For example: ```shell adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports/0 > report.zip ``` ```shell adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports ctsVerifierReport-date-time.zip > report.zip ```
Чтобы удалить результаты «пройдено» или «не пройдено», выберите результаты в приложении CTS Verifier и выберите Меню > Очистить .