從 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
在摺疊狀態下執行測試時,相機 ITS 會在終端機中顯示訊息,提示使用者在 ITS 盒中正確設定裝置。如要在提示後繼續執行測試,請按下 Enter 鍵。
如果您在折疊和展開狀態下執行所有場景,系統會先執行折疊場景,接著執行展開場景。這樣一來,可減少測試期間需要重新掛載的次數。
Camera ITS 也會在為折疊狀態場景建立的 tmp
目錄中,新增 folded
後置字串。
指令範例
以下是用於在折疊式裝置上執行測試的範例指令。
指令 | 說明 |
---|---|
python tools/run_all_tests.py |
執行所有場景。 |
python tools/run_all_tests.py scenes=scene0 |
執行 scene0。如果裝置處於折疊狀態,且使用者正在測試主要前置鏡頭,指令碼會判斷裝置狀態,並在場景名稱中加上後置 _folded 。使用者不必新增後置詞,即可執行折疊場景。 |
python tests/scene0/ |
執行特定測試。 |