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

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

الأمر watch

يصف هذا القسم كيفية استخدام الأمر 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
  • الحصول على معاينة مباشرة لمعلومات مراقبة العلامات باستخدام الأمر watch في Linux:

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