カメラ拡張機能検証ツール

カメラ拡張機能検証ツールを使用すると、デバイス メーカーはカメラ拡張機能 OEM ベンダー ライブラリが正しく実装されていることを確認できます。このツールには、自動検証テストと手動検証テストが含まれています。

  • 自動検証テスト:ベンダー ライブラリ インターフェイスが正しく実装されていることを検証します。たとえば、画像のキャプチャにCaptureProcessorが必要な場合、テストではImageCaptureExtenderImpl#getCaptureStages()画像のキャプチャに必要なCaptureStageインスタンスを返すかどうかを検証します。

  • 手動検証テスト:プレビュー画像とキャプチャ画像の画像効果と品質を検証します。たとえば、このテストにより、デバイス メーカーは、顔レタッチ効果が正しく適用されているかどうか、またはボケの強度が十分であるかどうかを手動で検証できます。

検証ツールのソース コードは、Android Jetpack リポジトリ拡張機能テスト アプリの一部です。

カメラ拡張機能検証ツールを構築する

拡張機能検証ツールを構築するには、次の手順に従います。

  1. Android Jetpack ライブラリのソース コードをダウンロードします。詳細については、 Android Jetpack README「コードのチェックアウト」セクションを参照してください。

  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および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結果が返されます。それ以外の場合、すべてのテストが完了した後、最終テスト レポートに端末の障害が表示されます。

自動検証結果パス

図 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.検証ツールモード

いずれかのカメラをタップすると、テスト用の拡張モードが表示されます。選択したカメラでサポートされていない拡張モードは灰色で表示されます。

extension_mode_validation_result-initial

図 4.カメラで利用可能な拡張モード

プレビュー結果を確認する

プレビュー結果を確認するには、選択したカメラの拡張モードをタップして手動テストを開始します。次に、プレビューを含む画像キャプチャ アクティビティが表示されます。

プレビュー-ボケ_有効化

図 5.ボケ味を有効にしたプレビュー画像

画像キャプチャ アクティビティは次の機能をサポートします。

  • ズームイン/ズームアウト
  • タップしてフォーカス
  • フラッシュモード切り替えボタン
  • EV+/-
  • 拡張機能有効/無効切り替えボタン

プレビューで、ズームイン/アウト、タップしてフォーカス、フラッシュ モード、EV +/- 機能が期待どおりに動作することを確認します。

キャプチャした画像の結果を確認する

画像をキャプチャするには、画像キャプチャ アクティビティで[キャプチャ]ボタン (丸いボタン) をタップします。これにより、キャプチャされた画像を表示する画像検証アクティビティが起動されます。

photo_viewer-bokeh_enabled

図 6.ボケ味を有効にしたキャプチャ画像

イメージ検証アクティビティには次の機能が含まれます。

  • ピンチイン/ピンチアウトして画像を拡大縮小します
  • 左右にスライドすると撮影画像が切り替わります
  • 奪還
  • 画像の保存メニュー項目

キャプチャした画像が正しく、画像のキャプチャ時に設定されたズームイン/アウト、タップしてフォーカス、フラッシュ モード、EV +/- 設定と一致しているかどうかを確認します。

キャプチャ結果が正しい場合は、右下隅のPASSボタン (チェックマーク) をタップします。それ以外の場合は、左下隅にある「FAIL」ボタン (感嘆符) をタップします。

テスト結果の表示

拡張モードが合格または不合格として検証されると、拡張モードのリスト項目には異なる背景色とインジケータが表示されます。全カメラのリストビューでは、項目が次の色で表示されます。

  • 白の背景:カメラは少なくとも 1 つの拡張モードをサポートしていますが、サポートされている拡張モードは完全には検証されていません。
  • 緑色の背景:カメラは少なくとも 1 つの拡張モードをサポートします。サポートされているすべての拡張モードは検証され、すべての結果が合格します。
  • 赤の背景:カメラは少なくとも 1 つの拡張モードをサポートします。サポートされているすべての拡張モードが検証され、少なくとも 1 つの拡張モードの結果が失敗します。
  • 灰色の背景:この機能は使用できません。

カメラ検証結果拡張モード検証結果

図 7.カメラと拡張モードのテスト結果を示す色

その他の検証ツールの機能

すべてのテストが完了すると、カメラ リスト アクティビティは次の機能を提供します。

  • テスト結果のエクスポート:テスト結果を CSV ファイルとしてDocuments/ExtensionsValidationフォルダーにエクスポートします。
  • リセット:キャッシュされたテスト結果をすべてクリアします。
  • 拡張機能サンプル アプリ:拡張機能サンプル アプリ モードに切り替えます。

テストが完了したら、テスト結果をエクスポートできます。問題が見つかり、ソリューションを備えたベンダー ライブラリ実装の新しいバージョンを再度検証する必要がある場合は、以前のテスト結果をリセットし、すべてのカメラでサポートされているすべての拡張モードを再実行して、問題が修正されていることを確認します。