從 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
檔案的 tablet
和 sensor_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/ |
執行特定測試。 |