相機擴展驗證工具

相機擴充驗證工具可讓設備製造商驗證相機擴充 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
    

執行自動化驗證測試

若要執行自動驗證測試,請安裝extensionstestappandroidTest 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.自動化測試正常結果

自動驗證結果失敗

圖 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 +/- 功能是否按預覽中的預期工作。

驗證捕獲的影像結果

若要擷取影像,請點選影像擷取活動中的「擷取」按鈕(圓形按鈕)。這將啟動顯示捕獲影像的影像驗證活動。

photo_viewer-bokeh_enabled

圖 6.啟用散景後捕獲的圖像

影像驗證活動包括以下功能:

  • 捏合/張開以縮放影像
  • 左右滑動切換拍攝影像
  • 奪回
  • 儲存圖片選單項

驗證拍攝的影像是否正確,並與拍攝影像時設定的放大/縮小、點擊對焦、閃光模式和 EV +/- 設定相符。

如果捕獲的結果正確,請點選右下角的「通過」按鈕(複選標記)。否則,請點選左下角的「失敗」按鈕(感嘆號)。

查看測試結果

擴展模式被驗證為通過或失敗後,擴展模式的列表項目顯示不同的背景顏色和指示符。在所有攝影機的清單檢視中,項目以以下顏色顯示:

  • 白色背景:相機支援至少一種擴展模式,且支援的擴展模式尚未完全驗證。
  • 綠色背景:相機支援至少一種擴展模式。所有支援的擴展模式均經過驗證,所有結果均通過。
  • 紅色背景:相機支援至少一種擴充模式。所有受支援的擴展模式均經過驗證,至少有一種擴展模式結果失敗。
  • 灰色背景:此功能不可用。

相機驗證結果擴展模式驗證結果

圖 7.表示相機和擴展模式測試結果的顏色

其他驗證工具功能

所有測試完成後,相機清單Activity提供以下功能:

  • 匯出測試結果:將測試結果作為 CSV 檔案匯出到Documents/ExtensionsValidation資料夾。
  • 重置:清除所有快取的測試結果。
  • 擴展範例應用程式:切換到擴展範例應用程式模式。

完成測試後,可以匯出測試結果。如果您發現問題並且需要再次驗證供應商庫實施的新版本以及解決方案,請重設先前的測試結果並在所有相機上重新執行所有支援的擴展模式以驗證問題是否已解決。