ตั้งแต่ Android 13 เป็นต้นไป Camera ITS จะรองรับการทดสอบอุปกรณ์พับได้ อุปกรณ์พับได้มีกล้องที่พร้อมใช้งานหรือไม่พร้อมใช้งานขึ้นอยู่กับว่าอุปกรณ์อยู่ในสถานะพับหรือกางออก
รหัสกล้องจะแตกต่างกันไปตามประเภท รุ่น และยี่ห้อของอุปกรณ์ และความพร้อมใช้งานของกล้องหน้าจริงจะแตกต่างกันไปตามสถานะ ด้วยเหตุนี้ Camera ITS จึงกำหนดฉากและชุดกล้องที่จะใช้ในการทดสอบแบบไดนามิก เนื่องจากต้องทดสอบกล้องทั้งในสถานะพับและกางออก การทดสอบอุปกรณ์พับได้จึงกำหนดให้ต้องติดตั้ง DUT ใหม่ในระหว่างกระบวนการทดสอบ
การทดสอบกล้องหน้าและกล้องหลัง
เซ็นเซอร์กล้องที่พร้อมใช้งานในอุปกรณ์พับได้จะแตกต่างกันไปตามสถานะของอุปกรณ์ ไม่ว่าจะเป็นสถานะพับหรือกางออก สำหรับอุปกรณ์พับได้ ความพร้อมใช้งานของกล้องหน้าจะแตกต่างกันไปตามสถานะ เช่น กล้องหน้าจะไม่พร้อมใช้งานในสถานะพับ เนื่องจากความพร้อมใช้งานของกล้องหน้ามีการเปลี่ยนแปลง จึงต้องทดสอบกล้องหน้าทั้งในสถานะพับและกางออก Camera ITS สันนิษฐานว่าความพร้อมใช้งานของกล้องหลังจะยังคงเหมือนเดิมไม่ว่าอุปกรณ์จะพับหรือกางออก ดังนั้นจึงต้องทดสอบกล้องหลังเพียงครั้งเดียว
Camera ITS จะกรองอุปกรณ์กล้องที่ไม่พร้อมใช้งานออกและอุปกรณ์กล้องจะไม่ปรากฏในรายการชุดกล้องและฉาก ทั้งนี้ขึ้นอยู่กับสถานะของอุปกรณ์
ตารางต่อไปนี้อธิบายลักษณะการทำงานของการทดสอบ Camera ITS สำหรับการวางแนวกล้องแต่ละแบบ
| การวางแนวกล้อง | ลักษณะการทำงานของการทดสอบ Camera ITS |
|---|---|
| กล้องหลัง | ทดสอบกล้อง 1 ครั้งในสถานะพับหรือกางออก |
| กล้องหน้าหลัก | ทดสอบกล้อง 1 ครั้งในสถานะพับและ 1 ครั้งในสถานะกางออก |
| กล้องหน้าจริง | ทดสอบกล้องเฉพาะในสถานะที่กล้องพร้อมใช้งาน |
ขั้นตอนการทดสอบ
ส่วนนี้อธิบายขั้นตอนการทดสอบกล้องสำหรับอุปกรณ์พับได้
ตั้งค่าอุปกรณ์
ดูข้อมูลการตั้งค่าได้ที่ การตั้งค่า
ให้สิทธิ์เข้าถึง API สำหรับการทดสอบ
คุณต้องให้สิทธิ์เข้าถึง API สำหรับการทดสอบก่อนที่จะเรียกใช้การทดสอบเพื่อให้ Camera ITS กำหนดได้ว่าอุปกรณ์เป็นอุปกรณ์พับได้หรือไม่ หากไม่ให้สิทธิ์ การเรียกใช้การทดสอบ Camera ITS จะทำให้แอปขัดข้อง
หากต้องการให้สิทธิ์ ให้เรียกใช้คำสั่ง ADB ต่อไปนี้ คุณต้องเรียกใช้คำสั่งนี้ 1 ครั้งสำหรับอุปกรณ์เครื่องเดียว หากติดตั้ง CTS Verifier อีกครั้งด้วยเวอร์ชันอื่น คุณต้องเรียกใช้คำสั่งอีกครั้ง
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifierไฟล์การกำหนดค่า
หากต้องการระบุว่าอุปกรณ์เป็นอุปกรณ์พับได้ ให้เพิ่มพารามิเตอร์ foldable_device ในทั้ง tablet และ sensor_fusion testbed ในไฟล์ config.yml Camera 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 ในอุปกรณ์พับได้ ระบบจะทดสอบกล้องหน้าหลักในทั้ง 2 สถานะ ได้แก่ สถานะพับและกางออก หากอุปกรณ์พับอยู่ ผลลัพธ์จะแสดงในตัวเลือก camera1_SCENE_NAME_folded
ในแอป CTS Verifier โดยรหัสกล้องหน้าจริงบางรายการจะไม่พร้อมใช้งานและจะไม่ได้รับการทดสอบ ทั้งนี้ขึ้นอยู่กับสถานะของอุปกรณ์
คุณต้องทดสอบกล้องหลังในสถานะเดียวเท่านั้น ซึ่งควรเป็นสถานะพับ และผลลัพธ์ของกล้องหลังจะไม่มีคำต่อท้าย _folded
หากต้องการตรวจสอบว่าระบบเรียกใช้ฉากพับเมื่ออุปกรณ์พับอยู่และตรวจสอบสถานะของ DUT ที่พับได้ ให้เรียกใช้คำสั่งต่อไปนี้
adb shell cmd device_state stateเมื่อเรียกใช้การทดสอบในสถานะพับ Camera ITS จะแสดงข้อความในเทอร์มินัลเพื่อแจ้งให้ผู้ใช้ตั้งค่าอุปกรณ์ในกล่อง ITS อย่างถูกต้อง หากต้องการเรียกใช้การทดสอบต่อหลังจากได้รับข้อความแจ้ง ให้กด Enter
หากคุณเรียกใช้ฉากทั้งหมดในทั้งสถานะพับและกางออก ระบบจะเรียกใช้ฉากพับก่อน แล้วจึงเรียกใช้ฉากกางออก ซึ่งจะช่วยลดจำนวนครั้งที่ต้องติดตั้งใหม่ในระหว่างการทดสอบ
นอกจากนี้ Camera ITS ยังเพิ่มคำต่อท้าย folded ลงในไดเรกทอรี tmp ที่สร้างขึ้นสำหรับฉากในสถานะพับด้วย
คำสั่งตัวอย่าง
ต่อไปนี้เป็นตัวอย่างคำสั่งสำหรับการดำเนินการทดสอบในอุปกรณ์พับได้
| คำสั่ง | คำอธิบาย |
|---|---|
python tools/run_all_tests.py |
เรียกใช้ฉากทั้งหมด |
python tools/run_all_tests.py scenes=scene0 |
เรียกใช้ scene0 หากอุปกรณ์พับอยู่และผู้ใช้กำลังทดสอบกล้องหน้าหลัก สคริปต์จะกำหนดสถานะของอุปกรณ์และเพิ่มคำต่อท้าย _folded ลงในชื่อฉาก ผู้ใช้ไม่จำเป็นต้องเพิ่มคำต่อท้ายเพื่อเรียกใช้ฉากพับ |
python tests/scene0/ |
เรียกใช้การทดสอบที่เฉพาะเจาะจง |