自 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
檔案的 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
指令。
詳情請參閱「叫用測試」。
在摺疊式裝置上執行 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/ |
執行特定測試。 |