相機 ITS 可折疊產品測試

從 Android 13 開始,Camera ITS 包含可折疊裝置的測試支援。可折疊設備的攝影機可用或不可用,具體取決於設備處於折疊狀態還是展開狀態。

相機 ID 根據設備類型、型號和品牌而變化;實體前置相機的可用性會根據狀態而變化。因此,相機 ITS 動態決定用於測試的場景和相機組合。由於相機需要在折疊和展開狀態下進行測試,因此可折疊設備測試需要在測試過程中重新安裝 DUT。

前後置相機測試

可折疊設備上可用的相機感應器會根據設備處於折疊狀態還是展開狀態而有所不同。對於可折疊設備,前置相機的可用性會根據狀態而變化。例如,前置相機在折疊狀態下不可用。由於前置相機可用性的這種變化,前置相機必須在折疊和展開狀態下進行測試。相機 ITS 假設無論設備折疊或展開,後置相機的可用性都保持不變,因此後置相機只需測試一次。

根據設備的狀態,相機 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 也會將folded後綴加入到為折疊狀態場景建立的tmp目錄中。

命令範例

以下是在可折疊設備上執行測試的範例命令。

命令描述
python tools/run_all_tests.py運行所有場景。
python tools/run_all_tests.py scenes=scene0運行場景0。如果裝置折疊且使用者正在測試主前置鏡頭,則腳本會確定裝置狀態並將後綴_folded新增至場景名稱。使用者無需添加後綴即可運行折疊場景。
python tests/scene0/ -c config.yml python tests/scene0/ -c config.yml運行特定測試。