카메라 확장 유효성 검사 도구를 사용하면 장치 제조업체에서 카메라 확장 OEM 공급업체 라이브러리 가 올바르게 구현되었는지 확인할 수 있습니다. 이 도구에는 자동화 및 수동 검증 테스트가 포함됩니다.
자동화된 검증 테스트: 공급업체 라이브러리 인터페이스가 올바르게 구현되었는지 검증합니다. 예를 들어 이미지 캡처에
CaptureProcessor
가 필요한 경우 테스트에서ImageCaptureExtenderImpl#getCaptureStages()
가 이미지 캡처에 필요한CaptureStage
인스턴스를 반환하는지 확인합니다.수동 검증 테스트: 미리보기 및 캡처된 이미지의 이미지 효과와 품질을 검증합니다. 예를 들어 테스트를 통해 장치 제조업체는 얼굴 보정 효과가 올바르게 적용되었는지 또는 보케 강도가 충분한지 수동으로 검증할 수 있습니다.
유효성 검사 도구의 소스 코드는 Android Jetpack 저장소 에 있는 확장 테스트 앱 의 일부입니다.
카메라 확장 검증 도구 빌드
확장 확인 도구를 빌드하려면 다음 단계를 따르세요.
Android Jetpack 라이브러리 소스 코드를 다운로드합니다. 자세한 내용은 Android Jetpack README 의 코드 확인 섹션을 참조하세요.
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
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
및 androidTest
APK를 설치하세요.
extensionstestapp
테스트 앱 APKadb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
androidTest
APKadb 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
기능이 포함된 모든 카메라가 나열됩니다. 카메라가 확장 모드를 지원하지 않는 경우 해당 목록 항목은 회색입니다.
그림 3. 검증 도구 모드
테스트용 확장 모드를 보려면 카메라 중 하나를 탭하십시오. 선택한 카메라에서 지원하지 않는 확장 모드는 회색으로 표시됩니다.
그림 4. 카메라에 사용할 수 있는 확장 모드
미리보기 결과 확인
미리보기 결과를 확인하려면 선택한 카메라의 확장 모드를 눌러 수동 테스트를 시작하세요. 그러면 미리보기가 포함된 이미지 캡처 활동이 표시됩니다.
그림 5. 보케가 활성화된 미리보기 이미지
이미지 캡처 활동은 다음 기능을 지원합니다.
- 확대/축소
- 탭하여 초점 맞추기
- 플래시 모드 전환 버튼
- EV +/-
- 확장 활성화/비활성화 전환 버튼
확대/축소, 탭하여 초점 맞추기, 플래시 모드 및 EV +/- 기능이 미리 보기에서 예상대로 작동하는지 확인합니다.
캡처된 이미지 결과 확인
이미지를 캡처하려면 이미지 캡처 활동에서 CAPTURE 버튼(둥근 버튼)을 누릅니다. 그러면 캡처된 이미지를 표시하는 이미지 유효성 검사 활동이 시작됩니다.
그림 6. 보케가 활성화된 캡처 이미지
이미지 유효성 검사 활동에는 다음 기능이 포함됩니다.
- 이미지를 확대/축소하려면 핀치 인/아웃
- 캡처한 이미지를 전환하려면 왼쪽/오른쪽으로 밀기
- 탈환
- 이미지 메뉴 항목 저장
캡처한 이미지가 올바르고 이미지를 캡처할 때 설정한 확대/축소, 탭하여 초점, 플래시 모드 및 EV +/- 설정과 일치하는지 확인합니다.
캡처한 결과가 정확하면 오른쪽 하단 모서리에 있는 PASS 버튼(체크 표시)을 누릅니다. 그렇지 않으면 왼쪽 하단 모서리에 있는 FAIL 버튼(느낌표)을 탭합니다.
테스트 결과 보기
확장 모드가 통과 또는 실패로 확인되면 확장 모드의 목록 항목에 다른 배경색과 표시기가 표시됩니다. 모든 카메라의 목록 보기에서 항목은 다음 색상으로 표시됩니다.
- 흰색 배경: 카메라가 하나 이상의 확장 모드를 지원하며 지원되는 확장 모드가 완전히 검증되지 않았습니다.
- 녹색 배경: 카메라가 하나 이상의 확장 모드를 지원합니다. 지원되는 모든 확장 모드는 모든 결과를 통과하여 검증됩니다.
- 빨간색 배경: 카메라가 하나 이상의 확장 모드를 지원합니다. 지원되는 모든 확장 모드는 하나 이상의 확장 모드 결과가 실패하면서 검증되었습니다.
- 회색 배경: 이 기능을 사용할 수 없습니다.
그림 7. 카메라 및 확장 모드에 대한 테스트 결과를 나타내는 색상
기타 유효성 검사 도구 기능
모든 테스트가 완료된 후 카메라 목록 활동은 다음 기능을 제공합니다.
- 테스트 결과 내보내기: 테스트 결과를 CSV 파일로
Documents/ExtensionsValidation
폴더에 내보냅니다. - 재설정: 캐시된 모든 테스트 결과를 지웁니다.
- 확장 샘플 앱: 확장 샘플 앱 모드로 전환합니다.
테스트를 완료한 후 테스트 결과를 내보낼 수 있습니다. 문제를 발견하고 솔루션이 포함된 공급업체 라이브러리 구현의 새 버전을 다시 확인해야 하는 경우 이전 테스트 결과를 재설정하고 모든 카메라에서 지원되는 모든 확장 모드를 다시 실행하여 문제가 수정되었는지 확인하십시오.