相機擴充功能驗證工具

相機擴充功能驗證工具可讓裝置製造商驗證 Camera Extensions 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
    

執行自動驗證測試

如要執行自動驗證測試,請安裝 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」結果。否則,最終測試報告會在所有測試完成後在終端機中顯示失敗。

automated_validation_result-pass

圖 1. 自動化測試 OK 結果

automated_validation_result-fail

圖 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 功能的所有攝影機。如果相機不支援任何擴充功能模式,對應的清單項目會顯示為灰色。

camera_validation_result-initial

圖 3. 驗證工具模式

輕觸其中一個攝影機,即可查看要測試的擴充功能模式。所選攝影機不支援的擴充模式會顯示為灰色。

extension_mode_validation_result-initial

圖 4. 相機可用的擴充功能模式

驗證預覽結果

如要驗證預覽結果,請輕觸所選攝影機的擴充模式,開始手動測試。接著會顯示含有預覽畫面的圖片擷取活動。

preview-bokeh_enabled

圖 5. 已啟用散景效果的預覽圖片

圖片拍攝活動支援下列功能:

  • 放大/縮小
  • 輕觸對焦
  • 閃光燈模式切換鈕
  • EV +/-
  • 擴充功能已啟用/停用的切換按鈕

確認在預覽畫面中,縮放、輕觸對焦、閃光燈模式和 EV +/- 功能是否正常運作。

驗證擷取的圖像結果

如要擷取圖片,請輕觸圖片擷取活動中的「CAPTURE」按鈕 (圓形按鈕)。這會啟動圖片驗證活動,顯示所拍攝的圖片。

photo_viewer-bokeh_enabled

圖 6. 已啟用散景效果的擷取圖片

圖片驗證活動包含下列函式:

  • 雙指撥動可調整圖片顯示比例
  • 向左/右滑動可切換已拍攝的圖片
  • 重新擷取
  • 「儲存圖片」選單項目

確認擷取的圖片是否正確,且與擷取圖片時設定的縮放、輕觸對焦、閃光燈模式和 EV +/- 設定相符。

如果擷取的結果正確無誤,請輕觸右下角的「PASS」按鈕 (勾號)。否則,請輕觸左下角的「失敗」按鈕 (驚嘆號)。

查看測試結果

在擴充模式經過驗證,判定為通過或失敗後,擴充模式的清單項目會顯示不同的背景顏色和指標。在所有攝影機的清單檢視畫面中,系統會以以下顏色顯示項目:

  • 白色背景:相機支援至少一種擴充模式,但未完全驗證支援的擴充模式。
  • 綠色背景:相機至少支援一種擴充模式。所有支援的擴充功能模式都會經過驗證,且所有結果都會通過。
  • 紅色背景:相機至少支援一種擴充功能模式。所有支援的擴充功能模式都會經過驗證,且至少有一個擴充功能模式的結果失敗。
  • 灰色背景:無法使用這項功能。

camera_validation_result extension_mode_validation_result

圖 7. 用顏色標示相機和擴充模式的測試結果

其他驗證工具功能

所有測試完成後,攝影機清單活動會提供下列函式:

  • 匯出測試結果:將測試結果匯出為 CSV 檔案,並儲存至 Documents/ExtensionsValidation 資料夾。
  • 重設:清除所有快取的測試結果。
  • 擴充功能範例應用程式:切換至擴充功能範例應用程式模式。

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