Android डीबग ब्रिज (adb)

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 प्लैटफ़ॉर्म टूल.

वायरलेस तरीके से डीबग करने की सुविधा का इस्तेमाल करने के लिए, आपको क्यूआर कोड या जोड़ने के लिए कोड. आपका वर्कस्टेशन और डिवाइस, दोनों एक ही वायरलेस नेटवर्क से कनेक्ट होने चाहिए. यहां की यात्रा पर हूं को अपने डिवाइस से कनेक्ट करने के लिए, यहां दिया गया तरीका अपनाएं:

  1. डेवलपर के लिए सेटिंग और टूल चालू करना आपके डिवाइस पर.

  2. Android Studio खोलें और रन से वाई-फ़ाई का इस्तेमाल करके डिवाइस को जोड़ें चुनें कॉन्फ़िगरेशन मेन्यू.

    कॉन्फ़िगरेशन वाला ड्रॉपडाउन मेन्यू चलाएं
    पहला डायग्राम. कॉन्फ़िगरेशन मेन्यू चलाएं.

    वाई-फ़ाई का इस्तेमाल करके, डिवाइसों को जोड़ें वाली विंडो पॉप-अप होती है, जैसा कि दूसरी इमेज में दिखाया गया है.

    वाई-फ़ाई की पॉप-अप विंडो पर, जोड़े गए डिवाइसों का स्क्रीनशॉट
    दूसरा डायग्राम. क्यूआर कोड या दूसरे डिवाइस से जोड़ने की सुविधा का इस्तेमाल करके, डिवाइसों को जोड़ने के लिए पॉप-अप विंडो कोड.
  3. अपने डिवाइस पर, वायरलेस डीबगिंग पर टैप करें और अपने डिवाइस को दूसरे डिवाइस से जोड़ें:

    का स्क्रीनशॉट
            Pixel फ़ोन की इमेज, जिसमें वायरलेस डीबगिंग सिस्टम की सेटिंग दिख रही है.
    तीसरी इमेज. वायरलेस डीबग करने की सेटिंग चालू होने का स्क्रीनशॉट Google Pixel फ़ोन.
    1. अपने डिवाइस को क्यूआर कोड से जोड़ने के लिए, डिवाइस को क्यूआर कोड से जोड़ें चुनें. इसके बाद, वाई-फ़ाई की मदद से डिवाइसों को जोड़ें पॉप-अप से मिला क्यूआर कोड, दूसरी इमेज में दिखाया गया है.

    2. अपने डिवाइस को जोड़ने के कोड से जोड़ने के लिए, यहां से दूसरे डिवाइस से जोड़ने के कोड से डिवाइस जोड़ें को चुनें वाई-फ़ाई से डिवाइसों को जोड़ें पॉप-अप दिखेगा. अपने डिवाइस पर, इसका इस्तेमाल करके दूसरे डिवाइस से जोड़ें को चुनें दूसरे डिवाइस से जोड़ने के लिए कोड और दिए गए छह अंकों वाले कोड को नोट करें. जैसे ही आपका डिवाइस डिवाइस को वाई-फ़ाई से जोड़ें विंडो में, जोड़ें को चुनकर छह अंक डालें आपके डिवाइस पर दिखने वाला कोड.

      पिन कोड एंट्री के उदाहरण का स्क्रीनशॉट
      चौथी इमेज. छह अंकों वाले कोड की एंट्री का उदाहरण.
  4. डिवाइस को जोड़ लेने के बाद, अपने ऐप्लिकेशन को डिवाइस पर डिप्लॉय करने की कोशिश की जा सकती है.

    कोई दूसरा डिवाइस जोड़ने या अपने वर्कस्टेशन पर मौजूदा डिवाइस को भूलने के लिए, इस पर जाएं अपने डिवाइस पर वायरलेस डीबगिंग. जोड़े गए जोड़े गए डिवाइस में अपने वर्कस्टेशन के नाम पर टैप करें डिवाइस और हटाएं को चुनें.

  5. अगर आपको वायरलेस तरीके से डीबग करने की सुविधा को तुरंत चालू और बंद करना है, तो इनके लिए क्विक सेटिंग डेवलपर टाइल वायरलेस डीबगिंग, डेवलपर के लिए सेटिंग और टूल में मिलता है > क्विक सेटिंग डेवलपर टाइल.

    का स्क्रीनशॉट
            Google Pixel फ़ोन की क्विक सेटिंग डेवलपर टाइल.
    पांचवी इमेज. क्विक सेटिंग डेवलपर टाइल सेटिंग आपको वायरलेस तरीके से डीबग करने की सुविधा को तुरंत चालू और बंद कर सकता है.

कमांड लाइन का इस्तेमाल करके वाई-फ़ाई कनेक्शन

इसके अलावा, बिना Android Studio के कमांड लाइन का इस्तेमाल करके, अपने डिवाइस से कनेक्ट करने के लिए, यह तरीका अपनाएं:

  1. ऊपर बताए गए तरीके से, अपने डिवाइस पर डेवलपर के लिए सेटिंग और टूल चालू करें.

  2. जैसा कि पहले बताया गया है, अपने डिवाइस पर वायरलेस डीबगिंग को चालू करें.

  3. अपने वर्कस्टेशन पर, टर्मिनल विंडो खोलें और नेविगेट करें android_sdk/platform-tools.

  4. डिवाइस को इससे जोड़ें को चुनकर अपना आईपी पता, पोर्ट नंबर, और दूसरे डिवाइस से जोड़ने का कोड ढूंढें जोड़ने के लिए कोड. डिवाइस पर दिख रहे आईपी पते, पोर्ट नंबर, और दूसरे डिवाइस से जोड़ने के कोड को नोट करें डिवाइस.

  5. अपने वर्कस्टेशन के टर्मिनल पर, adb pair ipaddr:port चलाएं. आईपी पते का इस्तेमाल करना और पोर्ट नंबर डालें.

  6. जब कहा जाए, तब दूसरे डिवाइस से जोड़ने वाला कोड डालें, जैसा कि नीचे दिखाया गया है.

    का स्क्रीनशॉट
            कमांड लाइन पर जोड़ा जा रहा है.
    छठी इमेज. मैसेज दिखाता है कि आपका डिवाइस सही तरीके से काम कर रहा है जुड़ा हुआ.

वायरलेस कनेक्शन की समस्याओं को हल करें

अगर आपको वायरलेस तरीके से डिवाइस कनेक्ट करने में समस्याएं आ रही हैं, तो ये तरीके आज़माएं समस्या हल करने के तरीके बताएंगे.

देखें कि आपका वर्कस्टेशन और डिवाइस ज़रूरी शर्तें पूरी करते हैं या नहीं

देखें कि वर्कस्टेशन और डिवाइस, इस सेक्शन की शुरुआत में.

आम तौर पर होने वाली अन्य समस्याओं की जांच करना

वायरलेस डीबगिंग (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) या इससे पहले के वर्शन वाले डिवाइस से कनेक्ट करने के लिए, यूएसबी पर ये शुरुआती चरण अपनाएं:

  1. अपने Android डिवाइस और adb होस्ट कंप्यूटर को कनेक्ट करें एक सामान्य वाई-फ़ाई नेटवर्क से कनेक्ट करता है.
  2. ध्यान दें: ध्यान रखें कि सभी ऐक्सेस पॉइंट न हों उनके लिए सही हैं. आपको किसी ऐक्सेस पॉइंट का इस्तेमाल करना पड़ सकता है जिसकी फ़ायरवॉल को adb का समर्थन करने के लिए ठीक तरह से कॉन्फ़िगर किया गया है.

  3. यूएसबी केबल की मदद से, डिवाइस को होस्ट कंप्यूटर से कनेक्ट करें.
  4. पोर्ट 5555 पर टीसीपी/आईपी कनेक्शन सुनने के लिए टारगेट डिवाइस सेट करें:
    adb tcpip 5555
    
  5. टारगेट डिवाइस से यूएसबी केबल को डिसकनेक्ट करें.
  6. Android डिवाइस का आईपी पता ढूंढें. उदाहरण के लिए, Nexus डिवाइस पर, आपको Settings पर जाकर आईपी पता डालें > टैबलेट के बारे में जानकारी (या फ़ोन के बारे में) > स्थिति > आईपी पता.
  7. डिवाइस को उसके आईपी पते से कनेक्ट करें:
    adb connect device_ip_address:5555
    
  8. पुष्टि करें कि आपका होस्ट कंप्यूटर, टारगेट डिवाइस से कनेक्ट किया गया है:
    $ adb devices
    List of devices attached
    device_ip_address:5555 device
    

आपका डिवाइस अब 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 निर्देश जारी करते हैं. टारगेट तय करने के लिए, यह तरीका अपनाएं:

  1. टारगेट का सीरियल नंबर पाने के लिए, devices निर्देश का इस्तेमाल करें.
  2. सीरियल नंबर मिलने के बाद, सीरियल नंबर बताने के लिए, adb निर्देशों वाला -s विकल्प.
    1. अगर आपको बहुत सारे adb निर्देश देने हैं, तो सीरियल नंबर शामिल करने के लिए, $ANDROID_SERIAL एनवायरमेंट वैरिएबल आज़माएं.
    2. अगर आप दोनों का इस्तेमाल करते हैं, -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.

ज़्यादा जानकारी के लिए, इंटेंट आर्ग्युमेंट के बारे में खास जानकारी.

इसके विकल्प:

  • -D: डीबग करने की सुविधा चालू करें.
  • -W: लॉन्च पूरा होने तक इंतज़ार करें.
  • --start-profiler file: प्रोफ़ाइलर शुरू करें और इस पर परिणाम भेजें file.
  • -P file: --start-profiler की तरह, लेकिन ऐप्लिकेशन के कुछ समय से इस्तेमाल में न होने पर, प्रोफ़ाइलिंग बंद हो जाती है.
  • -R count: गतिविधि लॉन्च count दोहराएं बार. हर बार दोहराए जाने से पहले, टॉप गतिविधि खत्म हो जाएगी.
  • -S: गतिविधि शुरू करने से पहले, टारगेट किए गए ऐप्लिकेशन को ज़बरदस्ती रोकें.
  • --opengl-trace: OpenGL फ़ंक्शन की ट्रेसिंग चालू करें.
  • --user user_id | current: बताएं कि किस उपयोगकर्ता के तौर पर चलाना है; अगर नहीं तय करें, फिर वर्तमान उपयोगकर्ता के रूप में चलाएं.
startservice [options] intent इसके ज़रिए तय किया गया Service शुरू करें intent.

ज़्यादा जानकारी के लिए, इंटेंट आर्ग्युमेंट के बारे में खास जानकारी.

इसके विकल्प:

  • --user user_id | current: बताएं कि किस उपयोगकर्ता के तौर पर चलाना है. अगर नहीं तय करें, फिर वर्तमान उपयोगकर्ता के रूप में चलाएं.
force-stop package package से जुड़ी हर चीज़ को ज़बरदस्ती बंद करें.
kill [options] package package से जुड़ी सभी प्रोसेस बंद कर दें. इस निर्देश से सिर्फ़ ऐसी प्रक्रियाएं जो उपयोगकर्ता को नुकसान पहुंचा सकती हैं और जिनका असर उपयोगकर्ता पर अनुभव.

इसके विकल्प:

  • --user user_id | all | current: बताएं कि किस उपयोगकर्ता को बंद करना है. अगर बताया नहीं गया है, तो सभी उपयोगकर्ताओं को खत्म करें प्रोसेस.
kill-all सभी बैकग्राउंड प्रक्रियाएं खत्म करें.
broadcast [options] intent ब्रॉडकास्ट इंटेंट जारी करें.

ज़्यादा जानकारी के लिए, इंटेंट आर्ग्युमेंट के बारे में खास जानकारी.

इसके विकल्प:

  • [--user user_id | all | current]: बताएं कि किस उपयोगकर्ता को भेजना है. अगर नहीं तय करें, फिर सभी उपयोगकर्ताओं को भेजें.
instrument [options] component इसके साथ मॉनिटरिंग शुरू करें: Instrumentation इंस्टेंस. आम तौर पर, टारगेट component test_package/runner_class फ़ॉर्मैट में है.

इसके विकल्प:

  • -r: अधूरे नतीजे प्रिंट करें (अन्यथा डिकोड report_key_streamresult). इसके साथ इस्तेमाल करें [-e perf true] की मदद से परफ़ॉर्मेंस मेज़रमेंट के लिए रॉ आउटपुट जनरेट किया जा सकता है.
  • -e name value: तर्क name सेट करें value के लिए. टेस्ट रनर के लिए, -e testrunner_flag value[,value...] का सामान्य फ़ॉर्म है.
  • -p file: file में प्रोफ़ाइलिंग डेटा लिखें.
  • -w: लौटने से पहले इंस्ट्रुमेंटेशन पूरा होने का इंतज़ार करें. इसके लिए ज़रूरी है टेस्ट रनर.
  • --no-window-animation: दौड़ने के दौरान विंडो ऐनिमेशन बंद करें.
  • --user user_id | current: बताएं कि किस उपयोगकर्ता इंस्ट्रुमेंटेशन को चलाना है. अगर इसके बारे में तय नहीं किया गया है, तो मौजूदा उपयोगकर्ता के तौर पर चलाएं.
profile start process file process पर प्रोफ़ाइलर शुरू करें, file पर परिणाम लिखें.
profile stop process process पर प्रोफ़ाइलर बंद करें.
dumpheap [options] process file process के ढेर को छोड़ें, file को लिखें.

इसके विकल्प:

  • --user [user_id | current]: प्रोसेस का नाम देते समय, डंप करने की प्रोसेस का उपयोगकर्ता तय करें. अगर इसके बारे में नहीं बताया जाता है, तो मौजूदा उपयोगकर्ता का इस्तेमाल किया जाता है.
  • -b [| png | jpg | webp]: ग्राफ़िक मेमोरी से बिटमैप डंप करें. वैकल्पिक रूप से डंप करने का फ़ॉर्मैट तय करें (डिफ़ॉल्ट रूप से PNG).
  • -n: मैनेज किए गए हीप के बजाय, नेटिव हीप को डंप करें.
set-debug-app [options] package package ऐप्लिकेशन को डीबग करने के लिए सेट करें.

इसके विकल्प:

  • -w: ऐप्लिकेशन के शुरू होने पर डीबगर का इंतज़ार करें.
  • --persistent: इस वैल्यू को बनाए रखें.
clear-debug-app set-debug-app की मदद से डीबग करने के लिए, पैकेज का पिछला सेट हटाएं.
monitor [options] क्रैश या एएनआर वाली गड़बड़ियों को मॉनिटर करना शुरू करें.

इसके विकल्प:

  • --gdb: क्रैश/एएनआर पर, दिए गए पोर्ट पर gdbserv शुरू करें.
screen-compat {on | off} package कंट्रोल स्क्रीन package का कम्पैटबिलटी मोड.
display-size [reset | widthxheight] डिवाइस के डिसप्ले का साइज़ बदलें. यह निर्देश आपके ऐप्लिकेशन की छोटे साइज़ की नकल करके, अलग-अलग स्क्रीन साइज़ पर उसकी जांच करने में मदद करता है स्क्रीन रिज़ॉल्यूशन के लिए बड़ी स्क्रीन का इस्तेमाल करें.

उदाहरण:
am display-size 1280x800

display-density dpi डिवाइस की डिसप्ले सघनता बदलें. यह निर्देश, हाई डेंसिटी की नकल करके, अलग-अलग स्क्रीन डेंसिटी पर आपके ऐप्लिकेशन की जांच करने में मदद करता है कम डेंसिटी वाली स्क्रीन का इस्तेमाल करते हुए स्क्रीन एनवायरमेंट.

उदाहरण:
am display-density 480

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 का टेक्स्ट है.

विकल्प:

  • -f: जुड़ी हुई फ़ाइल देखें.
  • -d: सिर्फ़ बंद किए गए पैकेज देखने के लिए फ़िल्टर करें.
  • -e: फ़िल्टर करके, सिर्फ़ चालू किए गए पैकेज देखें.
  • -s: सिर्फ़ सिस्टम पैकेज दिखाने के लिए फ़िल्टर करें.
  • -3: सिर्फ़ तीसरे पक्ष के पैकेज दिखाने के लिए फ़िल्टर करें.
  • -i: पैकेज के इंस्टॉलर देखें.
  • -u: अनइंस्टॉल किए गए पैकेज शामिल करें.
  • --user user_id: क्वेरी करने के लिए उपयोगकर्ता स्पेस.
list permission-groups अनुमति वाले सभी ग्रुप की जानकारी प्रिंट करें.
list permissions [options] group सभी ज़रूरी अनुमतियों को प्रिंट करें. हालांकि, ऐसा करना ज़रूरी नहीं है group में मौजूद हैं.

विकल्प:

  • -g: ग्रुप के हिसाब से व्यवस्थित करें.
  • -f: सभी जानकारी प्रिंट करें.
  • -s: कम शब्दों में जवाब.
  • -d: सिर्फ़ खतरनाक अनुमतियों की सूची बनाएं.
  • -u: सिर्फ़ उन अनुमतियों की सूची बनाएं जो उपयोगकर्ताओं को दिखेंगी.
list instrumentation [options] टेस्ट के सभी पैकेज की सूची बनाएं.

विकल्प:

  • -f: परीक्षण पैकेज के लिए APK फ़ाइल की सूची बनाएं.
  • target_package: सिर्फ़ इस ऐप्लिकेशन के लिए टेस्ट पैकेज की सूची बनाएं.
list features सिस्टम की सभी सुविधाएं प्रिंट करें.
list libraries मौजूदा डिवाइस के साथ काम करने वाली सभी लाइब्रेरी प्रिंट करें.
list users सिस्टम पर मौजूद सभी उपयोगकर्ताओं की जानकारी प्रिंट करें.
path package दिए गए package के APK का पाथ प्रिंट करें.
install [options] path सिस्टम पर path में तय किया गया पैकेज इंस्टॉल करें.

विकल्प:

  • -r: किसी मौजूदा ऐप्लिकेशन का डेटा बनाए रखते हुए, उसे फिर से इंस्टॉल करें.
  • -t: यह नीति टेस्ट APKs इंस्टॉल करने की अनुमति देती है. Gradle, जांच वाला APK जनरेट करता है, जब आपने सिर्फ़ अपने ऐप्लिकेशन को चलाया या डीबग किया है या Android Studio बिल्ड > बिल्ड APK निर्देश पर क्लिक करने का सुझाव देते हैं. अगर APK को डेवलपर झलक SDK टूल का इस्तेमाल करके बनाया गया है, तो आपको -t विकल्प अगर आप टेस्ट APK इंस्टॉल कर रहे हैं, तो install निर्देश का इस्तेमाल करें.
  • -i installer_package_name: इंस्टॉलर पैकेज का नाम बताएं.
  • --install-location location: इंस्टॉल करने की जगह सेट करें इनमें से किसी एक वैल्यू का इस्तेमाल करें:
    • 0: इंस्टॉल करने की डिफ़ॉल्ट जगह का इस्तेमाल करें.
    • 1: डिवाइस की मेमोरी में इंस्टॉल करें.
    • 2: बाहरी मीडिया पर इंस्टॉल करें.
  • -f: आंतरिक सिस्टम मेमोरी पर पैकेज इंस्टॉल करें.
  • -d: वर्शन कोड को डाउनग्रेड करने की अनुमति दें.
  • -g: ऐप्लिकेशन मेनिफ़ेस्ट में दी गई सभी अनुमतियां दें.
  • --fastdeploy: इंस्टॉल किए गए पैकेज को तुरंत अपडेट करने के लिए, इसके कुछ हिस्से अपडेट करें बदल गया है.
  • --incremental: ऐप्लिकेशन लॉन्च करने के लिए APK को पर्याप्त रूप से इंस्टॉल करता है बचे हुए डेटा को बैकग्राउंड में स्ट्रीम करते समय. इस सुविधा का इस्तेमाल करने के लिए, आपको APK के लिए, APK सिग्नेचर स्कीम v4 फ़ाइल, और इस फ़ाइल को उसी डायरेक्ट्री में रखें जिसमें APK. यह सुविधा सिर्फ़ इन पर काम करती है खास डिवाइस. यह विकल्प, adb को इस सुविधा का इस्तेमाल करने के लिए मजबूर करता है. अगर ऐसा नहीं है, तो यह विकल्प काम नहीं करेगा पर क्लिक किया जा सकता है, जिसमें इसके सफल न होने की वजह के बारे में पूरी जानकारी दी गई है. --wait विकल्प को इसमें जोड़ें APK का ऐक्सेस देने से पहले, APK के पूरी तरह से इंस्टॉल होने तक इंतज़ार करें.

    --no-incremental, adb को इस सुविधा का इस्तेमाल करने से रोकता है.

uninstall [options] package सिस्टम से पैकेज हटाता है.

विकल्प:

  • -k: पैकेज हटाने के बाद, डेटा और कैश डायरेक्ट्री को सेव रखें.
  • --user user_id: इस नीति से, उस उपयोगकर्ता के बारे में जानकारी मिलती है जिसके लिए पैकेज हटाया गया है.
  • --versionCode version_code: यह ऐप्लिकेशन सिर्फ़ तब अनइंस्टॉल होता है, जब ऐप्लिकेशन में दिया गया वर्शन कोड मौजूद हो.
clear package किसी पैकेज से जुड़ा सारा डेटा मिटाएं.
enable package_or_component दिए गए पैकेज या कॉम्पोनेंट को चालू करें ("पैकेज/क्लास" के तौर पर लिखा जाता है).
disable package_or_component दिए गए पैकेज या कॉम्पोनेंट को बंद करें ("पैकेज/क्लास" के तौर पर लिखा जाता है).
disable-user [options] package_or_component

विकल्प:

  • --user user_id: बंद किया जाने वाला उपयोगकर्ता.
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 डिफ़ॉल्ट तौर पर, इंस्टॉल करने की जगह बदलें. जगह की जानकारी:
  • 0: अपने आप: सिस्टम को सबसे अच्छी जगह तय करने दें.
  • 1: डिवाइस के स्टोरेज में: डिवाइस के स्टोरेज में इंस्टॉल करें.
  • 2: बाहरी मीडिया: बाहरी मीडिया पर इंस्टॉल करें.

ध्यान दें: यह सिर्फ़ डीबग करने के लिए है. इसका इस्तेमाल करने से ये वजहें हो सकती हैं और अन्य अनचाहे व्यवहार को रोकने के लिए होता है.

get-install-location यह फ़ंक्शन इंस्टॉल करने की मौजूदा जगह की जानकारी दिखाता है. रिटर्न वैल्यू:
  • 0 [auto]: सिस्टम को सबसे सही जगह तय करने दें
  • 1 [internal]: डिवाइस के मोबाइल स्टोरेज से इंस्टॉल करें
  • 2 [external]: बाहरी मीडिया पर इंस्टॉल करें
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 के लिए या सभी के लिए डोमेन की पुष्टि की स्थिति प्रिंट करें पैकेज डिलीवर करें. राज्य के कोड इस तरह परिभाषित किए गए हैं:

  • none: इस डोमेन के लिए कुछ भी रिकॉर्ड नहीं किया गया है
  • verified: डोमेन की पुष्टि हो गई है
  • approved: बलपूर्वक स्वीकृत, आमतौर पर शेल के ज़रिए
  • denied: बलपूर्वक अस्वीकार किया गया, आम तौर पर शेल के ज़रिए
  • migrated: लेगसी रिस्पॉन्स की मदद से पहचान की पुष्टि को सुरक्षित रखा गया
  • restored: उपयोगकर्ता डेटा को पहले जैसा करके सुरक्षित रखा गया
  • legacy_failure: लेगसी पुष्टि करने वाले सिस्टम ने अस्वीकार किया. इसकी वजह पता नहीं है
  • system_configured: डिवाइस कॉन्फ़िगरेशन से अपने-आप मंज़ूरी मिली
  • >= 1024: कस्टम गड़बड़ी कोड, जो खास तौर पर डिवाइस की पुष्टि करने वाले डिवाइस पर लागू होता है

इसके विकल्प:

  • --user user_id: उपयोगकर्ता के चुने गए विकल्प शामिल करें. सभी डोमेन शामिल करें, का इस्तेमाल करें.
reset-app-links [options] [package]

दिए गए पैकेज या सभी के लिए डोमेन की पुष्टि की स्थिति रीसेट करें पैकेज डिलीवर करें.

  • package: रीसेट किया जाने वाला पैकेज या "सभी" सभी पैकेज रीसेट करने के लिए

इसके विकल्प:

  • --user user_id: उपयोगकर्ता के चुने गए विकल्प शामिल करें. सभी डोमेन शामिल करें, का इस्तेमाल करें.
verify-app-links [--re-verify] [package]

दिए गए package के लिए या सभी के लिए, पुष्टि करने का अनुरोध ब्रॉडकास्ट करें पैकेज डिलीवर करें. यह ईमेल सिर्फ़ तब भेजा जाता है, जब पैकेज में पहले से शामिल किया गया हो जवाब रिकॉर्ड नहीं किया गया.

  • --re-verify: भले ही पैकेज ने जवाब रिकॉर्ड किया हो, फिर भी भेजें
set-app-links [--package package] state domains

किसी पैकेज के लिए डोमेन की स्थिति को मैन्युअल तरीके से सेट करें. डोमेन यह काम करने के लिए, पैकेज में अपने-आप पुष्टि होने की सुविधा का इस्तेमाल करें. यह निर्देश उन डोमेन के लिए किसी गड़बड़ी की रिपोर्ट नहीं करेगा जिन्हें लागू नहीं किया जा सका.

  • --package package: सेट किया जाने वाला पैकेज या "सभी" सभी पैकेज सेट करने के लिए
  • state: वह कोड जिस पर डोमेन सेट किए जाने हैं. मान्य वैल्यू ये हैं:
    • STATE_NO_RESPONSE (0): इस तरह रीसेट करें कि कोई जवाब रिकॉर्ड न किया गया हो.
    • STATE_SUCCESS (1): डोमेन के ज़रिए 'पुष्टि हुई' के तौर पर काम करें पुष्टि करने वाला एजेंट. ध्यान दें कि डोमेन की पुष्टि करने वाला एजेंट, ओवरराइड करें.
    • STATE_APPROVED (2): डोमेन को हमेशा मंज़ूर किए गए तरीके से ही इस्तेमाल करें, ताकि डोमेन की पुष्टि करने वाले एजेंट को उसे बदलने से रोकना.
    • STATE_DENIED (3): डोमेन को रोकने से, डोमेन को हमेशा 'अस्वीकार किया गया' के तौर पर इस्तेमाल करें पुष्टि करने वाला एजेंट बदल सकता है.
  • domains: बदलाव किए जाने वाले डोमेन की स्पेस से अलग की गई सूची या "सभी" से हर डोमेन को बदलने के लिए करते हैं.
set-app-links-user-selection --user user_id [--package package] enabled domains

पैकेज के लिए, होस्ट उपयोगकर्ता को चुनने की स्थिति को मैन्युअल तरीके से सेट करें. डोमेन इसके काम करने के लिए, पैकेज की जानकारी का एलान करना ज़रूरी है. इस निर्देश से उन डोमेन की गड़बड़ी की रिपोर्ट करें जिन्हें लागू नहीं किया जा सका.

  • --user user_id: वह उपयोगकर्ता जिसके लिए चुने गए विकल्पों को बदलना है
  • --package package: सेट किया जाने वाला पैकेज
  • enabled: डोमेन को अनुमति देनी है या नहीं
  • domains: बदलाव किए जाने वाले डोमेन की स्पेस से अलग की गई सूची या "सभी" से प्रत्येक डोमेन बदलें
set-app-links-user-selection --user user_id [--package package] enabled domains

पैकेज के लिए, होस्ट उपयोगकर्ता को चुनने की स्थिति को मैन्युअल तरीके से सेट करें. डोमेन इसके काम करने के लिए, पैकेज की जानकारी का एलान करना ज़रूरी है. इस निर्देश से उन डोमेन की गड़बड़ी की रिपोर्ट करें जिन्हें लागू नहीं किया जा सका.

  • --user user_id: वह उपयोगकर्ता जिसके लिए चुने गए विकल्पों को बदलना है
  • --package package: सेट किया जाने वाला पैकेज
  • enabled: डोमेन को अनुमति देनी है या नहीं
  • domains: बदलाव किए जाने वाले डोमेन की स्पेस से अलग की गई सूची या "सभी" से प्रत्येक डोमेन बदलें
set-app-links-allowed --user user_id [--package package] allowed

किसी पैकेज के लिए, लिंक-हैंडलिंग की अपने-आप पुष्टि होने वाली सेटिंग को टॉगल करें.

  • --user user_id: वह उपयोगकर्ता जिसके लिए चुने गए विकल्पों को बदलना है
  • --package package: सेट किया जाने वाला पैकेज या "सभी" सभी को सेट करने के लिए पैकेज; कोई पैकेज नहीं बताए जाने पर पैकेज रीसेट हो जाएंगे
  • allowed: यह पैकेज को अपने-आप पुष्टि किए गए लिंक खोलने की अनुमति देता है, बंद करने के लिए गलत है
get-app-link-owners --user user_id [--package package] domains

किसी उपयोगकर्ता के लिए, कम से ज़्यादा प्राथमिकता के क्रम में किसी खास डोमेन के मालिकों की जानकारी प्रिंट करें.

  • --user user_id: क्वेरी करने के लिए उपयोगकर्ता
  • --package package: विकल्प के तौर पर, सभी वेब डोमेन के लिए प्रिंट करना भी ज़रूरी है किसी पैकेज या "सभी" के ज़रिए एलान किया गया हो सभी पैकेज प्रिंट करने के लिए
  • domains: क्वेरी करने के लिए स्पेस से अलग की गई डोमेन की सूची

डिवाइस नीति मैनेजर (dpm) को कॉल करें

अपने डिवाइस मैनेजमेंट ऐप्लिकेशन डेवलप करने और उनकी जांच करने में मदद पाने के लिए, डिवाइस नीति मैनेजर (dpm) टूल को निर्देश दें. चालू चैट को कंट्रोल करने के लिए इस टूल का इस्तेमाल करें एडमिन ऐप्लिकेशन के लिए या डिवाइस पर किसी नीति की स्थिति का डेटा बदलने के लिए.

शेल में होने पर, dpmसिंटैक्स यह होता है:

dpm command

आपके पास सीधे adb से भी डिवाइस नीति मैनेजर का निर्देश देने का विकल्प है रिमोट शेल डाले बिना:

adb shell dpm command

तीसरी टेबल. डिवाइस नीति मैनेजर के लिए उपलब्ध निर्देश

निर्देश ब्यौरा
set-active-admin [options] component component को सक्रिय एडमिन के तौर पर सेट करता है.

इसके विकल्प:

  • --user user_id: टारगेट किए गए उपयोगकर्ता की जानकारी दें. यहाँ पर आपको मौजूदा उपयोगकर्ता को चुनने के लिए, --user current.
set-profile-owner [options] component किसी मौजूदा उपयोगकर्ता के लिए, component को प्रोफ़ाइल के मालिक के तौर पर और उसके पैकेज को सक्रिय एडमिन के तौर पर सेट करें.

इसके विकल्प:

  • --user user_id: टारगेट किए गए उपयोगकर्ता की जानकारी दें. आप मौजूदा उपयोगकर्ता को चुनने के लिए, --user current को भी पास करें.
  • --name name: संगठन का ऐसा नाम बताएं जिसे कोई भी व्यक्ति आसानी से पढ़ सके.
set-device-owner [options] component component को सक्रिय एडमिन के तौर पर और उसके पैकेज को डिवाइस के मालिक के तौर पर सेट करें.

इसके विकल्प:

  • --user user_id: टारगेट किए गए उपयोगकर्ता की जानकारी दें. यहाँ पर आपको मौजूदा उपयोगकर्ता को चुनने के लिए, --user current.
  • --name name: संगठन का ऐसा नाम बताएं जिसे कोई भी व्यक्ति आसानी से पढ़ सके.
remove-active-admin [options] component ऐक्टिव एडमिन को बंद करें. ऐप्लिकेशन को यह एलान करना होगा android:testOnly मेनिफ़ेस्ट फ़ाइल में मौजूद है. इस निर्देश से डिवाइस और प्रोफ़ाइल के मालिकों की जानकारी भी हट जाती है.

इसके विकल्प:

  • --user user_id: टारगेट किए गए उपयोगकर्ता की जानकारी दें. यहाँ पर आपको मौजूदा उपयोगकर्ता को चुनने के लिए, --user current.
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 का मैन्युअल पेज देखें.