การทดสอบอุปกรณ์แบบพับได้ของ ITS สำหรับกล้อง

ตั้งแต่ Android 13 เป็นต้นไป ITS ของกล้องจะรองรับการทดสอบสำหรับอุปกรณ์แบบพับได้ อุปกรณ์แบบพับได้จะมีกล้องที่พร้อมใช้งานหรือไม่พร้อมใช้งาน ทั้งนี้ขึ้นอยู่กับว่าอุปกรณ์อยู่ในสถานะพับหรือกางออก

รหัสกล้องจะเปลี่ยนไปตามประเภท รุ่น และแบรนด์ของอุปกรณ์ รวมถึงความพร้อมใช้งานของกล้องหน้าจริงจะเปลี่ยนไปตามสถานะ ด้วยเหตุนี้ ITS ของกล้องจึงกำหนดฉากและชุดค่าผสมของกล้องที่จะใช้ทดสอบแบบไดนามิก เนื่องจากต้องทดสอบกล้องทั้งในสถานะพับและไม่พับ การทดสอบอุปกรณ์แบบพับได้จึงกำหนดให้ต้องติดตั้ง DUT อีกครั้งในระหว่างกระบวนการทดสอบ

การทดสอบกล้องหน้าและกล้องหลัง

เซ็นเซอร์กล้องที่ใช้ได้ในอุปกรณ์แบบพับได้จะแตกต่างกันไป ขึ้นอยู่กับว่าอุปกรณ์อยู่ในสถานะพับหรือกาง สำหรับอุปกรณ์แบบพับได้ ความพร้อมให้บริการของกล้องหน้าจะเปลี่ยนไปตามสถานะ เช่น กล้องหน้าจะใช้งานไม่ได้เมื่ออยู่ในสถานะพับ การเปลี่ยนแปลงความพร้อมใช้งานของกล้องหน้านี้ทำให้ต้องทดสอบกล้องหน้าทั้งในสภาวะพับและไม่พับ ITS ของกล้องจะถือว่าความพร้อมใช้งานของกล้องหลังจะยังคงเหมือนเดิมไม่ว่าจะพับหรือกางอุปกรณ์ ดังนั้นจึงต้องทดสอบกล้องหลังเพียงครั้งเดียว

ITS ของกล้องจะกรองอุปกรณ์กล้องที่ไม่พร้อมใช้งานออก และอุปกรณ์กล้องจะไม่ปรากฏในรายการชุดค่าผสมของกล้องและฉาก ทั้งนี้ขึ้นอยู่กับสถานะของอุปกรณ์

ตารางต่อไปนี้อธิบายลักษณะการทดสอบ ITS ของกล้องสำหรับการวางแนวกล้องแต่ละแบบ

การวางแนวของกล้อง ลักษณะการทดสอบ ITS ของกล้อง
กล้องหลัง ทดสอบกล้อง 1 ครั้งในสถานะพับหรือกาง
กล้องหน้าหลัก ทดสอบกล้อง 1 ครั้งในสถานะพับ และ 1 ครั้งในสถานะกางออก
กล้องหน้าจริง ทดสอบกล้องเฉพาะในรัฐที่มีกล้องให้บริการ

ขั้นตอนการทดสอบ

ส่วนนี้จะอธิบายขั้นตอนในการทดสอบกล้องสำหรับอุปกรณ์แบบพับได้

ตั้งค่าอุปกรณ์

โปรดดูข้อมูลการตั้งค่าที่หัวข้อการตั้งค่า

ให้สิทธิ์เข้าถึง API ทดสอบ

หากต้องการให้ ITS ของกล้องระบุได้ว่าอุปกรณ์เป็นแบบพับได้หรือไม่ คุณต้องอนุญาตให้เข้าถึง API ทดสอบก่อนเรียกใช้การทดสอบ หากไม่อนุญาตให้เข้าถึง การเรียกใช้การทดสอบ ITS ของกล้องจะทำให้แอปขัดข้อง

หากต้องการให้สิทธิ์เข้าถึง ให้เรียกใช้คำสั่ง ADB ต่อไปนี้ คุณต้องเรียกใช้คำสั่งนี้เพียงครั้งเดียวสำหรับอุปกรณ์เครื่องเดียว หากติดตั้ง CTS Verifier อีกครั้งด้วยเวอร์ชันอื่น คุณต้องเรียกใช้คำสั่งอีกครั้ง

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier

ไฟล์การกําหนดค่า

หากต้องการระบุว่าอุปกรณ์เป็นอุปกรณ์แบบพับได้ ให้เพิ่มพารามิเตอร์ foldable_device ทั้งในแพลตฟอร์มทดสอบ tablet และ sensor_fusion ในไฟล์ config.yml 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 ของกล้องในอุปกรณ์แบบพับได้ ระบบจะทดสอบกล้องหน้าหลักทั้งในสถานะพับและไม่พับ หากอุปกรณ์พับอยู่ ผลลัพธ์จะแสดงในตัวเลือก camera1_SCENE_NAME_folded ในแอป CTS Verifier รหัสกล้องหน้าบางรหัสอาจไม่พร้อมใช้งานและจะไม่ได้รับการทดสอบ ทั้งนี้ขึ้นอยู่กับสถานะของอุปกรณ์ กล้องหลังต้องได้รับการทดสอบในสถานะเดียวเท่านั้น โดยควรเป็นสถานะพับอยู่ และผลลัพธ์ของกล้องหลังจะไม่มีส่วนต่อท้าย _folded

หากต้องการตรวจสอบว่าฉากแบบพับจะทำงานเมื่ออุปกรณ์พับอยู่และตรวจสอบสถานะของ DUT แบบพับได้ ให้เรียกใช้คำสั่งต่อไปนี้

adb shell cmd device_state state

เมื่อทำการทดสอบในสถานะพับ 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/ -c config.yml ทำการทดสอบที่เฉพาะเจาะจง