Инструмент проверки совместимости Android (CTS Verifier) дополняет инструмент проверки совместимости Compatibility Test Suite (CTS). CTS проверяет API и функции, которые можно автоматизировать, а CTS Verifier — API и функции, которые невозможно протестировать на стационарном устройстве без ручного ввода или позиционирования, например, качество звука, сенсорный экран, акселерометр и камера.
Требования
Перед запуском CTS Verifier убедитесь, что у вас есть следующее оборудование:
- Устройство Android, успешно прошедшее проверку на совместимость с API Android, является тестируемым устройством (DUT).
- Компьютер на базе Linux с портом, совместимым с USB 2.0. Все подключения к проверяемому устройству осуществляются через этот порт.
- Второе устройство Android с заведомо совместимыми функциями Bluetooth, Wi-Fi Direct, Wi-Fi Aware, UWB (если DUT поддерживает UWB) и реализацией эмуляции хост-карты NFC (HCE).
- Wi-Fi-роутер, настроенный с указанием имени точки доступа и пароля. Роутер должен иметь возможность отключения от интернета, но не должен выключаться.
Также подготовьте штативы, держатели для устройств и предварительно измеренные расстояния, необходимые для проведения испытаний на дальность (близость) для UWB, Wi-Fi NAN и Bluetooth RSSI. Подробнее см. в разделе «Калибровка присутствия» .
Требования UICC к тестам NFC
CTS Verifier имеет следующие тестовые случаи NFC:
- Field-off (использует данные транзакции из 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 .
Загрузите CTS Verifier APK для версии 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 Verifier
Приложение отображает несколько наборов тестов, доступных для ручной проверки.
Рисунок 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
Дождитесь появления всплывающего сообщения на проверяемом устройстве, затем нажмите кнопку ОК .
Рисунок 6. Тест USB-аксессуара
Перейдите к тесту USB-аксессуара в приложении CTS Verifier на проверяемом устройстве.
На компьютере проверьте вывод консоли. Пример вывода:
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
Калибровка поля зрения камеры
Используйте процедуру калибровки поля зрения для быстрого определения поля зрения устройства с умеренной точностью.
Настройте тестовую среду:
- Распечатайте целевой файл calibration-pattern.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 Verifier
Результаты свёрнутых тестов будут записаны в том же отчёте, что и развёрнутые. Для идентификации результата каждого теста, из которого взят набор тестов, к названию каждого теста в свёрнутом режиме добавляется суффикс.
<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 CURRENT_USER --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
Чтобы загрузить отчёт из списка, укажите идентификатор строки или имя файла. Например:
adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports/0 > report.zip adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports/ctsVerifierReport-date-time.zip > report.zip
Чтобы очистить результаты «прошел/не прошёл», выберите результаты в приложении CTS Verifier и выберите Меню > Очистить .