在摺疊式裝置上測試相機圖片

自 Android 13 起,Camera ITS 支援測試摺疊式裝置。折疊式裝置的相機是否可用,取決於裝置是處於折疊或展開狀態。

攝影機 ID 會因裝置類型、型號和品牌而異,實體前置鏡頭的可用性則會因狀態而異。因此,Camera ITS 會動態判斷要用於測試的場景和相機組合。由於相機必須在摺疊和展開狀態下進行測試,因此在測試過程中,必須重新安裝 DUT。

測試前置和後置鏡頭

折疊式裝置的可用攝影機感應器會因裝置處於折疊或展開狀態而異。如果是折疊式裝置,前置鏡頭的可用性會因狀態而異。舉例來說,折疊狀態下無法使用前置鏡頭。由於前置鏡頭的可用性有所變更,因此必須在折疊和展開狀態下測試前置鏡頭。相機 ITS 會假設裝置摺疊或展開時,後置鏡頭的可用性維持不變,因此後置鏡頭只需測試一次。

視裝置狀態而定,Camera ITS 會篩除無法使用的攝影機裝置,這些裝置不會出現在攝影機和場景組合清單中。

下表說明各攝影機方向的 Camera ITS 測試行為。

切換前後鏡頭 攝影機 ITS 測試行為
後置鏡頭 測試相機一次,無論是摺疊或展開狀態
主要前置鏡頭 測試相機在折疊和展開狀態下的運作情形。
實體前置鏡頭 僅在攝影機可用的州別測試攝影機。

測試程序

本節說明如何測試摺疊式裝置的相機。

設定裝置

如需設定資訊,請參閱「設定」。

授予測試 API 存取權

如要讓 Camera ITS 判斷裝置是否為折疊式,您必須先授予測試 API 存取權,再叫用測試。如果未授予存取權,執行 Camera ITS 測試會導致應用程式當機。

如要授予存取權,請執行下列 ADB 指令。這項指令只需要在單一裝置上執行一次。如果重新安裝 CTS Verifier 時使用不同版本,則必須再次執行指令。

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier

設定檔

如要指定裝置為摺疊式裝置,請在 config.yml 檔案的 tabletsensor_fusion 測試平台中,新增 foldable_device 參數。相機 ITS 會使用這個參數,判斷折疊和展開狀態的 camera_id 和場景組合。

以下是摺疊式裝置的 config.yml 檔案範例。

TestBeds:
  - Name: TABLET_SCENES
    # Test configuration for scenes[0:4, 6]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"     # "quotes" needed
      chart_loc_arg: ""
      camera: 0
      scene: scene2_a
  lighting_cntl: arduino    # can be "arduino" or "None"
  lighting_ch: 1
  foldable_device: "True"     # "False" for non-foldable DUTs

執行測試

如要在摺疊式裝置上執行 ITS 測試,請執行 run_all_tests.py 指令。 詳情請參閱「叫用測試」。

在摺疊式裝置上執行 Camera ITS 時,系統會測試主要前置鏡頭在折疊和展開狀態下的運作情形。如果裝置處於摺疊狀態,結果會顯示在 CTS Verifier 應用程式的 camera1_SCENE_NAME_folded 選項下方。視裝置狀態而定,某些前置實體相機 ID 可能無法使用,因此不會接受測試。後置鏡頭只需在一個狀態下測試,最好是摺疊狀態,後置鏡頭的結果不會有 _folded 後置。

如要確保摺疊場景是在裝置摺疊時執行,並檢查可摺疊 DUT 的狀態,請執行下列指令。

adb shell cmd device_state state

在摺疊狀態下執行測試時,Camera ITS 會在終端機中顯示訊息,提示使用者在 ITS 盒上正確設定裝置。如要在提示後繼續執行測試,請按下 Enter 鍵。

如果您在摺疊和展開狀態下執行所有場景,系統會先執行摺疊場景,再執行展開場景。這樣可盡量減少測試期間需要重新掛載的次數。

相機 ITS 也會將 folded 後置字串新增至為摺疊狀態場景建立的 tmp 目錄。

指令範例

以下是在摺疊式裝置上執行測試的指令範例。

指令 說明
python tools/run_all_tests.py 執行所有場景。
python tools/run_all_tests.py scenes=scene0 執行 scene0。如果裝置處於摺疊狀態,且使用者正在測試主要前置鏡頭,腳本會判斷裝置狀態,並在場景名稱中加入 _folded 後置字元。使用者不必新增後置字元,即可執行摺疊場景。
python tests/scene0/ -c config.yml 執行特定測試。