Инструмент проверки расширений камеры позволяет производителям устройств проверять корректность реализации OEM-библиотеки расширений камеры . Инструмент включает в себя автоматизированные и ручные тесты проверки.
Автоматизированные проверочные тесты: проверяют корректность реализации интерфейса библиотеки поставщика. Например, если для захвата изображений требуется
CaptureProcessor
, тесты проверяют, чтоImageCaptureExtenderImpl#getCaptureStages()
возвращает необходимые экземплярыCaptureStage
для захвата изображений.Ручные проверочные тесты: проверка эффектов изображения и качества предварительных и отснятых изображений. Например, тесты позволяют производителям устройств вручную проверять правильность применения эффекта ретуши лица и достаточную интенсивность эффекта боке.
Исходный код инструмента проверки является частью тестового приложения расширений в репозитории Android Jetpack .
Создайте инструмент проверки расширений камеры
Чтобы создать инструмент проверки расширений, выполните следующие действия:
Загрузите исходный код библиотеки Android Jetpack. Подробности см. в разделе «Проверка кода» файла README Android Jetpack .
Создайте APK-файл
extensionstestapp
. Это позволит проводить ручные проверочные тесты.cd path/to/checkout/frameworks/support/
./gradlew camera:integration-tests:camera-testapp-extensions:assembleDebug
APK выводится по следующему пути:
path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
Создайте APK-файл
androidTest
. Этот APK-файл позволяет запускать автоматизированные проверочные тесты.cd path/to/checkout/frameworks/support/
./gradlew camera:integration-tests:camera-testapp-extensions:assembleAndroidTest
APK выводится по следующему пути:
path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/androidTest/debug/camera-testapp-extensions-debug-androidTest.apk
Запускайте автоматизированные проверочные тесты
Для запуска автоматизированных проверочных тестов установите APK-файлы extensionstestapp
и androidTest
.
extensionstestapp
APKadb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
androidTest
APKadb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/androidTest/debug/camera-testapp-extensions-debug-androidTest.apk
Запустить все автоматизированные тесты
После установки APK-файлов, чтобы запустить все автоматизированные тесты для проверки реализации библиотеки поставщика, выполните следующую команду:
adb shell am instrument -w -r androidx.camera.integration.extensions.test/androidx.test.runner.AndroidJUnitRunner
Если все тесты пройдены, возвращается результат «OK» . В противном случае в итоговом отчёте по завершении всех тестов в терминале отображаются ошибки.
Рисунок 1. Результат автоматизированных тестов OK
Рисунок 2. Результат автоматизированных тестов с ошибками
Запуск автоматизированных тестов определенного класса
Чтобы запустить автоматизированные тесты для конкретного класса, укажите имя и путь к целевому классу. В следующем примере показана команда для запуска тестов для класса ImageCaptureTest
:
adb shell am instrument -w -r -e class **androidx.camera.integration.extensions.ImageCaptureTest** androidx.camera.integration.extensions.test/androidx.test.runner.AndroidJUnitRunner
Выполнение ручных проверочных тестов
Ручные тесты проверки находятся в приложении для тестирования расширений . После установки и запуска приложения для тестирования расширений переключитесь в режим инструмента проверки, нажав на пункт меню в правом верхнем углу.
После переключения в режим инструмента проверки на первой странице отображается список всех камер с поддержкой REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
. Если камера не поддерживает ни один из режимов расширения, соответствующий ей элемент списка отображается серым цветом.
Рисунок 3. Режим инструмента проверки
Нажмите на одну из камер, чтобы увидеть режимы расширения для тестирования. Режимы расширения, не поддерживаемые выбранной камерой, отображаются серым цветом.
Рисунок 4. Режимы расширения, доступные для камеры
Проверьте результаты предварительного просмотра
Чтобы проверить результаты предварительного просмотра, запустите ручной тест, выбрав режим расширения для выбранной камеры. После этого отобразится процесс захвата изображения, содержащий предварительный просмотр.
Рисунок 5. Предварительный просмотр изображения с включенным эффектом боке.
Действие захвата изображения поддерживает следующие функции:
- Увеличение/уменьшение масштаба
- Фокусировка касанием
- Кнопка переключения режимов вспышки
- EV +/-
- Кнопка переключения включения/выключения расширения
Убедитесь, что функции увеличения/уменьшения масштаба, фокусировки касанием, режимов вспышки и EV +/- работают в предварительном просмотре так, как и ожидалось.
Проверьте результаты захваченного изображения
Чтобы сделать снимок, нажмите кнопку «СЪЕМКА» (круглая кнопка) в окне захвата изображения. Это запустит процесс проверки изображения, в котором будет показано полученное изображение.
Рисунок 6. Изображение с включенным эффектом боке.
Проверка изображения включает в себя следующие функции:
- Масштабируйте изображение с помощью пальцев
- Проведите пальцем влево/вправо, чтобы переключить снятые изображения.
- Повторный захват
- Пункт меню «Сохранить изображение»
Проверьте правильность сделанного снимка и соответствие настройкам увеличения/уменьшения масштаба, фокусировки касанием, режимов вспышки и EV +/-, заданным при съемке изображения.
Если результаты верны, нажмите кнопку «ПРОШЕЛ» (с галочкой) в правом нижнем углу. В противном случае нажмите кнопку «НЕ ПРОШЕЛ » (с восклицательным знаком) в левом нижнем углу.
Посмотреть результаты теста
После проверки режима расширения на соответствие требованиям (пройдено или нет) элемент списка для этого режима расширения отображает другой цвет фона и индикатор. В списке всех камер элементы отображаются следующими цветами:
- Белый фон: камера поддерживает как минимум один режим расширения, и поддерживаемые режимы расширения не проверены полностью.
- Зелёный фон: камера поддерживает как минимум один режим расширения. Все поддерживаемые режимы расширения проверены, все результаты успешны.
- Красный фон: камера поддерживает как минимум один режим расширения. Все поддерживаемые режимы расширения проверены, и как минимум один режим расширения дал отрицательный результат.
- Серый фон: эта функция недоступна.
Рисунок 7. Цвета, обозначающие результаты тестирования камер и режимов расширения
Другие функции инструмента проверки
После завершения всех тестов действие списка камер обеспечивает следующие функции:
- Экспорт результатов теста: экспортирует результаты теста в виде CSV-файла в папку
Documents/ExtensionsValidation
. - Сброс: очищает все кэшированные результаты тестов.
- Пример приложения расширений: переключает в режим примера приложения расширений.
После завершения тестирования вы можете экспортировать результаты. Если вы обнаружите проблему и потребуется повторная проверка новой версии реализации библиотеки поставщика с решениями, сбросьте предыдущие результаты теста и повторно запустите все поддерживаемые режимы расширения на всех камерах, чтобы убедиться в устранении проблем.