ক্যামেরা ডিবাগ করা

এই পৃষ্ঠায় ক্যামেরা পরিষেবার ডিবাগিং টুল সম্পর্কে বর্ণনা করা হয়েছে। এর সাহায্যে ক্যামেরা 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 বলতে AF, AE এবং AWB সম্পর্কিত সমস্ত 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: ঐচ্ছিক আর্গুমেন্ট। কতক্ষণ অন্তর অন্তর তথ্য রিফ্রেশ করা হবে, তা মিলিসেকেন্ডে উল্লেখ করুন। কোনও ভ্যালু পাস করা না হলে, ডিফল্ট হিসেবে ১০০০ সেট করা থাকে।

এই কমান্ড রিয়েল-টাইমে ট্যাগ মনিটরিং সংক্রান্ত তথ্য প্রিন্ট করে। বেরিয়ে আসতে, 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
  • Linux watch কমান্ড ব্যবহার করে ট্যাগ মনিটরিং তথ্যের লাইভ প্রিভিউ পান:

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