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

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