खोज…


परिचय

adb shell एक लक्ष्य डिवाइस या एमुलेटर में एक लिनक्स adb shell खोलता है। यह adb माध्यम से Android डिवाइस को नियंत्रित करने का सबसे शक्तिशाली और बहुमुखी तरीका है।

इस विषय को एडीबी (एंड्रॉइड डिबग ब्रिज) से विभाजित किया गया था, उदाहरणों की सीमा तक पहुंचने के कारण, जिनमें से कई adb shell कमांड शामिल थे।

वाक्य - विन्यास

  • adb खोल [-E से बच] [-n] [-Tt] [-x] [कमांड]

पैरामीटर

पैरामीटर विवरण
-इ बच चरित्र, या "कोई नहीं" चुनें; डिफ़ॉल्ट '~'
-n स्टड से पढ़ा नहीं है
-टी PTY आवंटन को अक्षम करें
आयकर बल PTY आवंटन
-एक्स दूरस्थ निकास कोड और stdout / stderr जुदाई अक्षम करें

ADB के माध्यम से Android डिवाइस पर पाठ, कुंजी दबाए गए और स्पर्श घटनाओं को भेजें

पाठ को फ़ोकस के साथ दृश्य में सम्मिलित करने के लिए निम्न कमांड निष्पादित करें (यदि यह पाठ इनपुट का समर्थन करता है)

6.0

एसडीके 23+ पर टेक्स्ट भेजें

adb shell "input keyboard text 'Paste text on Android Device'"

यदि पहले से ही adb माध्यम से आपके डिवाइस से जुड़ा है:

input text 'Paste text on Android Device'
6.0

एसडीके 23 से पहले पाठ भेजें

adb shell "input keyboard text 'Paste%stext%son%sAndroid%sDevice'"

रिक्त स्थान इनपुट के रूप में स्वीकार नहीं किए जाते हैं, उन्हें% s से बदल दें।

घटनाओं को भेजें

हार्डवेयर पॉवर की को दबाने के लिए अनुकरण करने के लिए

adb shell input keyevent 26

या वैकल्पिक रूप से

adb shell input keyevent POWER

यहां तक कि अगर आपके पास एक हार्डवेयर कुंजी नहीं है, तो भी आप बराबर क्रिया करने के लिए keyevent का उपयोग कर सकते हैं

adb shell input keyevent CAMERA

इनपुट के रूप में टच इवेंट भेजें

adb shell input tap Xpoint Ypoint

इनपुट के रूप में स्वाइप इवेंट भेजें

adb shell input swipe Xpoint1 Ypoint1 Xpoint2 Ypoint2 [DURATION*]

* DURATION वैकल्पिक, डिफ़ॉल्ट = 300ms है। स्रोत

डेवलपर विकल्प में पॉइंटर स्थान को सक्षम करके X और Y अंक प्राप्त करें।

एडीबी नमूना खोल स्क्रिप्ट

उबंटू में एक स्क्रिप्ट चलाने के लिए, script.sh बनाएँ फ़ाइल पर राइट क्लिक करें और पढ़ने / लिखने की अनुमति जोड़ें और प्रोग्राम के रूप में फ़ाइल निष्पादित करने की अनुमति दें

टर्मिनल एमुलेटर खोलें और कमांड चलाएँ ।/cript.sh

Script.sh

 for (( c=1; c<=5; c++ ))
    do  
       adb shell input tap X Y
       echo "Clicked $c times"
       sleep 5s
    done

घटना संख्याओं की एक व्यापक सूची के लिए

सूची पैकेज

सभी पैकेजों को प्रिंट करता है, वैकल्पिक रूप से केवल जिनके पैकेज का नाम <FILTER> में पाठ होता है।

adb shell pm list packages [options] <FILTER>

All <FILTER>

adb shell pm list packages

गुण:

-f उनकी संबंधित फाइल देखने के लिए।

-i संकुल के लिए इंस्टॉलर देखें।

-u भी स्थापना रद्द संकुल शामिल करने के लिए।

-u इसके अलावा अनइंस्टॉल किए गए पैकेज भी शामिल हैं।

विशेषताएँ जो फ़िल्टर करती हैं:

विकलांग पैकेज के लिए -d

-e सक्षम संकुल के लिए।

-s पैकेज के लिए।

-3 थर्ड पार्टी पैकेज के लिए।

--user <USER_ID> क्वेरी के लिए विशिष्ट उपयोगकर्ता स्थान के लिए।

एपीआई 23+ अनुमतियों को देना और रद्द करना

एक वन-लाइनर जो कमजोर अनुमतियों को देने या रद्द करने में मदद करता है।

  • देने

    adb shell pm grant <sample.package.id> android.permission.<PERMISSION_NAME>
    
  • पलट

    adb shell pm revoke <sample.package.id> android.permission.<PERMISSION_NAME>
    
  • स्थापना (-g) पर एक बार में सभी रन-टाइम अनुमतियाँ देना

    adb install -g /path/to/sample_package.apk
    

एप्लिकेशन डेटा प्रिंट करें

यह आदेश सभी प्रासंगिक एप्लिकेशन डेटा प्रिंट करता है:

  • संस्करण कोड
  • संस्करण का नाम
  • अनुमतियाँ (Android API 23+)
  • आदि..
adb shell dumpsys package <your.package.id>

प्रदर्शन रिकॉर्डिंग

4.4

Android 4.4 (API स्तर 19) और उससे अधिक चलने वाले उपकरणों के प्रदर्शन की रिकॉर्डिंग:

adb shell screenrecord [options] <filename>
adb shell screenrecord /sdcard/demo.mp4

(रिकॉर्डिंग रोकने के लिए Ctrl-C दबाएं)

फ़ाइल को डिवाइस से डाउनलोड करें:

adb pull /sdcard/demo.mp4

नोट: स्क्रीन रिकॉर्डिंग को Ctrl-C दबाकर बंद कर दें, अन्यथा रिकॉर्डिंग तीन मिनट या समय --time-limit द्वारा निर्धारित समय सीमा पर स्वचालित रूप से बंद हो जाती --time-limit

adb shell screenrecord --size <WIDTHxHEIGHT>

वीडियो का आकार सेट करता है: 1280x720। डिफ़ॉल्ट मान डिवाइस का मूल डिस्प्ले रिज़ॉल्यूशन (यदि समर्थित है), 1280x720 है यदि नहीं। सर्वोत्तम परिणामों के लिए, अपने डिवाइस के उन्नत वीडियो कोडिंग (AVC) एनकोडर द्वारा समर्थित आकार का उपयोग करें।


adb shell screenrecord --bit-rate <RATE>

वीडियो के लिए वीडियो बिट दर, प्रति सेकंड मेगाबिट्स में सेट करता है। डिफ़ॉल्ट मान 4Mbps है। आप वीडियो की गुणवत्ता में सुधार करने के लिए बिट दर में वृद्धि कर सकते हैं, लेकिन ऐसा करने से बड़ी फिल्म फ़ाइलों का परिणाम मिलता है। निम्न उदाहरण 5Mbps करने के लिए रिकॉर्डिंग बिट दर सेट करता है:

adb shell screenrecord --bit-rate 5000000 /sdcard/demo.mp4

adb shell screenrecord --time-limit <TIME>

सेकंड में अधिकतम रिकॉर्डिंग समय निर्धारित करता है। डिफ़ॉल्ट और अधिकतम मान 180 (3 मिनट) है।


adb shell screenrecord --rotate

90 डिग्री आउटपुट को घुमाता है। यह सुविधा प्रायोगिक है।


adb shell screenrecord --verbose

कमांड-लाइन स्क्रीन पर लॉग जानकारी प्रदर्शित करता है। यदि आप इस विकल्प को सेट नहीं करते हैं, तो उपयोगिता रन करते समय किसी भी जानकारी को प्रदर्शित नहीं करती है।

नोट: यह कुछ उपकरणों पर काम नहीं कर सकता है।

4.4

स्क्रीन रिकॉर्डिंग कमांड 4.4 के पूर्व संस्करणों के साथ संगत नहीं है

स्क्रीनरेकॉर्ड कमांड एंड्रॉइड 4.4 (एपीआई स्तर 19) और उच्चतर पर चलने वाले उपकरणों के प्रदर्शन को रिकॉर्ड करने के लिए एक शेल उपयोगिता है। उपयोगिता एक MPEG-4 फ़ाइल के लिए स्क्रीन गतिविधि रिकॉर्ड करती है।

Chmod कमांड का उपयोग करके फ़ाइल अनुमतियां बदलना

ध्यान दें, कि फाइल प्रमिशन बदलने के लिए, आपके डिवाइस को रूट करने की आवश्यकता है, su बाइनरी फैक्टरी शिप डिवाइस के साथ नहीं आती है!

कन्वेंशन:

adb shell su -c "chmod <numeric-permisson> <file>"

उपयोगकर्ता, समूह और विश्व वर्गों से संख्यात्मक अनुमति।

उदाहरण के लिए, यदि आप फ़ाइल को पठनीय, लिखने योग्य और सभी के द्वारा निष्पादन योग्य बदलना चाहते हैं, तो यह आपकी आज्ञा होगी:

adb shell su -c "chmod 777 <file-path>"

या

adb shell su -c "chmod 000 <file-path>"

यदि आप इसे करने के लिए किसी भी अनुमति से इनकार करने का इरादा रखते हैं।

1 अंक- उपयोगकर्ता की अनुमति देता है, दूसरा अंक - समूह की अनुमति को निर्दिष्ट करता है, तीसरा अंक - दुनिया (अन्य) की अनुमति को निर्दिष्ट करता है।

पहुँच अनुमतियाँ:

--- :   binary value:   000,  octal value: 0 (none)
--x :   binary value:   001,  octal value: 1 (execute)
-w- :   binary value:   010,  octal value: 2 (write)
-wx :   binary value:   011,  octal value: 3 (write, execute)
r-- :   binary value:   100,  octal value: 4 (read)
r-x :   binary value:   101,  octal value: 5 (read, execute)
rw- :   binary value:   110,  octal value: 6 (read, write)
rwx :   binary value:   111,  octal value: 7 (read, write, execute)

सेट तिथि / समय अदब के माध्यम से

6.0

डिफ़ॉल्ट SET प्रारूप MMDDhhmm[[CC]YY][.ss] , यह (2 अंक प्रत्येक)

उदाहरण के लिए, वर्तमान वर्ष को बदले बिना, 17 जुलाई को सुबह 10:10 बजे सेट करने के लिए, टाइप करें:

adb shell 'date 07171010.00'

टिप 1: तारीख परिवर्तन तुरंत परिलक्षित नहीं होगा, और नोटिक परिवर्तन केवल सिस्टम क्लॉक के अगले मिनट तक आगे बढ़ने के बाद होगा।
आप अपने कॉल पर TIME_SET आशय प्रसारण को संलग्न करके अपडेट को बाध्य कर सकते हैं, जैसे:

adb shell 'date 07171010.00 ; am broadcast -a android.intent.action.TIME_SET'

टिप 2: अपने स्थानीय मशीन के साथ एंड्रॉइड की घड़ी को सिंक्रनाइज़ करने के लिए:

लिनक्स:

adb shell date `date +%m%d%H%M%G.%S`

विंडोज (पॉवरशेल):

$currentDate = Get-Date -Format "MMddHHmmyyyy.ss" # Android's preferred format
adb shell "date $currentDate"

दोनों युक्तियां एक साथ:

adb shell 'date `date +%m%d%H%M%G.%S` ; am broadcast -a android.intent.action.TIME_SET'
6.0

डिफ़ॉल्ट सेट प्रारूप 'YYYYMMDD.HHms' है

adb shell 'date -s 20160117.095930'

युक्ति: अपने स्थानीय (लिनक्स आधारित) मशीन के साथ एंड्रॉइड की घड़ी को सिंक्रनाइज़ करने के लिए:

adb shell date -s `date +%G%m%d.%H%M%S`

डेवलपर विकल्प खोलें

adb shell am start -n com.android.settings/.DevelopmentSettings

Developer Options अनुभाग में आपके डिवाइस / एमुलेटर को नेविगेट करेगा।

"बूट कम्प्लीट" प्रसारण का निर्माण करना

यह उन ऐप्स के लिए प्रासंगिक है जो एक BootListener लागू करते हैं। अपने ऐप को मारकर अपने ऐप को टेस्ट करें और फिर टेस्ट करें:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n your.app/your.app.BootListener

(उचित मूल्यों के साथ your.package/your.app.BootListener बदलें)।

बाह्य / द्वितीयक संग्रहण सामग्री देखें

सामग्री देखें:

adb shell ls \$EXTERNAL_STORAGE
adb shell ls \$SECONDARY_STORAGE

पथ देखें:

adb shell echo \$EXTERNAL_STORAGE
adb shell echo \$SECONDARY_STORAGE

एक Android डिवाइस के अंदर एक प्रक्रिया को मार डालो

कभी-कभी एंड्रॉइड का लॉगकैट आपके द्वारा नहीं, किसी भी प्रक्रिया से आने वाली त्रुटियों के साथ बैटरी खत्म करने या सिर्फ आपके कोड को डीबग करना कठिन बना देता है।

डिवाइस को पुनरारंभ किए बिना समस्या को ठीक करने का एक सुविधाजनक तरीका समस्या का कारण बनने वाली प्रक्रिया का पता लगाना और मारना है।

लोगकट से

03-10 11:41:40.010 1550-1627/? E/SomeProcess: ....

प्रक्रिया संख्या पर ध्यान दें: 1550

अब हम एक खोल खोल सकते हैं और प्रक्रिया को मार सकते हैं। ध्यान दें कि हम root प्रक्रिया को नहीं मार सकते हैं।

adb shell

शेल के अंदर हम उपयोग करने की प्रक्रिया के बारे में अधिक जांच कर सकते हैं

ps -x | grep 1550

और इसे मार डालो अगर हम चाहते हैं:

kill -9 1550


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow