Android डीबग ब्रिज (adb
) एक ऐसा कमांड-लाइन टूल है जिसमें कई तरह की सुविधाएं मिलती हैं. इसकी मदद से, किसी
डिवाइस. adb
निर्देश से डिवाइस से जुड़ी कई तरह की कार्रवाइयां करने में मदद मिलती है. जैसे, इंस्टॉल करना और
ऐप्लिकेशन डीबग करने में मदद मिलती है. adb
, Unix शेल का ऐक्सेस देता है. इसका इस्तेमाल करके, अलग-अलग तरह के
कमांड की सुविधा देता है. यह एक क्लाइंट-सर्वर प्रोग्राम है, जिसमें तीन कॉम्पोनेंट होते हैं:
- क्लाइंट, जो निर्देश भेजता है. क्लाइंट आपकी डेवलपमेंट मशीन पर काम करता है. आप
adb
कमांड जारी करके, कमांड-लाइन टर्मिनल से क्लाइंट को शुरू करें. - डेमो (adbd), जो किसी डिवाइस पर निर्देशों को चलाता है. डेमन, बैकग्राउंड के तौर पर चल रहा है प्रोसेस करने में मदद मिलती है.
- एक सर्वर, जो क्लाइंट और डीमन के बीच कम्यूनिकेशन को मैनेज करता है. सर्वर आपकी डेवलपमेंट मशीन पर बैकग्राउंड प्रोसेस के तौर पर काम करता है.
Android SDK प्लैटफ़ॉर्म टूल पैकेज में adb
शामिल है. इसे डाउनलोड करें
SDK Manager वाला पैकेज इंस्टॉल करता है, जो
android_sdk/platform-tools/
बजे. अगर आपको स्टैंडअलोन Android SDK टूल चाहिए
प्लैटफ़ॉर्म टूल पैकेज, इसे यहां डाउनलोड करें.
कनेक्शन का इस्तेमाल करने के तरीके के साथ ही, adb
से ज़्यादा समय तक इस्तेमाल करने के लिए, डिवाइस को कनेक्ट करने से जुड़ी जानकारी के लिए
Assistant सामान्य समस्याओं को हल करने के लिए, यह देखें
हार्डवेयर डिवाइस पर ऐप्लिकेशन चलाएं.
adb कैसे काम करता है
adb
क्लाइंट शुरू करने पर, क्लाइंट सबसे पहले यह देखता है कि
adb
सर्वर प्रोसेस पहले से ही चल रही है. अगर ऐसा नहीं है, तो सर्वर प्रोसेस शुरू हो जाती है.
सर्वर के चालू होने पर, यह लोकल टीसीपी पोर्ट 5037 से बाइंड करता है. साथ ही, इससे भेजे गए निर्देशों को सुनता है
adb
क्लाइंट.
ध्यान दें: सभी adb
क्लाइंट, संपर्क करने के लिए पोर्ट 5037 का इस्तेमाल करते हैं
adb
सर्वर के साथ.
इसके बाद, सर्वर सभी मौजूदा डिवाइसों के लिए कनेक्शन सेट अप करता है.
यह रेंज में ऑड नंबर वाले पोर्ट स्कैन करके एम्युलेटर का पता लगाता है
5555 से 5585 तक, जो पहले 16 एम्युलेटर की इस्तेमाल की गई रेंज है. जहां सर्वर को adb
मिलता है
डीमन (adbd) है, यह उस पोर्ट से कनेक्ट करने के लिए कनेक्शन सेट अप करता है.
हर एम्युलेटर, क्रम में लगाए जाने वाले पोर्ट के जोड़े का इस्तेमाल करता है — ये
और adb
कनेक्शन के लिए विषम नंबर वाला पोर्ट. उदाहरण के लिए:
एम्युलेटर 1, कंसोल: 5554
एम्युलेटर 1, adb
: 5555
एम्युलेटर 2, कंसोल: 5556
एम्युलेटर 2, adb
: 5557
वगैरह.
जैसा कि दिखाया गया है, पोर्ट 5555 पर adb
से कनेक्ट एम्युलेटर और एम्युलेटर एक ही है
जिसका कंसोल पोर्ट 5554 पर सुनता है.
जब सर्वर सभी डिवाइसों के लिए कनेक्शन सेट अप कर देगा, तब adb
कमांड का इस्तेमाल करके
उन डिवाइसों को ऐक्सेस करता है. क्योंकि सर्वर, डिवाइसों और हैंडल के कनेक्शन को मैनेज करता है
एक से ज़्यादा adb
क्लाइंट के कमांड का इस्तेमाल कर रहे हैं, तो आप किसी भी डिवाइस को किसी भी क्लाइंट या
एक स्क्रिप्ट से कॉपी किया गया है.
अपने डिवाइस पर adb डीबग करने की सुविधा चालू करना
यूएसबी से कनेक्ट किए गए डिवाइस के साथ adb का इस्तेमाल करने के लिए, आपको इसे चालू करना होगा डिवाइस के सिस्टम की सेटिंग में, में यूएसबी डीबग करना डेवलपर के लिए सेटिंग और टूल. Android 4.2 (एपीआई लेवल 17) और उसके बाद वाले वर्शन पर, डेवलपर के लिए सेटिंग और टूल की स्क्रीन डिफ़ॉल्ट रूप से छिपा होता है. इसे दिखाने के लिए, चालू करें डेवलपर के लिए सेटिंग और टूल.
अब अपने डिवाइस को यूएसबी से कनेक्ट किया जा सकता है. इससे यह पुष्टि की जा सकती है कि आपका डिवाइस
adb devices
को लागू करके कनेक्ट किया गया है
android_sdk/platform-tools/
डायरेक्ट्री. अगर कनेक्ट है, तो
तो आपको डिवाइस का नाम "डिवाइस" के तौर पर दिखेगा.
ध्यान दें: जब Android 4.2.2 (एपीआई) वाले डिवाइस से कनेक्ट किया जाता है या उससे ऊपर के लेवल पर, सिस्टम एक डायलॉग दिखाता है. इस डायलॉग में पूछा जाता है कि क्या अनुमति देने वाली आरएसए कुंजी को स्वीकार करना है इस कंप्यूटर से डीबग किया जा रहा है. सुरक्षा का यह तरीका उपयोगकर्ता के डिवाइसों को सुरक्षित रखता है, क्योंकि यह पक्का करता है कि कि USB डीबगिंग और अन्य adb कमांड तब तक नहीं चलाई जा सकतीं, जब तक कि आप डिवाइस पर साइन इन करें और डायलॉग को स्वीकार करें.
यूएसबी के ज़रिए डिवाइस से कनेक्ट करने के बारे में ज़्यादा जानने के लिए, पढ़ें हार्डवेयर डिवाइस पर ऐप्लिकेशन चलाएं.
वाई-फ़ाई के ज़रिए डिवाइस से कनेक्ट करें
ध्यान दें: नीचे दिए गए निर्देश, Wear डिवाइसों पर चल रहे उन डिवाइसों पर लागू नहीं होते हैं Android 11 (एपीआई लेवल 30). इसके लिए गाइड देखें इन सुविधाओं के लिए, Wear OS ऐप्लिकेशन को डीबग करना ज़्यादा जानकारी देखें.
Android 11 (एपीआई लेवल 30) और इससे वायरलेस तरीके से ऐप्लिकेशन को डिप्लॉय और डीबग करने की बेहतर सुविधा अपना वर्कस्टेशन है. उदाहरण के लिए, डीबग करने की सुविधा को डिप्लॉय किया जा सकता है ऐप्लिकेशन को कई रिमोट डिवाइसों पर कनेक्ट किया गया है. इसके लिए, आपको इसका इस्तेमाल करके, अपने डिवाइस को फ़िज़िकल तौर पर कनेक्ट करने की ज़रूरत नहीं है यूएसबी. इससे, ड्राइवर जैसी यूएसबी कनेक्शन की सामान्य समस्याओं से निपटने की ज़रूरत नहीं पड़ती इंस्टॉल करना.
वॉयरलेस डीबगिंग का इस्तेमाल शुरू करने से पहले, ये काम करें:
-
पक्का करें कि आपका वर्कस्टेशन और डिवाइस, दोनों एक ही वायरलेस नेटवर्क से कनेक्ट हैं.
-
पक्का करें कि आपके फ़ोन या Android डिवाइस पर, Android 11 (एपीआई लेवल 30) या उसके बाद का वर्शन हो टीवी और WearOS के लिए, 13 (एपीआई लेवल 33) या उसके बाद के वर्शन. ज़्यादा जानकारी के लिए, यह देखें जांच करें और CANNOT TRANSLATE Android वर्शन.
-
अगर IDE का इस्तेमाल किया जा रहा है, तो पक्का करें कि आपके डिवाइस में Android Studio का सबसे नया वर्शन इंस्टॉल किया गया हो. इसे डाउनलोड किया जा सकता है यहां पढ़ें.
-
अपने वर्कस्टेशन पर, SDK प्लैटफ़ॉर्म टूल.
वायरलेस तरीके से डीबग करने की सुविधा का इस्तेमाल करने के लिए, आपको क्यूआर कोड या जोड़ने के लिए कोड. आपका वर्कस्टेशन और डिवाइस, दोनों एक ही वायरलेस नेटवर्क से कनेक्ट होने चाहिए. यहां की यात्रा पर हूं को अपने डिवाइस से कनेक्ट करने के लिए, यहां दिया गया तरीका अपनाएं:
-
डेवलपर के लिए सेटिंग और टूल चालू करना आपके डिवाइस पर.
-
Android Studio खोलें और रन से वाई-फ़ाई का इस्तेमाल करके डिवाइस को जोड़ें चुनें कॉन्फ़िगरेशन मेन्यू.
पहला डायग्राम. कॉन्फ़िगरेशन मेन्यू चलाएं.वाई-फ़ाई का इस्तेमाल करके, डिवाइसों को जोड़ें वाली विंडो पॉप-अप होती है, जैसा कि दूसरी इमेज में दिखाया गया है.
दूसरा डायग्राम. क्यूआर कोड या दूसरे डिवाइस से जोड़ने की सुविधा का इस्तेमाल करके, डिवाइसों को जोड़ने के लिए पॉप-अप विंडो कोड. -
अपने डिवाइस पर, वायरलेस डीबगिंग पर टैप करें और अपने डिवाइस को दूसरे डिवाइस से जोड़ें:
तीसरी इमेज. वायरलेस डीबग करने की सेटिंग चालू होने का स्क्रीनशॉट Google Pixel फ़ोन.-
अपने डिवाइस को क्यूआर कोड से जोड़ने के लिए, डिवाइस को क्यूआर कोड से जोड़ें चुनें. इसके बाद, वाई-फ़ाई की मदद से डिवाइसों को जोड़ें पॉप-अप से मिला क्यूआर कोड, दूसरी इमेज में दिखाया गया है.
-
अपने डिवाइस को जोड़ने के कोड से जोड़ने के लिए, यहां से दूसरे डिवाइस से जोड़ने के कोड से डिवाइस जोड़ें को चुनें वाई-फ़ाई से डिवाइसों को जोड़ें पॉप-अप दिखेगा. अपने डिवाइस पर, इसका इस्तेमाल करके दूसरे डिवाइस से जोड़ें को चुनें दूसरे डिवाइस से जोड़ने के लिए कोड और दिए गए छह अंकों वाले कोड को नोट करें. जैसे ही आपका डिवाइस डिवाइस को वाई-फ़ाई से जोड़ें विंडो में, जोड़ें को चुनकर छह अंक डालें आपके डिवाइस पर दिखने वाला कोड.
चौथी इमेज. छह अंकों वाले कोड की एंट्री का उदाहरण.
-
-
डिवाइस को जोड़ लेने के बाद, अपने ऐप्लिकेशन को डिवाइस पर डिप्लॉय करने की कोशिश की जा सकती है.
कोई दूसरा डिवाइस जोड़ने या अपने वर्कस्टेशन पर मौजूदा डिवाइस को भूलने के लिए, इस पर जाएं अपने डिवाइस पर वायरलेस डीबगिंग. जोड़े गए जोड़े गए डिवाइस में अपने वर्कस्टेशन के नाम पर टैप करें डिवाइस और हटाएं को चुनें.
-
अगर आपको वायरलेस तरीके से डीबग करने की सुविधा को तुरंत चालू और बंद करना है, तो इनके लिए क्विक सेटिंग डेवलपर टाइल वायरलेस डीबगिंग, डेवलपर के लिए सेटिंग और टूल में मिलता है > क्विक सेटिंग डेवलपर टाइल.
पांचवी इमेज. क्विक सेटिंग डेवलपर टाइल सेटिंग आपको वायरलेस तरीके से डीबग करने की सुविधा को तुरंत चालू और बंद कर सकता है.
कमांड लाइन का इस्तेमाल करके वाई-फ़ाई कनेक्शन
इसके अलावा, बिना Android Studio के कमांड लाइन का इस्तेमाल करके, अपने डिवाइस से कनेक्ट करने के लिए, यह तरीका अपनाएं:
-
ऊपर बताए गए तरीके से, अपने डिवाइस पर डेवलपर के लिए सेटिंग और टूल चालू करें.
-
जैसा कि पहले बताया गया है, अपने डिवाइस पर वायरलेस डीबगिंग को चालू करें.
-
अपने वर्कस्टेशन पर, टर्मिनल विंडो खोलें और नेविगेट करें
android_sdk/platform-tools
. -
डिवाइस को इससे जोड़ें को चुनकर अपना आईपी पता, पोर्ट नंबर, और दूसरे डिवाइस से जोड़ने का कोड ढूंढें जोड़ने के लिए कोड. डिवाइस पर दिख रहे आईपी पते, पोर्ट नंबर, और दूसरे डिवाइस से जोड़ने के कोड को नोट करें डिवाइस.
-
अपने वर्कस्टेशन के टर्मिनल पर,
adb pair ipaddr:port
चलाएं. आईपी पते का इस्तेमाल करना और पोर्ट नंबर डालें. -
जब कहा जाए, तब दूसरे डिवाइस से जोड़ने वाला कोड डालें, जैसा कि नीचे दिखाया गया है.
छठी इमेज. मैसेज दिखाता है कि आपका डिवाइस सही तरीके से काम कर रहा है जुड़ा हुआ.
वायरलेस कनेक्शन की समस्याओं को हल करें
अगर आपको वायरलेस तरीके से डिवाइस कनेक्ट करने में समस्याएं आ रही हैं, तो ये तरीके आज़माएं समस्या हल करने के तरीके बताएंगे.
देखें कि आपका वर्कस्टेशन और डिवाइस ज़रूरी शर्तें पूरी करते हैं या नहीं
देखें कि वर्कस्टेशन और डिवाइस, इस सेक्शन की शुरुआत में.
आम तौर पर होने वाली अन्य समस्याओं की जांच करना
वायरलेस डीबगिंग (adb या Android के साथ) की मौजूदा समस्याओं की सूची नीचे दी गई है Studio में बताया गया है) और उनका समाधान कैसे करें:
-
वाई-फ़ाई कनेक्ट नहीं हो रहा है: सुरक्षित वाई-फ़ाई नेटवर्क, जैसे कि कॉर्पोरेट वाई-फ़ाई नेटवर्क, p2p कनेक्शन ब्लॉक कर सकते हैं और आपको वाई-फ़ाई पर कनेक्ट नहीं होने देंगे. केबल की मदद से कनेक्ट करने की कोशिश करें या कोई अन्य (गैर-कॉर्पोरेशन) वाई-फ़ाई नेटवर्क. इसका इस्तेमाल करके वायरलेस कनेक्शन अन्य विकल्प, टीसीपी/आईपी के ऊपर
adb connect ip:port
(शुरुआती यूएसबी कनेक्शन के बाद) है, आपके पास गैर-कॉर्पोरेशन नेटवर्क का इस्तेमाल करने का विकल्प है. -
वाई-फ़ाई पर
adb
कभी-कभी अपने-आप बंद हो जाता है: ऐसा तब हो सकता है, जब डिवाइस या तो वाई-फ़ाई नेटवर्क पर स्विच करता है या नेटवर्क से डिसकनेक्ट हो जाता है. ठीक करने के लिए, फिर से कनेक्ट करें नेटवर्क को कनेक्ट करना है. -
दूसरे डिवाइस से जोड़ने के बाद डिवाइस कनेक्ट नहीं हो रहा है:
adb
इन कामों के लिए mडीएनएस का इस्तेमाल करता है जोड़े गए डिवाइसों को खोजें और उनसे अपने-आप कनेक्ट करें. अगर आपका नेटवर्क या डिवाइस कॉन्फ़िगरेशन, mडीएनएस के साथ काम नहीं करता है या इसे बंद कर दिया है, तो आपको इसे मैन्युअल तरीके से सेट अप करना होगाadb connect ip:port
का इस्तेमाल करके डिवाइस से कनेक्ट करें.
शुरुआती यूएसबी कनेक्शन के बाद, डिवाइस की मदद से वायरलेस तरीके से कनेक्ट करें (सिर्फ़ Android 10 और इससे पहले के वर्शन में उपलब्ध है)
ध्यान दें: यह वर्कफ़्लो Android 11 (और उच्च). चेतावनी यह है कि इसमें फ़िज़िकल यूएसबी पर *शुरुआती* कनेक्शन भी शामिल है.
ध्यान दें: नीचे दिए गए निर्देश, Wear डिवाइसों पर लागू नहीं होते हैं जो Android 10 (एपीआई लेवल 29) या इससे पहले के वर्शन पर काम करते हों. इसके बारे में गाइड देखें इन सुविधाओं के लिए, Wear OS ऐप्लिकेशन को डीबग करना ज़्यादा जानकारी देखें.
आम तौर पर, adb
डिवाइस से यूएसबी के ज़रिए संपर्क करता है, लेकिन आप इसका भी इस्तेमाल कर सकते हैं
वाई-फ़ाई के ज़रिए adb
. Android 10 (एपीआई लेवल 29) या इससे पहले के वर्शन वाले डिवाइस से कनेक्ट करने के लिए,
यूएसबी पर ये शुरुआती चरण अपनाएं:
-
अपने Android डिवाइस और
adb
होस्ट कंप्यूटर को कनेक्ट करें एक सामान्य वाई-फ़ाई नेटवर्क से कनेक्ट करता है. - यूएसबी केबल की मदद से, डिवाइस को होस्ट कंप्यूटर से कनेक्ट करें.
-
पोर्ट 5555 पर टीसीपी/आईपी कनेक्शन सुनने के लिए टारगेट डिवाइस सेट करें:
adb tcpip 5555
- टारगेट डिवाइस से यूएसबी केबल को डिसकनेक्ट करें.
- Android डिवाइस का आईपी पता ढूंढें. उदाहरण के लिए, Nexus डिवाइस पर, आपको Settings पर जाकर आईपी पता डालें > टैबलेट के बारे में जानकारी (या फ़ोन के बारे में) > स्थिति > आईपी पता.
-
डिवाइस को उसके आईपी पते से कनेक्ट करें:
adb connect device_ip_address:5555
-
पुष्टि करें कि आपका होस्ट कंप्यूटर, टारगेट डिवाइस से कनेक्ट किया गया है:
$ adb devices List of devices attached device_ip_address:5555 device
ध्यान दें: ध्यान रखें कि सभी ऐक्सेस पॉइंट न हों
उनके लिए सही हैं. आपको किसी ऐक्सेस पॉइंट का इस्तेमाल करना पड़ सकता है
जिसकी फ़ायरवॉल को adb
का समर्थन करने के लिए ठीक तरह से कॉन्फ़िगर किया गया है.
आपका डिवाइस अब adb
से कनेक्ट हो गया है.
अगर आपके डिवाइस से adb
का कनेक्शन टूट जाता है, तो:
- पक्का करें कि आपका होस्ट अब भी उसी वाई-फ़ाई नेटवर्क से कनेक्ट हो जिससे आपका Android डिवाइस कनेक्ट है.
-
adb connect
चरण को फिर से पूरा करके फिर से कनेक्ट करें. -
अगर इससे काम नहीं होता है, तो अपने
adb
होस्ट को रीसेट करें:adb kill-server
इसके बाद, फिर से शुरुआत करें.
डिवाइस के लिए क्वेरी
adb
निर्देश देने से पहले, यह जानना ज़रूरी है कि डिवाइस के कौनसे इंस्टेंस कनेक्ट हैं
adb
सर्वर तक. इसका इस्तेमाल करके, अटैच किए गए डिवाइसों की सूची जनरेट करें
devices
निर्देश:
adb devices -l
जवाब में, adb
इस स्थिति की जानकारी को हर एक डिवाइस के लिए प्रिंट करता है:
- सीरियल नंबर:
adb
डिवाइस की खास तरह से पहचान करने के लिए एक स्ट्रिंग बनाता है उसके पोर्ट नंबर से मेल खाती हो. यहां सीरियल नंबर का उदाहरण दिया गया है:emulator-5554
- स्थिति: डिवाइस के कनेक्शन की स्थिति इनमें से कोई एक हो सकती है:
offline
: डिवाइसadb
से कनेक्ट नहीं है या नहीं है जवाब दे रहा है.device
: डिवाइसadb
सर्वर से कनेक्ट है. ध्यान दें कि इस स्थिति में यह नहीं बताया जाता कि Android सिस्टम पूरी तरह से चालू है और काम कर रहा है, क्योंकि डिवाइसadb
से कनेक्ट हो जाता है जब तक सिस्टम चालू हो रहा हो. बूट-अप के बाद, यह सामान्य कार्रवाई है डिवाइस की स्थिति.no device
: कोई डिवाइस कनेक्ट नहीं है.
- जानकारी:
-l
विकल्प शामिल करने पर,devices
आदेश आपको बताता है कि डिवाइस क्या है. यह जानकारी तब काम आती है, जब आपके पास कई डिवाइस हों ताकि आप उनके बीच का अंतर जान सकें.
यहां दिए गए उदाहरण में, devices
कमांड और उसका आउटपुट दिखाया गया है. तीन
डिवाइस चल रहे हैं. सूची की पहली दो लाइनें एम्युलेटर हैं और तीसरी लाइन हार्डवेयर है
जो कंप्यूटर से जुड़ा होता है.
$ adb devices List of devices attached emulator-5556 device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64 emulator-5554 device product:sdk_google_phone_x86 model:Android_SDK_built_for_x86 device:generic_x86 0a388e93 device usb:1-1 product:razor model:Nexus_7 device:flo
एम्युलेटर, सूची में नहीं है
adb devices
कमांड में कॉर्नर-केस कमांड का क्रम होता है, जिसकी वजह से रनिंग होता है
इसके बावजूद, adb devices
आउटपुट में एम्युलेटर न दिखें
एम्युलेटर आपके डेस्कटॉप पर दिखते हैं. ऐसा तब होता है, जब इनमें से सभी अधिकार दिए जाते हैं
शर्तें पूरी होती हैं:
adb
सर्वर नहीं चल रहा है.- आप
emulator
कमांड का उपयोग-port
के साथ करते है या-ports
विकल्प, जिसका पोर्ट नंबर 5554 से 5584 के बीच है. - आपने जो विषम संख्या वाला पोर्ट चुना है वह व्यस्त नहीं है, इसलिए पोर्ट कनेक्शन को दिया गया पोर्ट नंबर — या अगर यह व्यस्त है, तो एम्युलेटर इस पर स्विच हो जाएगा दूसरा पोर्ट है जो 2.
- एम्युलेटर शुरू करने के बाद,
adb
सर्वर चालू किया जाता है.
इस स्थिति से बचने का एक तरीका यह है कि एम्युलेटर को अपने पोर्ट चुनने दें और उसे बंद न करें
16 से ज़्यादा एम्युलेटर का इस्तेमाल नहीं किया. दूसरा तरीका यह है कि आप हमेशा से पहले adb
सर्वर को चालू करें
emulator
कमांड का इस्तेमाल करें, जैसा कि नीचे दिए गए उदाहरणों में बताया गया है.
उदाहरण 1: इस कमांड क्रम में, adb devices
कमांड शुरू होता है
adb
सर्वर पर, लेकिन डिवाइसों की सूची नहीं दिख रही है.
adb
सर्वर को रोकें और दिखाए गए क्रम में ये कमांड डालें. एवीडी के लिए
AVD के तौर पर अपने सिस्टम से मान्य नाम डालें. एवीडी के नामों की सूची पाने के लिए,
emulator -list-avds
. emulator
आदेश इसमें है
android_sdk/tools
डायरेक्ट्री.
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5555 $ adb devices List of devices attached * daemon not running. starting it now on port 5037 * * daemon started successfully *
उदाहरण 2: नीचे दिए गए कमांड क्रम में, adb devices
डिवाइस की सूची चुनने की वजह से, क्योंकि adb
सर्वर पहले शुरू हुआ था.
adb devices
आउटपुट में एम्युलेटर देखने के लिए, adb
सर्वर को बंद करें. इसके बाद,
फिर emulator
आदेश का उपयोग करने के बाद और
adb devices
निर्देश:
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5557 $ adb start-server $ adb devices List of devices attached emulator-5557 device
एम्युलेटर के कमांड-लाइन विकल्पों के बारे में ज़्यादा जानकारी के लिए, Command-Line देखें स्टार्टअप विकल्पों को चुनें.
किसी डिवाइस पर निर्देश भेजें
अगर कई डिवाइस चल रहे हैं, तो आपको टारगेट डिवाइस बताना होगा
जब आप adb
निर्देश जारी करते हैं.
टारगेट तय करने के लिए, यह तरीका अपनाएं:
- टारगेट का सीरियल नंबर पाने के लिए,
devices
निर्देश का इस्तेमाल करें. - सीरियल नंबर मिलने के बाद,
सीरियल नंबर बताने के लिए,
adb
निर्देशों वाला-s
विकल्प.- अगर आपको बहुत सारे
adb
निर्देश देने हैं, तो सीरियल नंबर शामिल करने के लिए,$ANDROID_SERIAL
एनवायरमेंट वैरिएबल आज़माएं. - अगर आप दोनों का इस्तेमाल करते हैं,
-s
और$ANDROID_SERIAL
,-s
ओवरराइड$ANDROID_SERIAL
.
- अगर आपको बहुत सारे
यहां दिए गए उदाहरण में, अटैच किए गए डिवाइसों की सूची ली गई है और फिर सीरियल नंबर की जानकारी दी गई है
उस डिवाइस पर helloWorld.apk
को इंस्टॉल करने के लिए, डिवाइसों में से एक का इस्तेमाल किया जाता है:
$ adb devices List of devices attached emulator-5554 device emulator-5555 device 0.0.0.0:6520 device # To install on emulator-5555 $ adb -s emulator-5555 install helloWorld.apk # To install on 0.0.0.0:6520 $ adb -s 0.0.0.0:6520 install helloWorld.apk
ध्यान दें: अगर टारगेट डिवाइस तय किए बिना कोई निर्देश दिया जाता है
कई डिवाइस उपलब्ध होने पर, adb
गड़बड़ी दिखाता है
"adb: एक से ज़्यादा डिवाइस/एम्युलेटर".
अगर आपके पास कई डिवाइस उपलब्ध हैं, लेकिन सिर्फ़ एक डिवाइस एम्युलेटर है, तो
एम्युलेटर को निर्देश भेजने के लिए, -e
विकल्प का इस्तेमाल करें. अगर एक से ज़्यादा
डिवाइस हों, लेकिन सिर्फ़ एक हार्डवेयर डिवाइस जुड़ा हो. ऐसे में निर्देश भेजने के लिए, -d
विकल्प का इस्तेमाल करें
हार्डवेयर डिवाइस.
ऐप्लिकेशन इंस्टॉल करना
एम्युलेटर या कनेक्ट किए गए डिवाइस पर APK इंस्टॉल करने के लिए, adb
का इस्तेमाल किया जा सकता है
install
निर्देश का इस्तेमाल करके:
adb install path_to_apk
आपको install
के साथ, -t
विकल्प का इस्तेमाल करना होगा
कमांड देता है. ज़्यादा जानकारी के लिए,
-t
देखें.
कई APK इंस्टॉल करने के लिए install-multiple
का इस्तेमाल करें. यह तब उपयोगी होता है, जब आप सभी
आपके ऐप्लिकेशन के लिए खास डिवाइस के APK को Play Console से डाउनलोड करना चाहते हैं और उन्हें किसी
एम्युलेटर या फ़िज़िकल डिवाइस पर उपलब्ध है.
एम्युलेटर/डिवाइस पर इंस्टॉल की जा सकने वाली APK फ़ाइल बनाने के बारे में ज़्यादा जानकारी के लिए उदाहरण के लिए, अपना ऐप्लिकेशन बनाना और चलाना देखें.
ध्यान दें: अगर Android Studio का इस्तेमाल किया जा रहा है, तो आपको
एम्युलेटर या डिवाइस पर आपका ऐप्लिकेशन इंस्टॉल करने के लिए, सीधे adb
पर जाएं. इसके बजाय, Android Studio पर
आपके लिए ऐप्लिकेशन की पैकेजिंग और इंस्टॉलेशन का काम संभालता है.
पोर्ट फ़ॉरवर्डिंग सेट अप करें
forward
कमांड का इस्तेमाल करके आर्बिट्रेरी पोर्ट फ़ॉरवर्डिंग सेट अप करें, जो
किसी खास होस्ट पोर्ट पर अनुरोधों को किसी डिवाइस पर किसी दूसरे पोर्ट पर फ़ॉरवर्ड करता है.
नीचे दिए गए उदाहरण में, होस्ट पोर्ट 6100 को डिवाइस पोर्ट 7100 पर फ़ॉरवर्ड करने की सुविधा सेट अप की गई है:
adb forward tcp:6100 tcp:7100
नीचे दिए गए उदाहरण में, होस्ट पोर्ट 6100 को local:logd पर फ़ॉरवर्ड करने की सुविधा सेट अप की गई है:
adb forward tcp:6100 local:logd
यह तब उपयोगी हो सकता है, जब आप यह पता लगाना चाहते हों कि दिए गए पोर्ट पर क्या भेजा जा रहा है डिवाइस. आपको मिला पूरा डेटा, सिस्टम-लॉगिंग डीमन के नाम पर लिखा जाएगा और दिखाया जाएगा डिवाइस लॉग में.
डिवाइस में और उससे फ़ाइलों को कॉपी करें
फ़ाइलों को कॉपी करने के लिए, pull
और push
निर्देशों का इस्तेमाल करें
किसी डिवाइस से कनेक्ट होते हैं. install
कमांड के उलट,
यह APK फ़ाइल को सिर्फ़ किसी खास जगह, pull
और push
पर कॉपी करता है
निर्देशों की मदद से, किसी डिवाइस में किसी भी जगह पर आर्बिट्रेरी डायरेक्ट्री और फ़ाइलें कॉपी की जा सकती हैं.
डिवाइस से किसी फ़ाइल या डायरेक्ट्री और उसकी सब-डायरेक्ट्री को कॉपी करने के लिए, ये काम करें:
adb pull remote local
किसी फ़ाइल या डायरेक्ट्री और उसकी सब-डायरेक्ट्री को डिवाइस में कॉपी करने के लिए, ये काम करें:
adb push local remote
local
और remote
को इसके पाथ से बदलें
आपकी डेवलपमेंट मशीन (लोकल) और
डिवाइस (रिमोट). उदाहरण के लिए:
adb push myfile.txt /sdcard/myfile.txt
adb सर्वर बंद करें
कुछ मामलों में, आपको adb
के सर्वर प्रोसेस को खत्म करके, रीस्टार्ट करना पड़ सकता है
उसे हल करने के लिए. उदाहरण के लिए, ऐसा तब हो सकता है, जब adb
किसी निर्देश का जवाब न दे.
adb
सर्वर को बंद करने के लिए, adb kill-server
निर्देश का इस्तेमाल करें.
इसके बाद, adb
का कोई अन्य निर्देश देकर, सर्वर को रीस्टार्ट करें.
समस्या adb आदेश
अपनी डेवलपमेंट मशीन पर कमांड लाइन से या स्क्रिप्ट का इस्तेमाल करके, adb
कमांड से जुड़ी समस्या हल करें
फ़ॉलो किया जा रहा है:
adb [-d | -e | -s serial_number] command
अगर सिर्फ़ एक एम्युलेटर चल रहा है या सिर्फ़ एक डिवाइस कनेक्ट है, तो adb
निर्देश होगा
डिफ़ॉल्ट रूप से उसी डिवाइस पर भेजी जाती है. अगर एक से ज़्यादा एम्युलेटर चल रहे हैं और/या एक से ज़्यादा डिवाइस
इस ईमेल पते पर, आपको -d
, -e
या -s
का इस्तेमाल करना होगा
का विकल्प भी चुना जा सकता है.
adb
के साथ काम करने वाले सभी निर्देशों की सूची देखने के लिए, इनका इस्तेमाल करें
आदेश:
adb --help
इश्यू शेल कमांड
shell
कमांड का इस्तेमाल करके, adb
के ज़रिए डिवाइस के निर्देश दिए जा सकते हैं. इसके अलावा,
इंटरैक्टिव शेल. एक निर्देश देने के लिए, shell
निर्देश का इस्तेमाल इस तरह करें:
adb [-d |-e | -s serial_number] shell shell_command
किसी डिवाइस पर इंटरैक्टिव शेल चालू करने के लिए, shell
निर्देश का इस्तेमाल इस तरह करें:
adb [-d | -e | -s serial_number] shell
किसी इंटरैक्टिव शेल से बाहर निकलने के लिए, Control+D
दबाएं या exit
टाइप करें.
Android, Unix के ज़्यादातर कमांड-लाइन टूल उपलब्ध कराता है, जो आम तौर पर इस्तेमाल किए जाते हैं. उपलब्ध टूल की सूची देखने के लिए, ये निर्देश देंगे:
adb shell ls /system/bin
--help
आर्ग्युमेंट के ज़रिए, ज़्यादातर निर्देशों के लिए सहायता उपलब्ध है.
कई शेल आदेश
toybox.
सभी टॉयबॉक्स निर्देशों पर लागू होने वाली सामान्य सहायता toybox --help
के ज़रिए उपलब्ध है.
Android प्लैटफ़ॉर्म टूल 23 और उसके बाद के वर्शन के साथ, adb
आर्ग्युमेंट को उसी तरह हैंडल करता है जैसे कि
ssh(1)
निर्देश काम करता है. इस परिवर्तन ने इसके साथ कई समस्याएँ ठीक की हैं
कमांड इंजेक्शन
और इसकी मदद से शेल वाले कमांड को सुरक्षित रूप से एक्ज़ीक्यूट किया जा सकता है
मेटाकैरेक्टर,
जैसे कि adb install Let\'sGo.apk
. इस बदलाव का मतलब यह है कि
शेल मेटाकैरेक्टर वाले किसी भी निर्देश को भी बदल दिया गया है.
उदाहरण के लिए, adb shell setprop key 'value'
अब एक गड़बड़ी है, क्योंकि
स्थानीय शेल आपका सिंगल कोट ('
) निगल लेता है और डिवाइस
adb shell setprop key value
. आदेश काम करने के लिए, दो बार कोट करें,
एक बार लोकल शेल के लिए और एक बार रिमोट शेल के लिए.
ssh(1)
. उदाहरण के लिए, adb shell setprop key 'value'
.
Logcat कमांड-लाइन टूल भी देखें, जो कि काम का है का इस्तेमाल, सिस्टम लॉग पर नज़र रखने के लिए किया जाता है.
कॉल ऐक्टिविटी मैनेजर
adb
शेल में, गतिविधि मैनेजर (am
) टूल की मदद से निर्देश दिए जा सकते हैं, ताकि ये काम किए जा सकें
सिस्टम से जुड़ी अलग-अलग कार्रवाइयां की जा सकती हैं. जैसे, कोई गतिविधि शुरू करना, किसी प्रोसेस को ज़बरदस्ती रोकना,
किसी इंटेंट को ब्रॉडकास्ट करने, डिवाइस की स्क्रीन की प्रॉपर्टी में बदलाव करने के साथ-साथ और भी बहुत कुछ करें.
शेल में होने पर, am
सिंटैक्स यह होता है:
am command
आपके पास सीधे adb
से भी ऐक्टिविटी मैनेजर का निर्देश देने का विकल्प है
वह भी रिमोट शेल टाइप किए बिना. उदाहरण के लिए:
adb shell am start -a android.intent.action.VIEW
टेबल 1. ऐक्टिविटी मैनेजर के लिए उपलब्ध निर्देश
निर्देश | ब्यौरा |
---|---|
start [options] intent
|
इसके ज़रिए तय किया गया Activity शुरू करें
intent . ज़्यादा जानकारी के लिए, इंटेंट आर्ग्युमेंट के बारे में खास जानकारी. इसके विकल्प:
|
startservice [options] intent
|
इसके ज़रिए तय किया गया Service शुरू करें
intent . ज़्यादा जानकारी के लिए, इंटेंट आर्ग्युमेंट के बारे में खास जानकारी. इसके विकल्प:
|
force-stop package
|
package से जुड़ी हर चीज़ को ज़बरदस्ती बंद करें.
|
kill [options] package
|
package से जुड़ी सभी प्रोसेस बंद कर दें. इस निर्देश से सिर्फ़
ऐसी प्रक्रियाएं जो उपयोगकर्ता को नुकसान पहुंचा सकती हैं और जिनका असर उपयोगकर्ता पर
अनुभव.
इसके विकल्प:
|
kill-all
|
सभी बैकग्राउंड प्रक्रियाएं खत्म करें. |
broadcast [options] intent
|
ब्रॉडकास्ट इंटेंट जारी करें. ज़्यादा जानकारी के लिए, इंटेंट आर्ग्युमेंट के बारे में खास जानकारी. इसके विकल्प:
|
instrument [options] component
|
इसके साथ मॉनिटरिंग शुरू करें:
Instrumentation इंस्टेंस.
आम तौर पर, टारगेट component
test_package/runner_class फ़ॉर्मैट में है. इसके विकल्प:
|
profile start process file
|
process पर प्रोफ़ाइलर शुरू करें, file पर परिणाम लिखें.
|
profile stop process
|
process पर प्रोफ़ाइलर बंद करें.
|
dumpheap [options] process file
|
process के ढेर को छोड़ें, file को लिखें. इसके विकल्प:
|
set-debug-app [options] package
|
package ऐप्लिकेशन को डीबग करने के लिए सेट करें. इसके विकल्प:
|
clear-debug-app
|
set-debug-app की मदद से डीबग करने के लिए, पैकेज का पिछला सेट हटाएं.
|
monitor [options]
|
क्रैश या एएनआर वाली गड़बड़ियों को मॉनिटर करना शुरू करें. इसके विकल्प:
|
screen-compat {on | off} package
|
कंट्रोल स्क्रीन
package का कम्पैटबिलटी मोड.
|
display-size [reset | widthxheight]
|
डिवाइस के डिसप्ले का साइज़ बदलें.
यह निर्देश आपके ऐप्लिकेशन की छोटे साइज़ की नकल करके, अलग-अलग स्क्रीन साइज़ पर उसकी जांच करने में मदद करता है
स्क्रीन रिज़ॉल्यूशन के लिए बड़ी स्क्रीन का इस्तेमाल करें.
उदाहरण: |
display-density dpi
|
डिवाइस की डिसप्ले सघनता बदलें.
यह निर्देश, हाई डेंसिटी की नकल करके, अलग-अलग स्क्रीन डेंसिटी पर आपके ऐप्लिकेशन की जांच करने में मदद करता है
कम डेंसिटी वाली स्क्रीन का इस्तेमाल करते हुए स्क्रीन एनवायरमेंट.
उदाहरण: |
to-uri intent
|
दिए गए इंटेंट स्पेसिफ़िकेशन को यूआरआई के तौर पर प्रिंट करें. ज़्यादा जानकारी के लिए, इंटेंट आर्ग्युमेंट के बारे में खास जानकारी. |
to-intent-uri intent
|
दिए गए इंटेंट स्पेसिफ़िकेशन को intent: यूआरआई के तौर पर प्रिंट करें. ज़्यादा जानकारी के लिए, इंटेंट आर्ग्युमेंट के बारे में खास जानकारी. |
इंटेंट आर्ग्युमेंट के लिए खास जानकारी
intent
तर्क लेने वाले गतिविधि मैनेजर कमांड के लिए, ये काम किए जा सकते हैं
नीचे दिए गए विकल्पों की मदद से इंटेंट तय करें:
पैकेज मैनेजर (pm
) को कॉल करें
adb
शेल में, आप पैकेज मैनेजर (pm
) टूल की मदद से निर्देश दे सकते हैं, ताकि
डिवाइस पर इंस्टॉल किए गए ऐप्लिकेशन पैकेज पर कार्रवाइयां और क्वेरी कर सकता है.
शेल में होने पर, pm
सिंटैक्स यह होता है:
pm command
आप सीधे adb
से भी पैकेज मैनेजर आदेश जारी कर सकते हैं
वह भी बहुत काम की है. उदाहरण के लिए:
adb shell pm uninstall com.example.MyApp
दूसरी टेबल. पैकेज मैनेजर के लिए उपलब्ध निर्देश
निर्देश | ब्यौरा |
---|---|
list packages [options] filter
|
सभी पैकेज प्रिंट करें, वैकल्पिक रूप से केवल
वे लोग जिनके पैकेज नाम में filter का टेक्स्ट है. विकल्प:
|
list permission-groups
|
अनुमति वाले सभी ग्रुप की जानकारी प्रिंट करें. |
list permissions [options] group
|
सभी ज़रूरी अनुमतियों को प्रिंट करें. हालांकि, ऐसा करना ज़रूरी नहीं है
group में मौजूद हैं. विकल्प:
|
list instrumentation [options]
|
टेस्ट के सभी पैकेज की सूची बनाएं. विकल्प:
|
list features
|
सिस्टम की सभी सुविधाएं प्रिंट करें. |
list libraries
|
मौजूदा डिवाइस के साथ काम करने वाली सभी लाइब्रेरी प्रिंट करें. |
list users
|
सिस्टम पर मौजूद सभी उपयोगकर्ताओं की जानकारी प्रिंट करें. |
path package
|
दिए गए package के APK का पाथ प्रिंट करें.
|
install [options] path
|
सिस्टम पर path में तय किया गया पैकेज इंस्टॉल करें. विकल्प:
|
uninstall [options] package
|
सिस्टम से पैकेज हटाता है. विकल्प:
|
clear package
|
किसी पैकेज से जुड़ा सारा डेटा मिटाएं. |
enable package_or_component
|
दिए गए पैकेज या कॉम्पोनेंट को चालू करें ("पैकेज/क्लास" के तौर पर लिखा जाता है). |
disable package_or_component
|
दिए गए पैकेज या कॉम्पोनेंट को बंद करें ("पैकेज/क्लास" के तौर पर लिखा जाता है). |
disable-user [options] package_or_component
|
विकल्प:
|
grant package_name permission
|
किसी ऐप्लिकेशन को अनुमति दें. Android 6.0 (एपीआई लेवल 23) वाले डिवाइसों पर और बाद के वर्शन में, यह अनुमति ऐप्लिकेशन मेनिफ़ेस्ट में बताई गई कोई भी अनुमति हो सकती है. डिवाइस पर जो Android 5.1 (एपीआई लेवल 22) और उससे पहले के वर्शन पर चल रहे हैं, उन्हें है. |
revoke package_name permission
|
किसी ऐप्लिकेशन से अनुमति वापस लेना. Android 6.0 (एपीआई लेवल) वाले डिवाइसों पर 23) और उससे आगे के वर्शन के लिए, ऐप्लिकेशन मेनिफ़ेस्ट में बताई गई कोई भी अनुमति हो सकती है. डिवाइस पर जो Android 5.1 (एपीआई लेवल 22) और उससे पहले के वर्शन पर चल रहे हैं, उन्हें है. |
set-install-location location
|
डिफ़ॉल्ट तौर पर, इंस्टॉल करने की जगह बदलें. जगह की जानकारी:
ध्यान दें: यह सिर्फ़ डीबग करने के लिए है. इसका इस्तेमाल करने से ये वजहें हो सकती हैं और अन्य अनचाहे व्यवहार को रोकने के लिए होता है. |
get-install-location
|
यह फ़ंक्शन इंस्टॉल करने की मौजूदा जगह की जानकारी दिखाता है. रिटर्न वैल्यू:
|
set-permission-enforced permission [true | false]
|
तय करें कि दी गई अनुमति लागू होनी चाहिए या नहीं. |
trim-caches desired_free_space
|
दिए गए खाली स्थान तक पहुंचने के लिए कैश फ़ाइलों में काट-छांट करें. |
create-user user_name
|
दिए गए user_name के साथ एक नया उपयोगकर्ता बनाएं,
उपयोगकर्ता के नए उपयोगकर्ता आइडेंटिफ़ायर को प्रिंट करते समय.
|
remove-user user_id
|
दिए गए user_id वाले उपयोगकर्ता को हटाएं,
उस उपयोगकर्ता का सारा डेटा मिटाया जा रहा है
|
get-max-users
|
डिवाइस द्वारा समर्थित उपयोगकर्ताओं की अधिकतम संख्या प्रिंट करें. |
get-app-links [options] [package]
|
दिए गए package के लिए या सभी के लिए डोमेन की पुष्टि की स्थिति प्रिंट करें पैकेज डिलीवर करें. राज्य के कोड इस तरह परिभाषित किए गए हैं:
इसके विकल्प:
|
reset-app-links [options] [package]
|
दिए गए पैकेज या सभी के लिए डोमेन की पुष्टि की स्थिति रीसेट करें पैकेज डिलीवर करें.
इसके विकल्प:
|
verify-app-links [--re-verify] [package]
|
दिए गए package के लिए या सभी के लिए, पुष्टि करने का अनुरोध ब्रॉडकास्ट करें पैकेज डिलीवर करें. यह ईमेल सिर्फ़ तब भेजा जाता है, जब पैकेज में पहले से शामिल किया गया हो जवाब रिकॉर्ड नहीं किया गया.
|
set-app-links [--package package] state domains
|
किसी पैकेज के लिए डोमेन की स्थिति को मैन्युअल तरीके से सेट करें. डोमेन यह काम करने के लिए, पैकेज में अपने-आप पुष्टि होने की सुविधा का इस्तेमाल करें. यह निर्देश उन डोमेन के लिए किसी गड़बड़ी की रिपोर्ट नहीं करेगा जिन्हें लागू नहीं किया जा सका.
|
set-app-links-user-selection --user user_id [--package package]
enabled domains
|
पैकेज के लिए, होस्ट उपयोगकर्ता को चुनने की स्थिति को मैन्युअल तरीके से सेट करें. डोमेन इसके काम करने के लिए, पैकेज की जानकारी का एलान करना ज़रूरी है. इस निर्देश से उन डोमेन की गड़बड़ी की रिपोर्ट करें जिन्हें लागू नहीं किया जा सका.
|
set-app-links-user-selection --user user_id [--package package]
enabled domains
|
पैकेज के लिए, होस्ट उपयोगकर्ता को चुनने की स्थिति को मैन्युअल तरीके से सेट करें. डोमेन इसके काम करने के लिए, पैकेज की जानकारी का एलान करना ज़रूरी है. इस निर्देश से उन डोमेन की गड़बड़ी की रिपोर्ट करें जिन्हें लागू नहीं किया जा सका.
|
set-app-links-allowed --user user_id [--package package] allowed
|
किसी पैकेज के लिए, लिंक-हैंडलिंग की अपने-आप पुष्टि होने वाली सेटिंग को टॉगल करें.
|
get-app-link-owners --user user_id [--package package] domains
|
किसी उपयोगकर्ता के लिए, कम से ज़्यादा प्राथमिकता के क्रम में किसी खास डोमेन के मालिकों की जानकारी प्रिंट करें.
|
डिवाइस नीति मैनेजर (dpm
) को कॉल करें
अपने डिवाइस मैनेजमेंट ऐप्लिकेशन डेवलप करने और उनकी जांच करने में मदद पाने के लिए,
डिवाइस नीति मैनेजर (dpm
) टूल को निर्देश दें. चालू चैट को कंट्रोल करने के लिए इस टूल का इस्तेमाल करें
एडमिन ऐप्लिकेशन के लिए या डिवाइस पर किसी नीति की स्थिति का डेटा बदलने के लिए.
शेल में होने पर, dpm
सिंटैक्स यह होता है:
dpm command
आपके पास सीधे adb
से भी डिवाइस नीति मैनेजर का निर्देश देने का विकल्प है
रिमोट शेल डाले बिना:
adb shell dpm command
तीसरी टेबल. डिवाइस नीति मैनेजर के लिए उपलब्ध निर्देश
निर्देश | ब्यौरा |
---|---|
set-active-admin [options] component
|
component को सक्रिय एडमिन के तौर पर सेट करता है.
इसके विकल्प:
|
set-profile-owner [options] component
|
किसी मौजूदा उपयोगकर्ता के लिए, component को प्रोफ़ाइल के मालिक के तौर पर और उसके पैकेज को सक्रिय एडमिन के तौर पर सेट करें.
इसके विकल्प:
|
set-device-owner [options] component
|
component को सक्रिय एडमिन के तौर पर और उसके पैकेज को डिवाइस के मालिक के तौर पर सेट करें.
इसके विकल्प:
|
remove-active-admin [options] component
|
ऐक्टिव एडमिन को बंद करें. ऐप्लिकेशन को यह एलान करना होगा
android:testOnly अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
मेनिफ़ेस्ट फ़ाइल में मौजूद है. इस निर्देश से डिवाइस और प्रोफ़ाइल के मालिकों की जानकारी भी हट जाती है.
इसके विकल्प:
|
clear-freeze-period-record
|
सिस्टम ओटीए अपडेट के लिए, डिवाइस का वह रिकॉर्ड मिटाएं जिसमें पहले से ही फ़्रीज़ होने की अवधि सेट की गई थी. यह काम का है
का इस्तेमाल करें. यहां जाएं:
सिस्टम अपडेट मैनेज करना.
यह सुविधा, Android 9.0 (एपीआई लेवल 28) और इसके बाद के वर्शन वाले डिवाइसों पर काम करती है. |
force-network-logs
|
सिस्टम को किसी भी मौजूदा नेटवर्क लॉग को DPC से वापस पाने के लिए तैयार करने के लिए मजबूर करें. अगर कोई
कनेक्शन या DNS लॉग उपलब्ध हैं, तो DPC को
onNetworkLogsAvailable() अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
कॉलबैक. नेटवर्क गतिविधि लॉग करना देखें.
इस निर्देश के लिए तय की गई दर लागू है. यह सुविधा, Android 9.0 (एपीआई लेवल 28) और इसके बाद के वर्शन वाले डिवाइसों पर काम करती है. |
force-security-logs
|
सिस्टम को कोई भी मौजूदा सुरक्षा लॉग, DPC को उपलब्ध कराने के लिए कहें. अगर लॉग हैं
उपलब्ध न हो, तो DPC को
onSecurityLogsAvailable() अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
कॉलबैक. एंटरप्राइज़ डिवाइस लॉग करें
ऐक्टिविटी के बारे में जानें.
इस निर्देश के लिए तय की गई दर लागू है. यह सुविधा, Android 9.0 (एपीआई लेवल 28) और इसके बाद के वर्शन वाले डिवाइसों पर काम करती है. |
स्क्रीनशॉट लें
screencap
निर्देश किसी डिवाइस का स्क्रीनशॉट लेने के लिए एक शेल यूटिलिटी है
डिसप्ले.
शेल में होने पर, screencap
सिंटैक्स यह होता है:
screencap filename
कमांड लाइन से screencap
का इस्तेमाल करने के लिए, यह जानकारी डालें:
adb shell screencap /sdcard/screen.png
स्क्रीनशॉट कैप्चर करने के लिए, adb
शेल का इस्तेमाल करके, स्क्रीनशॉट सेशन का उदाहरण यहां दिया गया है
और डिवाइस से फ़ाइल डाउनलोड करने के लिए pull
निर्देश:
$ adb shell shell@ $ screencap /sdcard/screen.png shell@ $ exit $ adb pull /sdcard/screen.png
वीडियो रिकॉर्ड करें
screenrecord
कमांड, डिवाइसों के डिसप्ले की रिकॉर्डिंग के लिए शेल यूटिलिटी है
जो Android 4.4 (एपीआई लेवल 19) और उसके बाद वाले वर्शन पर काम करते हों. यह सुविधा, स्क्रीन पर की गई गतिविधि को MPEG-4 में रिकॉर्ड करती है
फ़ाइल से लिए जाते हैं. इस फ़ाइल का इस्तेमाल, प्रमोशन या ट्रेनिंग वाले वीडियो बनाने या डीबग करने और जांच करने के लिए किया जा सकता है.
शेल में, इस सिंटैक्स का इस्तेमाल करें:
screenrecord [options] filename
कमांड लाइन से screenrecord
का इस्तेमाल करने के लिए, यह जानकारी डालें:
adb shell screenrecord /sdcard/demo.mp4
Control+C दबाकर स्क्रीन रिकॉर्डिंग बंद करें. अगर ऐसा नहीं होता है, तो रिकॉर्डिंग
तीन मिनट पर या --time-limit
की सेट की गई समयसीमा अपने-आप रुक जाती है.
अपने डिवाइस की स्क्रीन को रिकॉर्ड करने के लिए, screenrecord
निर्देश चलाएं और रिकॉर्ड करें
वीडियो. इसके बाद, डिवाइस से होस्ट पर वीडियो डाउनलोड करने के लिए, pull
निर्देश दें
कंप्यूटर पर सेव करें. यहां सेशन रिकॉर्डिंग का एक उदाहरण दिया गया है:
$ adb shell shell@ $ screenrecord --verbose /sdcard/demo.mp4 (press Control + C to stop) shell@ $ exit $ adb pull /sdcard/demo.mp4
screenrecord
यूटिलिटी ऐसे किसी भी रिज़ॉल्यूशन और बिट रेट पर रिकॉर्ड कर सकती है जो इसके साथ काम करता है
डिवाइस के डिसप्ले का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बनाए रखते हुए, अनुरोध सबमिट किया जाता है. नेटिव लेआउट में यूटिलिटी रिकॉर्ड
डिफ़ॉल्ट रूप से, डिसप्ले रिज़ॉल्यूशन और स्क्रीन की दिशा (ओरिएंटेशन) को तीन मिनट की अधिकतम लंबाई के साथ सेट किया जाता है.
screenrecord
यूटिलिटी की सीमाएं:
- वीडियो फ़ाइल के साथ ऑडियो रिकॉर्ड नहीं किया जाता.
- Wear OS पर चलने वाले डिवाइसों के लिए, वीडियो रिकॉर्ड करने की सुविधा उपलब्ध नहीं है.
- ऐसा हो सकता है कि कुछ डिवाइस, अपने डिवाइस के डिसप्ले रिज़ॉल्यूशन पर वीडियो रिकॉर्ड न कर पाएं. अगर आपको स्क्रीन रिकॉर्डिंग करने में समस्याएं आती हैं, तो कम रिज़ॉल्यूशन का इस्तेमाल करके देखें.
- रिकॉर्डिंग के दौरान स्क्रीन को घुमाया नहीं जा सकता. अगर इस दौरान स्क्रीन घूमती है तो रिकॉर्डिंग करते समय स्क्रीन का कुछ हिस्सा कट जाता है.
टेबल 4. screenrecord
विकल्प चुना गया
विकल्प | ब्यौरा |
---|---|
--help
|
कमांड सिंटैक्स और विकल्प दिखाएं |
--size widthxheight
|
वीडियो का साइज़ सेट करें: 1280x720 . डिफ़ॉल्ट वैल्यू, डिवाइस की नेटिव वैल्यू है
डिसप्ले रिज़ॉल्यूशन (अगर काम करता है), तो 1280x720. अगर उपलब्ध नहीं है, तो सबसे अच्छे नतीजों के लिए, इस्तेमाल किए जा सकने वाले साइज़ का इस्तेमाल करें
की मदद से कनेक्ट करें. |
--bit-rate rate |
वीडियो के लिए मेगाबिट प्रति सेकंड में वीडियो बिट रेट सेट करें. डिफ़ॉल्ट वैल्यू 20 एमबीपीएस है.
वीडियो क्वालिटी को बेहतर करने के लिए, बिट रेट को बढ़ाया जा सकता है. हालांकि, ऐसा करने से एक बड़ी मूवी बनती है
फ़ाइलें शामिल हैं. यहां दिए गए उदाहरण में, रिकॉर्डिंग के लिए बिट रेट को 6 एमबीपीएस पर सेट किया गया है:
screenrecord --bit-rate 6000000 /sdcard/demo.mp4 |
--time-limit time |
सेकंड में ज़्यादा से ज़्यादा रिकॉर्डिंग समय सेट करें. डिफ़ॉल्ट और ज़्यादा से ज़्यादा वैल्यू 180 है (3 मिनट). |
--rotate |
आउटपुट को 90 डिग्री पर घुमाएं. यह सुविधा एक्सपेरिमेंट के तौर पर उपलब्ध है. |
--verbose |
कमांड लाइन स्क्रीन पर लॉग की जानकारी दिखाएं. अगर आप यह विकल्प सेट नहीं करते हैं, तो उपयोगिता चलाते समय कोई भी जानकारी नहीं दिखाती. |
ऐप्लिकेशन के लिए ART प्रोफ़ाइल पढ़ें
Android 7.0 (एपीआई लेवल 24) के बाद से, Android रनटाइम (आर्ट) इन कामों के लिए, एक्ज़ीक्यूशन प्रोफ़ाइल इकट्ठा करता है इंस्टॉल किए गए ऐप्लिकेशन, जिनका इस्तेमाल ऐप्लिकेशन की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए किया जाता है. इकट्ठा की गई प्रोफ़ाइलों की जांच करके, यह समझना कि ऐप्लिकेशन के शुरू होने के दौरान, कौनसे तरीके बार-बार इस्तेमाल किए जाते हैं और कौनसी क्लास का इस्तेमाल किया जाता है.
ध्यान दें: एक्ज़ीक्यूशन प्रोफ़ाइल को वापस पाना ही मुमकिन है फ़ाइल नाम की फ़ाइल का नाम डालें, अगर आपके पास फ़ाइल सिस्टम का रूट ऐक्सेस है, उदाहरण के लिए, किसी एम्युलेटर पर.
प्रोफ़ाइल जानकारी का एक टेक्स्ट फ़ॉर्म बनाने के लिए, नीचे दिए गए कमांड का इस्तेमाल करें:
adb shell cmd package dump-profiles package
बनाई गई फ़ाइल वापस पाने के लिए, इनका इस्तेमाल करें:
adb pull /data/misc/profman/package.prof.txt
टेस्ट डिवाइसों को रीसेट करें
अगर आपने एक से ज़्यादा टेस्ट डिवाइसों पर अपने ऐप्लिकेशन को टेस्ट किया है, तो अपने डिवाइस को इन डिवाइसों के बीच रीसेट करना मददगार साबित हो सकता है
की जांच करता है. उदाहरण के लिए, उपयोगकर्ता का डेटा हटाने और टेस्ट एनवायरमेंट को रीसेट करने के लिए. आपके पास फ़ैक्ट्री चलाने का विकल्प है
Android 10 (एपीआई लेवल 29) या उसके बाद के वर्शन पर चलने वाले टेस्ट डिवाइस को रीसेट करने के लिए,
testharness
adb
शेल कमांड, जैसा कि दिखाया गया है:
adb shell cmd testharness enable
testharness
का इस्तेमाल करके डिवाइस को वापस लाने के दौरान, डिवाइस अपने-आप आरएसए का बैक अप ले लेता है
कुंजी का इस्तेमाल करके, मौजूदा वर्कस्टेशन के ज़रिए स्थायी जगह पर डीबग किया जा सकता है. यानी, इसके बाद
डिवाइस को रीसेट किया गया है. वर्कस्टेशन डीबग करना जारी रख सकता है और adb
निर्देशों को जारी कर सकता है
नई कुंजी रजिस्टर किए बिना ही डिवाइस को रजिस्टर कर सकते हैं.
इसके अलावा, ऐप्लिकेशन की जांच को ज़्यादा आसान और सुरक्षित बनाने के लिए,
डिवाइस को वापस लाने के लिए, testharness
से डिवाइस की इन सेटिंग में भी बदलाव होता है:
- डिवाइस कुछ सिस्टम सेटिंग सेट करता है ताकि शुरुआती डिवाइस सेटअप विज़र्ड न दिखें. इसका मतलब है कि डिवाइस में ऐसी स्थिति आती है जहां से ऐप्लिकेशन को तुरंत इंस्टॉल, डीबग, और टेस्ट किया जा सकता है.
- सेटिंग:
- लॉक स्क्रीन को बंद करता है.
- इससे आपातकालीन स्थिति के बारे में चेतावनी पाने की सुविधा बंद हो जाती है.
- इससे खातों के लिए अपने-आप सिंक होने की सुविधा बंद हो जाती है.
- अपने-आप होने वाले सिस्टम अपडेट बंद करता है.
- अन्य:
- पहले से इंस्टॉल किए गए सुरक्षा ऐप्लिकेशन बंद करती है.
अगर आपके ऐप्लिकेशन को testharness
की डिफ़ॉल्ट सेटिंग का पता लगाना और उनके हिसाब से काम करना चाहिए
आदेश,
ActivityManager.isRunningInUserTestHarness()
.
स्क्लाइट
SQLite डेटाबेस की जांच करने के लिए, sqlite3
sqlite
कमांड-लाइन प्रोग्राम शुरू करता है.
इसमें टेबल का कॉन्टेंट प्रिंट करने के लिए, .dump
जैसे निर्देश शामिल होते हैं.
मौजूदा टेबल के लिए SQL CREATE
स्टेटमेंट प्रिंट करने के लिए .schema
.
कमांड लाइन से, SQLite के निर्देशों को भी एक्ज़ीक्यूट किया जा सकता है, जैसा कि नीचे दिखाया गया है:
$ adb -s emulator-5554 shell $ sqlite3 /data/data/com.example.app/databases/rssitems.db SQLite version 3.3.12 Enter ".help" for instructions
ध्यान दें: SQLite डेटाबेस को सिर्फ़ ऐक्सेस किया जा सकता है अगर आपके पास फ़ाइल सिस्टम का रूट ऐक्सेस है, उदाहरण के लिए, किसी एम्युलेटर पर.
ज़्यादा जानकारी के लिए, sqlite3
कमांड लाइन दस्तावेज़ देखें.
adb यूएसबी बैकएंड
adb सर्वर दो बैकएंड के ज़रिए, यूएसबी स्टैक के साथ इंटरैक्ट कर सकता है. यह या तो नेटिव
ओएस (Windows, Linux या macOS) का बैकएंड या libusb
बैकएंड का इस्तेमाल कर सकता है.
attach
, detach
, और यूएसबी स्पीड का पता लगाने जैसी कुछ सुविधाएं
यह सुविधा, सिर्फ़ libusb
बैकएंड का इस्तेमाल करते समय उपलब्ध होती है.
आपके पास ADB_LIBUSB
एनवायरमेंट वैरिएबल का इस्तेमाल करके, बैकएंड चुनने का विकल्प है.
अगर यह नीति सेट नहीं है, तो adb अपने डिफ़ॉल्ट बैकएंड का इस्तेमाल करता है. ओएस के हिसाब से, डिफ़ॉल्ट तरीका अलग-अलग होता है. शुरू होने की तारीख
ADB v34 के साथ,
liubusb
बैकएंड का इस्तेमाल Windows को छोड़कर, बाकी सभी ओएस में डिफ़ॉल्ट रूप से किया जाता है. यहां नेटिव बैकएंड डिफ़ॉल्ट तौर पर मौजूद होता है
डिफ़ॉल्ट रूप से इस्तेमाल किया जाता है. अगर ADB_LIBUSB
है
सेट है, तो इससे तय होता है कि नेटिव बैकएंड या libusb
का इस्तेमाल किया गया है या नहीं. ज़्यादा जानकारी के लिए,
adb का मैन्युअल पेज
के बारे में ज़्यादा जानें.
adb mडीएनएस बैकएंड
ADB, सर्वर और डिवाइसों को अपने-आप कनेक्ट करने के लिए, मल्टीकास्ट डीएनएस प्रोटोकॉल का इस्तेमाल कर सकता है. ADB सर्वर दो बैकएंड के साथ शिप करता है, Bonjour (Apple का mdnsResponder) और Openscreen.
Bonjour बैकएंड को होस्ट मशीन पर चलाने के लिए एक डीमन की ज़रूरत है.
macOS पर Apple का पहले से मौजूद डीमन हमेशा काम करता रहता है. हालांकि, Windows और Linux पर, उपयोगकर्ता को यह पक्का करना होगा कि mdnsd
डीमन चालू हो और सही से काम कर रहा हो.
अगर निर्देश adb mdns check
कोई गड़बड़ी दिखाता है, तो ऐसा हो सकता है कि ADB, Bonjour बैकएंड का इस्तेमाल कर रहा हो, लेकिन कोई Bonjour डीमन चल रहा हो.
मशीन पर ओपनस्क्रीन बैकएंड को चलाने के लिए, डीमन की ज़रूरत नहीं है. macOS पर Openscreen बैकएंड के साथ काम करने की शुरुआत ADB v35 से होती है. Windows और Linux, ADB v34 के बाद से काम करते हैं.
डिफ़ॉल्ट रूप से ADB, Bonjour बैकएंड का इस्तेमाल करता है. एनवायरमेंट वैरिएबल ADB_MDNS_OPENSCREEN
का इस्तेमाल करके, इस व्यवहार को बदला जा सकता है
(1
या 0
पर सेट करें).
ज़्यादा जानकारी के लिए, ADB का मैन्युअल पेज देखें.