कैमरे को डीबग करना

इस पेज पर, कैमरा सर्विस में मौजूद डीबग करने वाले टूल के बारे में बताया गया है. इनकी मदद से, कैप्चर करने के अनुरोध और नतीजे की उन वैल्यू में हुए बदलावों को देखा जा सकता है जिन्हें कैमरा एचएएल को भेजा जाता है और उनसे वापस लिया जाता है. कैमरा सेवा में 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 को कॉल नहीं किया जाता, तब तक कैमरा सेवा किसी भी क्लाइंट के लिए टैग की निगरानी नहीं करती है. साथ ही, टैग की निगरानी से जुड़े डंप को कैश मेमोरी में सेव नहीं करती है. अगर 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: यह तर्क देना ज़रूरी नहीं है. मिलीसेकंड में वह समयावधि जिसके बाद जानकारी रीफ़्रेश की जाती है. अगर कोई वैल्यू पास नहीं की जाती है, तो डिफ़ॉल्ट वैल्यू 1,000 होती है.

इस कमांड से, टैग मॉनिटरिंग की जानकारी रीयल टाइम में प्रिंट होती है. बाहर निकलने के लिए, 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'