การแก้จุดบกพร่องของกล้อง

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

คำสั่งดู

ส่วนนี้อธิบายวิธีใช้คำสั่ง watch และแสดงตัวอย่าง

เริ่มการตรวจสอบแท็ก

หากต้องการเริ่มตรวจสอบแท็ก ให้ใช้:

adb shell cmd media.camera watch start -m <tags> [-c <clients>]

ตัวอย่าง:

adb shell cmd media.camera watch start \
-m android.control.effectMode,android.control.aeMode \
-c com.google.android.GoogleCamera,com.android.chrome

ข้อโต้แย้ง:

  • tags : รายการแท็กที่คั่นด้วยเครื่องหมายจุลภาคที่จะตรวจสอบ นอกจากนี้ยังยอมรับชวเลข 3a โดยที่ 3a อ้างถึงชุดของ android.control.* ทั้งหมดที่เกี่ยวข้องกับ AF, AE และ AWB (สำหรับรายการแท็กทั้งหมด โปรดดูที่ TagMonitor.cpp )
  • clients : อาร์กิวเมนต์ทางเลือก รายการชื่อแพ็กเกจไคลเอ็นต์ที่คั่นด้วยเครื่องหมายจุลภาคซึ่งมีการตรวจสอบแท็ก เฝ้าดูไคลเอ็นต์ทั้งหมดหากไม่มีการส่งผ่านอาร์กิวเมนต์ของไคลเอ็นต์ หรือหาก all ปรากฏอยู่ในรายชื่อไคลเอ็นต์

คำสั่งนี้เริ่มการตรวจสอบแท็กในไคลเอ็นต์ที่เปิดอยู่และในไคลเอ็นต์ใดๆ ที่ถูกเปิดในภายหลัง (จนกว่าจะมีการเรียก stop ) หลังจากเรียกใช้ start บริการกล้องจะแคชแท็กการตรวจสอบดัมพ์จากไคลเอนต์เมื่อไคลเอนต์ปิด

เว้นแต่จะมีการเรียก start บริการกล้องจะไม่ตรวจสอบแท็กสำหรับไคลเอ็นต์ใดๆ และไม่แคชแท็กที่ตรวจสอบดัมพ์ หาก all ถูกส่งผ่านในพารามิเตอร์ clients บริการกล้องจะตรวจสอบแท็กและแคชที่ตรวจสอบดัมพ์จากไคลเอนต์ทั้งหมด

ข้อมูลการตรวจสอบแท็กดัมพ์

หากต้องการดัมพ์ข้อมูลการตรวจสอบแท็ก ให้ใช้:

adb shell cmd media.camera watch dump

คำสั่งนี้จะดัมพ์ข้อมูลการมอนิเตอร์แท็กไปยังเอาต์พุตมาตรฐาน จากนั้นออกจากการทำงาน โดยจะพิมพ์ดัมพ์การตรวจสอบแท็กที่แคชไว้จากไคลเอ็นต์ที่ปิดตั้งแต่ start (หรือ clear ครั้งสุดท้าย) และดัมพ์การตรวจสอบแท็กล่าสุดจากไคลเอ็นต์ที่เปิดอยู่

ผลลัพธ์ตัวอย่าง:

$ adb shell cmd media.camera watch dump
Client: com.android.chrome (active)
1:com.android.chrome  f0:532642803202286ns:             REQ:android.control.aeMode: [ON] output stream ids:  0
1:com.android.chrome  f0:532642803202286ns:             REQ:android.control.afMode: [CONTINUOUS_PICTURE] output stream ids:  0
..
Client: com.google.android.GoogleCamera (cached)
0:com.google.android.GoogleCamera  f0:532601698728552ns:             REQ:android.control.aeMode: [ON] output stream ids:  0  3  1  2
0:com.google.android.GoogleCamera  f0:532601698728552ns:             REQ:android.control.afMode: [CONTINUOUS_PICTURE] output stream ids:  2  1  3  0
0:com.google.android.GoogleCamera  f0:532601698728552ns:             REQ:android.control.awbMode: [AUTO] output stream ids:  0  3  1  2
...

ดูตัวอย่างข้อมูลการตรวจสอบแท็กแบบเรียลไทม์

หากต้องการดูตัวอย่างข้อมูลการตรวจสอบแท็กแบบเรียลไทม์ ให้ใช้:

adb shell cmd media.camera watch live [-n refresh_interval_ms]

ตัวอย่าง:

adb shell cmd media.camera watch live -n 250

ข้อโต้แย้ง:

  • refresh_interval_ms : อาร์กิวเมนต์ที่เป็นทางเลือก ช่วงเวลาเป็นมิลลิวินาทีเพื่อรีเฟรชข้อมูลที่ ค่าเริ่มต้นคือ 1,000 หากไม่มีการส่งผ่านค่า

คำสั่งนี้จะพิมพ์ข้อมูลการตรวจสอบแท็กแบบเรียลไทม์ หากต้องการออก ให้กด return / enter

ผลลัพธ์ตัวอย่าง:

$ adb shell cmd media.camera watch live
Press return to exit...

0:com.google.android.GoogleCamera  f0:533016991302201ns:             REQ:android.control.aeMode: [ON] output stream ids:  1  3  0  2
0:com.google.android.GoogleCamera  f0:533016991302201ns:             REQ:android.control.afMode: [CONTINUOUS_PICTURE] output stream ids:  2  0  3  1
...
0:com.google.android.GoogleCamera  f0:533017066793915ns:                            RES:android.control.aeState: [SEARCHING]
0:com.google.android.GoogleCamera  f0:533017066793915ns: 3                          RES:android.control.aeState: [SEARCHING]
0:com.google.android.GoogleCamera  f0:533017066793915ns: 2                          RES:android.control.aeState: [SEARCHING]
0:com.google.android.GoogleCamera  f0:533017066793915ns:                            RES:android.control.afState: [PASSIVE_SCAN]

ล้างข้อมูลแคชที่เก็บไว้

หากต้องการล้างดัมพ์การตรวจสอบแท็กที่แคชไว้ทั้งหมด ให้ใช้:

adb shell cmd media.camera watch clear

คำสั่งนี้ไม่ได้หยุดการตรวจสอบแท็ก

หยุดการตรวจสอบแท็ก

หากต้องการหยุดการตรวจสอบแท็กในไคลเอ็นต์ทั้งหมด และล้างบัฟเฟอร์ทั้งหมดที่เก็บไว้สำหรับแคชการติดตามดัมพ์ ให้ใช้:

adb shell cmd media.camera watch stop

คำสั่งดัมพ์ซิส

คำสั่ง dumpsys จัดเตรียมโฮสต์ของข้อมูลการดีบักจากเซอร์วิสกล้อง คำสั่งต่อไปนี้จะจับภาพดัมพ์การดีบักทั้งหมดจากบริการกล้อง:

adb shell dumpsys media.camera

คำสั่ง dumpsys ยังอนุญาตให้ดักจับดัมพ์การมอนิเตอร์แท็กจากไคลเอ็นต์ที่เปิดอยู่ อย่างไรก็ตาม dumpsys ไม่ได้จัดเตรียมดัมพ์การตรวจสอบแท็กจากไคลเอนต์ที่ปิด ต่อไปนี้เป็นตัวอย่างของการใช้ dumpsys สำหรับการตรวจสอบแท็ก:

  • บันทึกดัมพ์การตรวจสอบแท็กจากไคลเอ็นต์ที่เปิดอยู่ทั้งหมด:

    adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
    
  • รับตัวอย่างข้อมูลการตรวจสอบแท็กแบบเรียลไทม์โดยใช้คำสั่ง Linux watch :

    watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'