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

এই পৃষ্ঠায় ক্যামেরা 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 কল করা না হলে, ক্যামেরা সার্ভিস কোনো ক্লায়েন্টের জন্য ট্যাগ মনিটর করে না এবং ট্যাগ মনিটরিং ডাম্পও ক্যাশ করে না। যদি clients প্যারামিটারে all পাস করা হয়, তাহলে ক্যামেরা সার্ভিস সমস্ত ক্লায়েন্টের ট্যাগ মনিটর করে এবং মনিটরিং ডাম্প ক্যাশ করে।

ডাম্প ট্যাগ পর্যবেক্ষণ তথ্য

ট্যাগ পর্যবেক্ষণ তথ্য ডাম্প করতে, ব্যবহার করুন:

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 : ঐচ্ছিক আর্গুমেন্ট। কত মিলিসেকেন্ড পর পর তথ্য রিফ্রেশ করা হবে, সেই ব্যবধান। কোনো মান না দেওয়া হলে এর ডিফল্ট মান ১০০০ হয়।

এই কমান্ডটি ট্যাগ পর্যবেক্ষণের তথ্য রিয়েল টাইমে প্রিন্ট করে। বের হতে রিটার্ন / এন্টার চাপুন।

নমুনা আউটপুট:

$ 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 কমান্ডটি ক্যামেরা সার্ভিস থেকে প্রচুর ডিবাগিং তথ্য প্রদান করে। নিম্নলিখিত কমান্ডটি ক্যামেরা সার্ভিস থেকে সম্পূর্ণ ডিবাগিং ডাম্পটি ক্যাপচার করে:

adb shell dumpsys media.camera

dumpsys কমান্ডটি খোলা ক্লায়েন্টগুলো থেকেও ট্যাগ মনিটরিং ডাম্প ক্যাপচার করার সুযোগ দেয়। তবে, dumpsys বন্ধ ক্লায়েন্টগুলো থেকে ট্যাগ মনিটরিং ডাম্প প্রদান করে না। ট্যাগ মনিটরিংয়ের জন্য dumpsys ব্যবহারের কিছু উদাহরণ নিচে দেওয়া হলো:

  • সমস্ত খোলা ক্লায়েন্ট থেকে ট্যাগ মনিটরিং ডাম্প ক্যাপচার করুন:

    adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
  • লিনাক্স watch কমান্ড ব্যবহার করে ট্যাগ মনিটরিং তথ্যের লাইভ প্রিভিউ দেখুন:

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