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

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

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'