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

Инструмент проверки расширений камеры позволяет производителям устройств проверять правильность реализации библиотеки 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 .

  • APK extensionstestapp

      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

Если все тесты пройдены, возвращается результат «ОК» . В противном случае окончательный отчет о тестировании покажет сбои в терминале после завершения всех тестов.

автоматизированный_validation_result-pass

Рисунок 1. Результат автоматизированных тестов — ОК

автоматизированный_validation_result-fail

Рисунок 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. Доступные для камеры режимы расширения

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

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

предварительный просмотр-bokeh_enabled

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

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

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

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

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

Чтобы сделать снимок, нажмите кнопку «ЗАХВАТ» (круглую кнопку) в процессе захвата изображения. При этом запускается действие проверки изображения, которое показывает захваченное изображение.

photo_viewer-bokeh_enabled

Рисунок 6. Снимок с включенным эффектом боке.

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

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

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

Если полученные результаты верны, нажмите кнопку «PASS» (галочка) в правом нижнем углу. В противном случае нажмите кнопку FAIL (восклицательный знак) в левом нижнем углу.

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

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

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

camera_validation_resultExtension_mode_validation_result

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

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

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

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

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