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

توضِّح هذه الصفحة أدوات تصحيح الأخطاء في خدمة الكاميرا لعرض التغييرات في قيم طلب الالتقاط والنتيجة التي يتم إرسالها إلى واجهة برمجة التطبيقات لجهاز التحكّم في الإضاءة والتصوير (HAL) الخاصة بالكاميرا ومنها. تتضمّن خدمة الكاميرا الأمرَين watch وdumpsys. يتوفّر الأمر watch على الأجهزة التي تعمل بنظام التشغيل Android 13 أو الإصدارات الأحدث، ويسمح بالتحكم في وقت مراقبة العلامات والوصول إليها، والاطّلاع على معاينات مباشرة لبيانات مراقبة العلامات من العملاء المفتوحة، وعرض بيانات المخزّنة مؤقتًا من العملاء المغلقين. يسمح الأمر 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'