Инструмент проверки расширений камеры позволяет производителям устройств убедиться в правильности реализации библиотеки расширений камеры 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 .
extensionstestappAPKadb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apkandroidTestAPKadb 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Если все тесты пройдены успешно, возвращается результат «ОК» . В противном случае, в итоговом отчете о тестировании после завершения всех тестов в терминале отображаются ошибки.

Рисунок 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. - Сброс: Очищает все кэшированные результаты тестов.
- Пример приложения расширений: Переключается в режим примера приложения расширений.
После завершения тестирования вы можете экспортировать результаты. Если вы обнаружите проблему и потребуется повторная проверка новой версии реализации библиотеки поставщика с соответствующими решениями, сбросьте предыдущие результаты тестирования и повторно запустите все поддерживаемые режимы расширения на всех камерах, чтобы убедиться в устранении проблем.