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

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

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

  • 手動検証テスト: 画像のエフェクトと、プレビュー画像およびキャプチャ画像の品質を検証します。デバイス メーカーは、たとえば顔写真加工エフェクトが正しく適用されているかどうかや、ボケ味の強さが十分かどうかを手動で検証できます。

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

カメラ拡張機能検証ツールをビルドする

拡張機能検証ツールのビルド手順は次のとおりです。

  1. Android Jetpack ライブラリのソースコードをダウンロードします。詳しくは、Android Jetpack READMEコードのチェックアウトに関するセクションをご覧ください。

  2. extensionstestapp APK をビルドします。この 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. Failures が返された自動テストの結果

特定のクラスの自動テストを実行する

特定のクラスの自動テストを実行するには、テスト対象のクラスの名前とパスを指定します。次の例は、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 + / - の設定と一致するかどうかを確認します。

キャプチャ結果が正しい場合は、右下隅の合格ボタン(チェックマーク)をタップします。正しくない場合は、左下隅の不合格ボタン(感嘆符)をタップします。

テスト結果を表示する

拡張機能モードの検証が合格または不合格となると、その拡張機能モードに対応するリスト項目の背景色とインジケーターが変わります。すべてのカメラのリストビューでは、項目が次の色で表示されます。

  • 背景が白: カメラは少なくとも 1 つの拡張機能モードをサポートしています。サポートされている拡張機能モードのいずれかが検証されていません。
  • 背景が緑: カメラは少なくとも 1 つの拡張機能モードをサポートしています。サポートされているすべての拡張モードが検証され、結果はすべて合格です。
  • 背景が赤: カメラは少なくとも 1 つの拡張機能モードをサポートしています。サポートされているすべての拡張機能モードが検証され、1 つ以上の拡張機能モードの結果が不合格です。
  • 背景がグレー: この機能は利用できません。

camera_validation_result extension_mode_validation_result

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

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

すべてのテストが完了したら、カメラリスト アクティビティの次の機能を実行できます。

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

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