카메라 확장 프로그램 유효성 검사 도구

카메라 확장 프로그램 유효성 검사 도구를 사용하면 카메라 확장 프로그램 OEM 공급업체 라이브러리가 올바르게 구현되었는지 기기 제조업체에서 확인할 수 있습니다. 도구에는 자동 및 수동 유효성 검사 테스트가 포함됩니다.

  • 자동 유효성 검사 테스트: 공급업체 라이브러리 인터페이스가 올바르게 구현되었는지 검사합니다. 예를 들어 이미지 캡처에 CaptureProcessor가 필요하다면 테스트는 ImageCaptureExtenderImpl#getCaptureStages()가 이미지 캡처에 필요한 CaptureStage 인스턴스를 반환하는지 확인합니다.

  • 수동 유효성 검사 테스트: 미리보기와 캡처된 이미지의 이미지 효과 및 품질을 검사합니다. 예를 들어 기기 제조업체는 테스트를 통해 얼굴 보정 효과가 올바르게 적용되는지 또는 빛망울 효과의 강도가 충분한지를 수동으로 확인할 수 있습니다.

유효성 검사 도구의 소스 코드는 Android Jetpack 저장소에 있는 확장 프로그램 테스트 앱의 일부입니다.

카메라 확장 프로그램 유효성 검사 도구 빌드

다음 단계에 따라 확장 프로그램 유효성 검사 도구를 빌드합니다.

  1. Android Jetpack 라이브러리 소스 코드를 다운로드합니다. 자세한 내용은 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
    

자동 유효성 검사 테스트 실행

자동 유효성 검사 테스트를 실행하려면 extensionstestapp APK와 androidTest APK를 설치합니다.

  • 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 결과가 반환됩니다. 통과하지 못한 테스트가 있으면 모든 테스트가 완료된 후 최종 테스트 보고서에 포함된 실패한 테스트가 터미널에 표시됩니다.

automated_validation_result-pass

그림 1. 자동 테스트 OK 결과

automated_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. 카메라에 사용할 수 있는 확장 모드

미리보기 결과 확인

미리보기 결과를 확인하려면 선택한 카메라의 확장 모드를 탭하여 수동 테스트를 시작합니다. 테스트가 시작되면 미리보기를 포함하는 이미지 캡처 활동이 표시됩니다.

preview-bokeh_enabled

그림 5. 빛망울 효과가 사용 설정된 미리보기 이미지

이미지 캡처 활동은 다음 기능을 지원합니다.

  • 확대/축소
  • 탭하여 초점 맞추기
  • 플래시 모드 전환 버튼
  • EV +/-
  • 확장 프로그램 사용 설정/사용 중지 전환 버튼

확대/축소, 탭하여 초점 맞추기, 플래시 모드 및 EV +/- 기능이 미리보기에서 예상대로 작동하는지 확인합니다.

캡처된 이미지 결과 확인

이미지를 캡처하려면 이미지 캡처 활동에서 캡처 버튼(둥근 버튼)을 탭합니다. 이렇게 하면 캡처된 이미지를 보여주는 이미지 유효성 검사 활동이 시작됩니다.

photo_viewer-bokeh_enabled

그림 6. 빛망울 효과를 사용 설정하여 캡처한 이미지

이미지 유효성 검사 활동은 다음 기능을 포함합니다.

  • 손가락을 모았다 펴서 이미지 크기 조정
  • 왼쪽/오른쪽으로 슬라이드하여 캡처된 이미지 전환
  • 다시 캡처
  • 이미지 메뉴 항목 저장

캡처된 이미지가 맞고, 이미지를 캡처할 때 설정한 확대/축소, 탭하여 초점 맞추기, 플래시 모드, EV +/- 설정과 일치하는지 확인합니다.

캡처된 결과가 맞으면 오른쪽 하단의 통과 버튼(체크 표시)을 탭합니다. 맞지 않으면 왼쪽 하단에서 실패 버튼(느낌표)을 탭합니다.

테스트 결과 보기

확장 모드가 통과 또는 실패로 확인되면 해당 확장 모드의 목록 항목에 다른 배경 색상 및 표시기가 표시됩니다. 모든 카메라의 목록 보기 항목은 다음과 같은 색상으로 표시됩니다.

  • 흰색 배경: 카메라에서 하나 이상의 확장 모드를 지원하지만 지원되는 확장 모드는 완전히 검증되지 않았습니다.
  • 녹색 배경: 카메라에서 하나 이상의 확장 모드를 지원합니다. 지원되는 확장 모드가 모두 검증되었으며 테스트도 전부 통과했습니다.
  • 빨간색 배경: 카메라에서 하나 이상의 확장 모드를 지원합니다. 지원되는 확장 모드는 모두 검증되었으나 하나 이상의 확장 모드가 테스트를 통과하지 못했습니다.
  • 회색 배경: 이 기능을 사용할 수 없습니다.

camera_validation_result extension_mode_validation_result

그림 7. 카메라 및 확장 모드의 테스트 결과를 나타내는 색상

기타 유효성 검사 도구 기능

모든 테스트가 완료되면 카메라 목록 활동은 다음 기능을 제공합니다.

  • 테스트 결과 내보내기: 테스트 결과를 CSV 파일로 Documents/ExtensionsValidation 폴더에 내보냅니다.
  • 초기화: 캐시된 테스트 결과를 모두 삭제합니다.
  • 확장 프로그램 샘플 앱: 확장 프로그램 샘플 앱 모드로 전환합니다.

테스트를 완료한 후에는 테스트 결과를 내보낼 수 있습니다. 문제를 발견하여 솔루션이 있는 공급업체 라이브러리 구현의 새 버전을 다시 확인해야 하는 경우 이전 테스트 결과를 초기화한 다음 모든 카메라에서 지원되는 확장 모드를 전부 다시 실행하여 문제가 해결되었는지 확인합니다.