ทดสอบรูปภาพจากกล้องบนอุปกรณ์แบบพับได้

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

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

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

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

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

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

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

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

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

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

ดูข้อมูลการตั้งค่าได้ที่ การตั้งค่า

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

หากต้องการให้ ITS ของกล้องพิจารณาว่าอุปกรณ์เป็นแบบพับได้หรือไม่ คุณต้องให้สิทธิ์เข้าถึง API การทดสอบก่อนที่จะเรียกใช้การทดสอบ หากไม่ได้รับสิทธิ์เข้าถึง การเรียกใช้การทดสอบ 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 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 ในอุปกรณ์แบบพับได้ ระบบจะทดสอบกล้องหน้าหลัก ทั้งในสถานะพับและกางออก หากอุปกรณ์พับอยู่ ผลลัพธ์จะแสดงในส่วน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 เรียกใช้การทดสอบที่เฉพาะเจาะจง