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