Инструмент проверки расширений камеры

Инструмент проверки расширений камеры позволяет производителям устройств проверять корректность реализации OEM-библиотеки расширений камеры . Инструмент включает в себя автоматизированные и ручные тесты проверки.

  • Автоматизированные проверочные тесты: проверяют корректность реализации интерфейса библиотеки поставщика. Например, если для захвата изображений требуется CaptureProcessor , тесты проверяют, что ImageCaptureExtenderImpl#getCaptureStages() возвращает необходимые экземпляры CaptureStage для захвата изображений.

  • Ручные проверочные тесты: проверка эффектов изображения и качества предварительных и отснятых изображений. Например, тесты позволяют производителям устройств вручную проверять правильность применения эффекта ретуши лица и достаточную интенсивность эффекта боке.

Исходный код инструмента проверки является частью тестового приложения расширений в репозитории Android Jetpack .

Создайте инструмент проверки расширений камеры

Чтобы создать инструмент проверки расширений, выполните следующие действия:

  1. Загрузите исходный код библиотеки Android Jetpack. Подробности см. в разделе «Проверка кода» файла README Android Jetpack .

  2. Создайте 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
    
  3. Создайте 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 APK

      adb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
  • androidTest APK

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

camera_validation_result-initial

Рисунок 3. Режим инструмента проверки

Нажмите на одну из камер, чтобы увидеть режимы расширения для тестирования. Режимы расширения, не поддерживаемые выбранной камерой, отображаются серым цветом.

extension_mode_validation_result-initial

Рисунок 4. Режимы расширения, доступные для камеры

Проверьте результаты предварительного просмотра

Чтобы проверить результаты предварительного просмотра, запустите ручной тест, выбрав режим расширения для выбранной камеры. После этого отобразится процесс захвата изображения, содержащий предварительный просмотр.

preview-bokeh_enabled

Рисунок 5. Предварительный просмотр изображения с включенным эффектом боке.

Действие захвата изображения поддерживает следующие функции:

  • Увеличение/уменьшение масштаба
  • Фокусировка касанием
  • Кнопка переключения режимов вспышки
  • EV +/-
  • Кнопка переключения включения/выключения расширения

Убедитесь, что функции увеличения/уменьшения масштаба, фокусировки касанием, режимов вспышки и EV +/- работают в предварительном просмотре так, как и ожидалось.

Проверьте результаты захваченного изображения

Чтобы сделать снимок, нажмите кнопку «СЪЕМКА» (круглая кнопка) в окне захвата изображения. Это запустит процесс проверки изображения, в котором будет показано полученное изображение.

photo_viewer-bokeh_enabled

Рисунок 6. Изображение с включенным эффектом боке.

Проверка изображения включает в себя следующие функции:

  • Масштабируйте изображение с помощью пальцев
  • Проведите пальцем влево/вправо, чтобы переключить снятые изображения.
  • Повторный захват
  • Пункт меню «Сохранить изображение»

Проверьте правильность сделанного снимка и соответствие настройкам увеличения/уменьшения масштаба, фокусировки касанием, режимов вспышки и EV +/-, заданным при съемке изображения.

Если результаты верны, нажмите кнопку «ПРОШЕЛ» (с галочкой) в правом нижнем углу. В противном случае нажмите кнопку «НЕ ПРОШЕЛ » (с восклицательным знаком) в левом нижнем углу.

Посмотреть результаты теста

После проверки режима расширения на соответствие требованиям (пройдено или нет) элемент списка для этого режима расширения отображает другой цвет фона и индикатор. В списке всех камер элементы отображаются следующими цветами:

  • Белый фон: камера поддерживает как минимум один режим расширения, и поддерживаемые режимы расширения не проверены полностью.
  • Зелёный фон: камера поддерживает как минимум один режим расширения. Все поддерживаемые режимы расширения проверены, все результаты успешны.
  • Красный фон: камера поддерживает как минимум один режим расширения. Все поддерживаемые режимы расширения проверены, и как минимум один режим расширения дал отрицательный результат.
  • Серый фон: эта функция недоступна.

результат_проверки_камерыextension_mode_validation_result

Рисунок 7. Цвета, обозначающие результаты тестирования камер и режимов расширения

Другие функции инструмента проверки

После завершения всех тестов действие списка камер обеспечивает следующие функции:

  • Экспорт результатов теста: экспортирует результаты теста в виде CSV-файла в папку Documents/ExtensionsValidation .
  • Сброс: очищает все кэшированные результаты тестов.
  • Пример приложения расширений: переключает в режим примера приложения расширений.

После завершения тестирования вы можете экспортировать результаты. Если вы обнаружите проблему и потребуется повторная проверка новой версии реализации библиотеки поставщика с решениями, сбросьте предыдущие результаты теста и повторно запустите все поддерживаемые режимы расширения на всех камерах, чтобы убедиться в устранении проблем.