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

تصف هذه الصفحة أدوات تصحيح الأخطاء المتوفرة في خدمة الكاميرا لعرض التغييرات في طلب الالتقاط وقيم النتائج التي يتم إرسالها من وإلى طبقة تجريد الأجهزة (HAL) للكاميرا. تتضمّن خدمة الكاميرا الأمرَين watch وdumpsys. يتوفّر الأمر watch على الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث، ويتيح لك التحكّم في وقت تتبُّع العلامات والوصول إليها، والمعاينة المباشرة لعمليات تفريغ بيانات العلامات من البرامج المفتوحة، وعرض البيانات المخزَّنة مؤقتًا من العملاء المغلقين. يسمح الأمر dumpsys بالوصول إلى معلومات debugging ، ولكنه لا يقدّم نُسخًا تمهيدية لمراقبة العلامات من العملاء المغلقين.

أمر مشاهدة

يوضّح هذا القسم كيفية استخدام الأمر 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.* العلامات ذات الصلة بميزة "ضبط التركيز التلقائي" وميزة "ضبط الإضاءة التلقائية" وميزة "ضبط التوازن الأبيض تلقائيًا" (للحصول على القائمة الكاملة للعلامات، يُرجى الاطّلاع على 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
  • احصل على معاينة مباشرة لمعلومات تتبُّع العلامة باستخدام الأمر watch في نظام التشغيل Linux:

    watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'