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

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

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

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

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

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

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

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

  2. Соберите extensionstestapp APK. Это позволяет запускать ручные проверочные тесты.

      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. Создайте androidTest APK. Этот 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. Режимы расширения, доступные для камеры

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

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

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

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

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

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

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

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

Чтобы захватить изображение, нажмите кнопку CAPTURE (круглая кнопка) в действии по захвату изображения. Это запустит действие по проверке изображения, которое покажет захваченное изображение.

photo_viewer-bokeh_enabled

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

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

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

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

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

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

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

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

результат_проверки_камерырезультат_проверки_режима_расширения

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

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

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

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

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