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

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