اشکال زدایی دوربین

این صفحه ابزارهای اشکال زدایی در سرویس دوربین را برای مشاهده تغییرات در درخواست عکسبرداری و مقادیر نتایجی که به 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.* مربوط به 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 پیش‌فرض می‌شود.

این دستور اطلاعات مانیتورینگ تگ را در زمان واقعی چاپ می کند. برای خروج، بازگشت / 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 همچنین اجازه می‌دهد که برچسب‌های مانیتورینگ dump را از کلاینت‌های باز ضبط کنید. با این حال، 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'