איתור באגים במצלמה

דף זה מתאר את כלי ניפוי הבאגים בשירות המצלמה לצפייה בשינויים בערכי בקשת הלכידה והתוצאה הנשלחים אל וממנו המצלמה HAL. שירות המצלמות כולל את watch ואת פקודות dumpsys . זמין במכשירים עם אנדרואיד 13 ומעלה, פקודת watch מאפשרת שליטה על מתי מנוטרים וגישה לתגים, תצוגה מקדימה חיה של dump ניטור תגים מלקוחות פתוחים, וצפייה ב-dumps בקובץ שמור מלקוחות סגורים. הפקודה dumpsys מאפשרת גישה למידע על ניפוי באגים אך אינה מספקת dumps לניטור תגים מלקוחות סגורים.

פקודה לצפות

סעיף זה מתאר כיצד להשתמש בפקודת 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 , שירות המצלמה עוקב אחר תגיות ומטמון ניטור dumps מכל הלקוחות.

מידע ניטור תג dump

כדי לזרוק מידע על ניטור תגים, השתמש ב:

adb shell cmd media.camera watch dump

פקודה זו משליכה את מידע ניטור התג לפלט סטנדרטי ואז יוצאת. הוא מדפיס את ה-dumps של ניטור התגים בקובץ השמור מלקוחות שנסגרו מאז 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 : ארגומנט אופציונלי. מרווח באלפיות שניות לרענון המידע. ברירת המחדל היא 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 מספקת שורה של מידע איתור באגים משירות המצלמה. הפקודה הבאה לוכדת את כל dump איתור הבאגים משירות המצלמה:

adb shell dumpsys media.camera

הפקודה dumpsys מאפשרת גם ללכוד dumps ניטור תגים מלקוחות פתוחים. עם זאת, dumpsys לא מספקת השלכות ניטור תגים מלקוחות סגורים. להלן דוגמאות לשימוש 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'