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

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

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