相機 ITS 折疊式裝置測試

從 Android 13 開始,相機 ITS 就包含折疊式裝置的測試支援功能。折疊式裝置的相機可用或不可用,取決於裝置處於折疊或展開狀態。

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

前置和後置鏡頭測試

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

視裝置狀態而定,Camera ITS 會篩除無法使用的相機裝置,且相機裝置不會顯示在相機和場景組合清單中。

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

切換前後鏡頭 相機 ITS 測試行為
後置鏡頭 在折疊或展開狀態下測試相機一次
主要前置鏡頭 在折疊和展開狀態下各測試一次相機。
實體前置鏡頭 僅在相機可用的狀態下測試相機。

測試程序

本節說明測試摺疊式裝置相機的步驟。

設定裝置

如需設定資訊,請參閱設定

授予測試 API 存取權

如要讓相機 ITS 判斷裝置是否可折疊,您必須先授予測試 API 存取權,才能叫用測試。如果未授予存取權,執行攝影機 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 指令。詳情請參閱叫用測試

在摺疊式裝置上執行相機 ITS 時,主要前置鏡頭會在折疊和展開的狀態下進行測試。如果裝置處於折疊狀態,結果會顯示在 CTS Verifier 應用程式的 camera1_SCENE_NAME_folded 選項下方。視裝置狀態而定,某些前置實體相機 ID 無法使用,因此不會進行測試。後置鏡頭只需要一個狀態進行測試 (最好是折疊狀態),且後置鏡頭的結果沒有 _folded 後置字串。

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

adb shell cmd device_state state

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

如果您在折疊和展開狀態下執行所有場景,系統會先執行折疊場景,接著執行展開場景。這樣一來,測試期間需要重新掛載的次數就會減少。

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

指令範例

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

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