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