בדף הזה מתוארים כלי הניפוי באגים בשירות המצלמה, שמאפשרים לראות שינויים בערכים של בקשות ללכידת תמונות וסרטונים ובתוצאות שנשלחות אל רכיב HAL של המצלמה וממנו. שירות המצלמה כולל את הפקודות watch
ו-dumpsys
.
הפקודה watch
זמינה במכשירים עם Android בגרסה 13 ואילך, והיא מאפשרת לשלוט במועד שבו מתבצע מעקב אחר תגים וגישה אליהם, לצפות בתצוגה מקדימה בזמן אמת של פריטי מידע שנאספו ממעקב אחרי תגים מלקוחות פתוחים, ולצפות בפריטי מידע שנשמרו במטמון מלקוחות סגורים. הפקודה dumpsys
מאפשרת גישה למידע על ניפוי באגים, אבל היא לא מספקת קובצי dump של מעקב תגים מלקוחות סגורים.
פקודה לצפייה
בקטע הזה מוסבר איך משתמשים בפקודה 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
הפקודה הזו מעבירה את פרטי המעקב של התג לפלט רגיל ואז יוצאת. הפקודה מדפיסה את קובצי ה-dump של ניטור התגים שנשמרו במטמון מלקוחות שנסגרו מאז start
(או מאז clear
האחרון) ואת קובץ ה-dump האחרון של ניטור התגים מלקוחות פתוחים.
פלט לדוגמה:
$ 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]
מחיקת תמונות מצב של הזיכרון שנשמרו במטמון
כדי לנקות את כל קובצי ה-dump של מעקב התגים שנשמרו במטמון, משתמשים בפקודה:
adb shell cmd media.camera watch clear
הפקודה הזו לא מפסיקה את המעקב אחר התג.
הפסקת המעקב אחרי תגים
כדי להפסיק את המעקב אחרי תגים בכל הלקוחות ולנקות את כל המאגרים שמוחזקים לצורך שמירת נתונים במטמון של תגי מעקב, משתמשים בפקודה:
adb shell cmd media.camera watch stop
הפקודה dumpsys
הפקודה dumpsys
מספקת מגוון מידע לניפוי באגים משירות המצלמה. הפקודה הבאה מתעדת את כל נתוני ה-dump של ניפוי הבאגים משירות המצלמה:
adb shell dumpsys media.camera
הפקודה dumpsys
מאפשרת גם לצלם dump של מעקב אחרי תגים מלקוחות פתוחים. עם זאת, dumpsys
לא מספקת קובצי dump של מעקב תגים מלקוחות סגורים. דוגמאות לשימוש ב-dumpsys
למעקב אחרי תגים:
שמירת נתוני מעקב של תגים מכל הלקוחות הפתוחים:
adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
כדי לראות תצוגה מקדימה בזמן אמת של מידע על מעקב תגים, משתמשים בפקודה
watch
של Linux:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'