تصحيح أخطاء الكاميرا

تصف هذه الصفحة أدوات تصحيح الأخطاء في خدمة الكاميرا لعرض التغييرات في طلبات الالتقاط وقيم النتائج التي يتم إرسالها من وإلى الكاميرا 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 إذا لم يتم تمرير أي قيمة.

يقوم هذا الأمر بطباعة معلومات مراقبة العلامة في الوقت الفعلي. للخروج، اضغط على العودة / أدخل .

إخراج العينة:

$ 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'