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