การแก้ไขข้อบกพร่องของกล้อง

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

คำสั่งนี้จะพิมพ์ข้อมูลการตรวจสอบแท็กแบบเรียลไทม์ หากต้องการออก ให้กด 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

คำสั่ง dumpsys จะมีโฮสต์ของข้อมูลการแก้ไขข้อบกพร่องจากกล้อง service. คำสั่งต่อไปนี้บันทึกดัมพ์การแก้ไขข้อบกพร่องทั้งหมดจาก บริการกล้อง:

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'