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

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

  • 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

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

автоматизированный_валидация_результат-проход

Рис. 1. Результаты автоматических тестов OK

автоматизированный_validation_result-ошибка

Рис. 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-начальный

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

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

extension_mode_validation_result-начальный

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

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

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

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

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

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

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

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

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

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

photo_viewer-bokeh_enabled

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

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

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

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

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

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

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

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

camera_validation_resultextension_mode_validation_result

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

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

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

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

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