CameraX 供應商擴展驗證工具

CameraX 供應商擴展驗證工具允許設備製造商驗證CameraX OEM 供應商庫是否正確實施。該工具包括自動和手動驗證測試。

  • 自動驗證測試:驗證供應商庫接口是否正確實現。例如,如果圖像捕獲需要CaptureProcessor ,則測試驗證ImageCaptureExtenderImpl#getCaptureStages()返回捕獲圖像所需的CaptureStage實例。

  • 手動驗證測試:驗證預覽和捕獲圖像的圖像效果和質量。例如,該測試允許設備製造商手動驗證面部修飾效果是否應用正確或散景強度是否足夠。

驗證工具的源代碼是Android Jetpack 存儲庫擴展測試應用程序的一部分。

構建 CameraX 供應商擴展驗證工具

要構建擴展驗證工具,請執行以下步驟:

  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
    
  • 安卓測試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

運行手動驗證測試

手動驗證測試可在擴展測試應用程序中找到。安裝並啟動擴展測試應用程序後,通過點擊右上角的菜單項切換到驗證工具模式。

切換到驗證工具模式後,第一頁列出了所有包含BACKWARD_COMPATIBLE功能的相機。如果相機不支持任何擴展模式,則其對應的列表項為灰色。

camera_validation_result-initial

圖 3.驗證工具模式

點擊其中一個攝像頭以查看用於測試的擴展模式。所選攝像機不支持的擴展模式顯示為灰色。

extension_mode_validation_result-initial

圖 4.相機可用的擴展模式

驗證預覽結果

要驗證預覽結果,請通過點擊所選相機的擴展模式來開始手動測試。然後顯示包含預覽的圖像捕獲活動。

預覽-bokeh_enabled

圖 5.啟用散景的預覽圖像

圖像捕獲活動支持以下功能:

  • 放大/縮小
  • 點擊對焦
  • 閃光模式切換按鈕
  • 電動汽車 +/-
  • 擴展啟用/禁用切換按鈕

驗證放大/縮小、點擊對焦、閃光模式和 EV +/- 功能在預覽中是否按預期工作。

驗證捕獲的圖像結果

要捕獲圖像,請點擊圖像捕獲活動中的捕獲按鈕。這將啟動顯示捕獲圖像的圖像驗證活動。

photo_viewer-bokeh_enabled

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

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

  • 收縮/收縮以縮放圖像
  • 左右滑動切換拍攝的圖像
  • 奪回
  • 保存圖像菜單項

驗證捕獲的圖像是否正確,並與捕獲圖像時設置的放大/縮小、點擊對焦、閃光模式和 EV +/- 設置相匹配。

如果捕獲的結果正確,請點擊右下角的PASS按鈕。否則,請點擊左下角的“失敗”按鈕。

查看測試結果

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

  • 白色背景:相機至少支持一種擴展模式,並且支持的擴展模式未完全驗證。
  • 綠色背景:相機至少支持一種擴展模式。所有支持的擴展模式都經過驗證,所有結果都通過了。
  • 紅色背景:相機至少支持一種擴展模式。所有支持的擴展模式都經過驗證,至少有一個擴展模式結果失敗。

camera_validation_resultextension_mode_validation_result

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

其他驗證工具功能

在所有測試完成後,相機列表活動提供以下功能:

  • 導出測試結果:將測試結果作為 CSV 文件導出到Documents/ExtensionsValidation文件夾。
  • 重置:清除所有緩存的測試結果。
  • 擴展示例應用:切換到擴展示例應用模式。

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