Android
ADB (Android डिबग ब्रिज)
खोज…
परिचय
एडीबी (एंड्रॉइड डिबग ब्रिज) एक कमांड लाइन उपकरण है जिसका उपयोग एमुलेटर इंस्टेंस या कनेक्टेड एंड्रॉइड डिवाइस के साथ संवाद करने के लिए किया जाता है।
इस विषय का एक बड़ा हिस्सा अदब के खोल से अलग हो गया था
टिप्पणियों
शेल शेल में स्थानांतरित उदाहरणों की सूची:
- एपीआई 23+ की अनुमति देना और रद्द करना
- ADB के माध्यम से Android डिवाइस पर पाठ, कुंजी दबाया और स्पर्श घटनाओं को भेजें
- सूची पैकेज
- प्रदर्शन रिकॉर्डिंग
- डेवलपर विकल्प खोलें
- सेट तिथि / समय अदब के माध्यम से
- Chmod कमांड का उपयोग करके फ़ाइल अनुमतियां बदलना
- "बूट कम्प्लीट" प्रसारण का निर्माण करना
- एप्लिकेशन डेटा प्रिंट करें
- बाह्य / द्वितीयक संग्रहण सामग्री देखें
- http://stackoverflow.com/documentation/android/9408/adb-shell/29140/adb-shell
- एक Android डिवाइस के अंदर एक प्रक्रिया को मार डालो
कनेक्ट किए गए उपकरणों की वर्बोज़ सूची प्रिंट करें
से कनेक्ट सभी डिवाइस का एक वर्बोज़ सूची प्राप्त करने के adb
, अपने टर्मिनल में निम्न आदेश लिखें:
adb devices -l
उदाहरण आउटपुट
List of devices attached
ZX1G425DC6 device usb:336592896X product:shamu model:Nexus_6 device:shamu
013e4e127e59a868 device usb:337641472X product:bullhead model:Nexus_5X device:bullhead
ZX1D229KCN device usb:335592811X product:titan_retde model:XT1068 device:titan_umtsds
A50PL device usb:331592812X
- पहला कॉलम डिवाइस का सीरियल नंबर है। यदि यह एमुलेटर- से शुरू होता
emulator-
, तो यह डिवाइस एमुलेटर है। -
usb:
USB सबसिस्टम में डिवाइस का पथ। -
product:
डिवाइस का उत्पाद कोड। यह बहुत ही निर्माता-विशिष्ट है, और जैसा कि आप Archos डिवाइसA50PL
के मामले में ऊपर देख सकते हैं, यह रिक्त हो सकता है। -
model:
डिवाइस मॉडल।product
तरह, खाली हो सकता है। -
device:
डिवाइस कोड। यह भी बहुत निर्माता-विशिष्ट है, और खाली हो सकता है।
डिवाइस की जानकारी पढ़ें
अपने टर्मिनल में निम्नलिखित कमांड लिखें:
adb shell getprop
यह कुंजी / मूल्य जोड़े के रूप में सभी उपलब्ध जानकारी को प्रिंट करेगा।
आप केवल एक विशिष्ट कुंजी के नाम को कमांड में जोड़कर विशिष्ट जानकारी पढ़ सकते हैं। उदाहरण के लिए:
adb shell getprop ro.product.model
यहाँ कुछ रोचक जानकारी दी गई है, जो आपको प्राप्त होगी:
-
ro.product.model
: मॉडल का मॉडल नाम (जैसे Nexus 6P) -
ro.build.version.sdk
: डिवाइस का API स्तर (जैसे 23) -
ro.product.brand
: डिवाइस की ब्रांडिंग (जैसे सैमसंग)
पूर्ण उदाहरण आउटपुट
[dalvik.vm.dex2oat-Xms]: [64m]
[dalvik.vm.dex2oat-Xmx]: [512m]
[dalvik.vm.heapsize]: [384m]
[dalvik.vm.image-dex2oat-Xms]: [64m]
[dalvik.vm.image-dex2oat-Xmx]: [64m]
[dalvik.vm.isa.x86.variant]: [dalvik.vm.isa.x86.features=default]
[dalvik.vm.isa.x86_64.features]: [default]
[dalvik.vm.isa.x86_64.variant]: [x86_64]
[dalvik.vm.lockprof.threshold]: [500]
[dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
[debug.atrace.tags.enableflags]: [0]
[debug.force_rtl]: [0]
[dev.bootcomplete]: [1]
[gsm.current.phone-type]: [1]
[gsm.defaultpdpcontext.active]: [true]
[gsm.network.type]: [UMTS]
[gsm.nitz.time]: [1469106902492]
[gsm.operator.alpha]: [Android]
[gsm.operator.iso-country]: [us]
[gsm.operator.isroaming]: [false]
[gsm.operator.numeric]: [310260]
[gsm.sim.operator.alpha]: [Android]
[gsm.sim.operator.iso-country]: [us]
[gsm.sim.operator.numeric]: [310260]
[gsm.sim.state]: [READY]
[gsm.version.ril-impl]: [android reference-ril 1.0]
[init.svc.adbd]: [running]
[init.svc.bootanim]: [stopped]
[init.svc.console]: [running]
[init.svc.debuggerd]: [running]
[init.svc.debuggerd64]: [running]
[init.svc.drm]: [running]
[init.svc.fingerprintd]: [running]
[init.svc.gatekeeperd]: [running]
[init.svc.goldfish-logcat]: [stopped]
[init.svc.goldfish-setup]: [stopped]
[init.svc.healthd]: [running]
[init.svc.installd]: [running]
[init.svc.keystore]: [running]
[init.svc.lmkd]: [running]
[init.svc.logd]: [running]
[init.svc.logd-reinit]: [stopped]
[init.svc.media]: [running]
[init.svc.netd]: [running]
[init.svc.perfprofd]: [running]
[init.svc.qemu-props]: [stopped]
[init.svc.ril-daemon]: [running]
[init.svc.servicemanager]: [running]
[init.svc.surfaceflinger]: [running]
[init.svc.ueventd]: [running]
[init.svc.vold]: [running]
[init.svc.zygote]: [running]
[init.svc.zygote_secondary]: [running]
[net.bt.name]: [Android]
[net.change]: [net.dns2]
[net.dns1]: [10.0.2.3]
[net.dns2]: [10.0.2.4]
[net.eth0.dns1]: [10.0.2.3]
[net.eth0.dns2]: [10.0.2.4]
[net.eth0.gw]: [10.0.2.2]
[net.gprs.local-ip]: [10.0.2.15]
[net.hostname]: [android-5e1af924d72dc578]
[net.qtaguid_enabled]: [1]
[net.tcp.default_init_rwnd]: [60]
[persist.sys.dalvik.vm.lib.2]: [libart.so]
[persist.sys.profiler_ms]: [0]
[persist.sys.timezone]: [Europe/Vienna]
[persist.sys.usb.config]: [adb]
[qemu.gles]: [1]
[qemu.hw.mainkeys]: [0]
[qemu.sf.fake_camera]: [none]
[qemu.sf.lcd_density]: [560]
[rild.libargs]: [-d /dev/ttyS0]
[rild.libpath]: [/system/lib/libreference-ril.so]
[ro.allow.mock.location]: [0]
[ro.baseband]: [unknown]
[ro.board.platform]: []
[ro.boot.hardware]: [ranchu]
[ro.bootimage.build.date]: [Thu Jul 7 15:56:30 UTC 2016]
[ro.bootimage.build.date.utc]: [1467906990]
[ro.bootimage.build.fingerprint]: [Android/sdk_google_phone_x86_64/generic_x86_64:6.0/MASTER/3038907:userdebug/test-keys]
[ro.bootloader]: [unknown]
[ro.bootmode]: [unknown]
[ro.build.characteristics]: [emulator]
[ro.build.date]: [Thu Jul 7 15:55:30 UTC 2016]
[ro.build.date.utc]: [1467906930]
[ro.build.description]: [sdk_google_phone_x86_64-userdebug 6.0 MASTER 3038907 test-keys]
[ro.build.display.id]: [sdk_google_phone_x86_64-userdebug 6.0 MASTER 3038907 test-keys]
[ro.build.fingerprint]: [Android/sdk_google_phone_x86_64/generic_x86_64:6.0/MASTER/3038907:userdebug/test-keys]
[ro.build.flavor]: [sdk_google_phone_x86_64-userdebug]
[ro.build.host]: [vpak15.mtv.corp.google.com]
[ro.build.id]: [MASTER]
[ro.build.product]: [generic_x86_64]
[ro.build.tags]: [test-keys]
[ro.build.type]: [userdebug]
[ro.build.user]: [android-build]
[ro.build.version.all_codenames]: [REL]
[ro.build.version.base_os]: []
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [3038907]
[ro.build.version.preview_sdk]: [0]
[ro.build.version.release]: [6.0]
[ro.build.version.sdk]: [23]
[ro.build.version.security_patch]: [2015-10-01]
[ro.com.google.locationfeatures]: [1]
[ro.config.alarm_alert]: [Alarm_Classic.ogg]
[ro.config.nocheckin]: [yes]
[ro.config.notification_sound]: [OnTheHunt.ogg]
[ro.crypto.state]: [unencrypted]
[ro.dalvik.vm.native.bridge]: [0]
[ro.debuggable]: [1]
[ro.hardware]: [ranchu]
[ro.hardware.audio.primary]: [goldfish]
[ro.kernel.android.checkjni]: [1]
[ro.kernel.android.qemud]: [1]
[ro.kernel.androidboot.hardware]: [ranchu]
[ro.kernel.clocksource]: [pit]
[ro.kernel.console]: [0]
[ro.kernel.ndns]: [2]
[ro.kernel.qemu]: [1]
[ro.kernel.qemu.gles]: [1]
[ro.opengles.version]: [131072]
[ro.product.board]: []
[ro.product.brand]: [Android]
[ro.product.cpu.abi]: [x86_64]
[ro.product.cpu.abilist]: [x86_64,x86]
[ro.product.cpu.abilist32]: [x86]
[ro.product.cpu.abilist64]: [x86_64]
[ro.product.device]: [generic_x86_64]
[ro.product.locale]: [en-US]
[ro.product.manufacturer]: [unknown]
[ro.product.model]: [Android SDK built for x86_64]
[ro.product.name]: [sdk_google_phone_x86_64]
[ro.radio.use-ppp]: [no]
[ro.revision]: [0]
[ro.runtime.firstboot]: [1469106908722]
[ro.secure]: [1]
[ro.serialno]: []
[ro.wifi.channels]: []
[ro.zygote]: [zygote64_32]
[selinux.reload_policy]: [1]
[service.bootanim.exit]: [1]
[status.battery.level]: [5]
[status.battery.level_raw]: [50]
[status.battery.level_scale]: [9]
[status.battery.state]: [Slow]
[sys.boot_completed]: [1]
[sys.sysctl.extra_free_kbytes]: [43200]
[sys.sysctl.tcp_def_init_rwnd]: [60]
[sys.usb.config]: [adb]
[sys.usb.state]: [adb]
[vold.has_adoptable]: [1]
[wlan.driver.status]: [unloaded]
[xmpp.auto-presence]: [true]
ADB को WiFi के माध्यम से डिवाइस से कनेक्ट करें
मानक ADB कॉन्फ़िगरेशन में भौतिक डिवाइस के लिए USB कनेक्शन शामिल है।
यदि आप चाहें, तो आप टीसीपी / आईपी मोड पर स्विच कर सकते हैं, और इसके बजाय एडीबी को वाईफाई से कनेक्ट कर सकते हैं।
रूट किए गए डिवाइस नहीं
एक ही नेटवर्क पर जाओ:
- सुनिश्चित करें कि आपका डिवाइस और आपका कंप्यूटर एक ही नेटवर्क पर हैं।
डिवाइस को USB केबल के साथ होस्ट कंप्यूटर से कनेक्ट करें।
नेटवर्क पर डिवाइस से
adb
कनेक्ट करें:जब आपका डिवाइस USB के माध्यम से
adb
से जुड़ा होता है, तो पोर्ट पर टीसीपी / आईपी कनेक्शन सुनने के लिए निम्न कमांड करें (डिफ़ॉल्ट 5555):-
adb tcpip <port>
टाइप करें (TCP / IP मोड में स्विच करें)। - USB केबल को लक्ष्य डिवाइस से डिस्कनेक्ट करें।
- टाइप करें
adb connect <ip address>:<port>
(पोर्ट वैकल्पिक है; डिफ़ॉल्ट 5555)।
उदाहरण के लिए:
adb tcpip 5555 adb connect 192.168.0.101:5555
यदि आपको अपने डिवाइस का IP नहीं पता है तो आप कर सकते हैं:
- अपने डिवाइस के वाईफाई सेटिंग्स में आईपी की जांच करें।
- IP (USB के माध्यम से) खोजने के लिए ADB का उपयोग करें:
- डिवाइस को USB के माध्यम से कंप्यूटर से कनेक्ट करें
- कमांड लाइन में,
adb shell ifconfig
टाइप करें और अपने डिवाइस के IP पते को कॉपी करें
USB के माध्यम से डिबगिंग पर वापस लौटने के लिए निम्नलिखित कमांड का उपयोग करें:
adb usb
आप एंड्रॉइड स्टूडियो में एक प्लगइन स्थापित करके एडीबी को वाईफाई के माध्यम से भी कनेक्ट कर सकते हैं। ऐसा करने के लिए, सेटिंग> प्लगइन्स पर जाएं और रिपॉजिटरी ब्राउज़ करें, एडीबी वाईफाई की खोज करें, इसे इंस्टॉल करें और एंड्रॉइड स्टूडियो को फिर से खोलें। आपको अपने टूलबार में एक नया आइकन दिखाई देगा जैसा कि निम्नलिखित छवि में दिखाया गया है। डिवाइस को USB के माध्यम से होस्ट कंप्यूटर से कनेक्ट करें और इस AndroidWiFiADB आइकन पर क्लिक करें। यह एक संदेश प्रदर्शित करेगा कि आपका डिवाइस जुड़ा हुआ है या नहीं। एक बार जब यह जुड़ जाता है तो आप अपने USB को अनप्लग कर सकते हैं।
-
रूट किया गया उपकरण
नोट: कुछ डिवाइस जो रूट की गई हैं, इसे सरल तरीके से सक्षम करने के लिए प्ले स्टोर से एडीबी वाईफाई ऐप का उपयोग कर सकते हैं। इसके अलावा, कुछ उपकरणों के लिए (विशेष रूप से CyanogenMod ROM के साथ) यह विकल्प सेटिंग्स के बीच डेवलपर विकल्पों में मौजूद है। यह सक्षम करने से आप आईपी पते दे देंगे और पोर्ट संख्या से कनेक्ट करने के लिए आवश्यक adb
बस को क्रियान्वित करते हुए adb connect <ip address>:<port>
।
जब आपके पास एक रूटेड डिवाइस है, लेकिन USB केबल तक पहुंच नहीं है
प्रक्रिया को निम्नलिखित उत्तर में विस्तार से समझाया गया है: http://stackoverflow.com/questions/2604727/how-can-i-connect-to-android-with-adb-over-tcp/3623727##2323727 सबसे महत्वपूर्ण आदेश नीचे दिखाए गए हैं।
डिवाइस में एक टर्मिनल खोलें और निम्नलिखित टाइप करें:
su
setprop service.adb.tcp.port <a tcp port number>
stop adbd
start adbd
उदाहरण के लिए:
setprop service.adb.tcp.port 5555
और आपके कंप्यूटर पर:
adb connect <ip address>:<a tcp port number>
उदाहरण के लिए:
adb connect 192.168.1.2:5555
इसे बंद करने के लिए:
setprop service.adb.tcp.port -1
stop adbd
start adbd
टाइमआउट से बचें
डिफ़ॉल्ट रूप से 5000 मिनट के बाद adb
टाइमआउट होगा। यह कुछ मामलों में हो सकता है जैसे धीमा वाईफाई या बड़ा एपीके।
ग्रैडल विन्यास में एक साधारण परिवर्तन कर सकता है चाल:
android {
adbOptions {
timeOutInMs 10 * 1000
}
}
डिवाइस से (को) फाइल खींचो (पुश)
आप निम्न आदेश को निष्पादित करके डिवाइस से फ़ाइलें (डाउनलोड) खींच सकते हैं:
adb pull <remote> <local>
उदाहरण के लिए:
adb pull /sdcard/ ~/
आप अपने कंप्यूटर से डिवाइस पर फ़ाइलें अपलोड (अपलोड) भी कर सकते हैं:
adb push <local> <remote>
उदाहरण के लिए:
adb push ~/image.jpg /sdcard/
डिवाइस से डेटाबेस को पुनः प्राप्त करने के लिए उदाहरण
sudo adb -d shell "run-as com.example.name cat /data/da/com.example.name /databases/DATABASE_NAME > /sdcard/file
उपकरण फिर से शुरू करें
आप निम्न कमांड को निष्पादित करके अपने डिवाइस को रिबूट कर सकते हैं:
adb reboot
बूटलोडर में रिबूट करने के लिए इस कमांड को करें:
adb reboot bootloader
पुनर्प्राप्ति मोड में रिबूट:
adb reboot recovery
ध्यान रखें कि डिवाइस पहले बंद नहीं होगा!
Wifi चालू / बंद करें
चालू करो:
adb shell svc wifi enable
बंद करें:
adb shell svc wifi disable
उपलब्ध उपकरण देखें
कमान:
adb devices
परिणाम उदाहरण:
List of devices attached
emulator-5554 device
PhoneRT45Fr54 offline
123.454.67.45 no device
पहला कॉलम - डिवाइस सीरियल नंबर
दूसरा कॉलम - कनेक्शन की स्थिति
IP द्वारा डिवाइस कनेक्ट करें
इन आदेशों को Android डिवाइस टर्मिनल में दर्ज करें
su
setprop service.adb.tcp.port 5555
stop adbd
start adbd
इसके बाद, आप निम्नलिखित कमांड का उपयोग करके कनेक्ट करने के लिए सीएमडी और एडीबी का उपयोग कर सकते हैं
adb connect 192.168.0.101.5555
और आप इसे अक्षम कर सकते हैं और ADB को USB पर सुनने के साथ वापस कर सकते हैं
setprop service.adb.tcp.port -1
stop adbd
start adbd
कंप्यूटर से, यदि आपके पास पहले से ही USB का उपयोग है (कोई रूट आवश्यक नहीं है)
यदि आपके पास पहले से ही यूएसबी है, तो वाई-फाई का उपयोग करना और भी आसान है। कंप्यूटर पर एक कमांड लाइन से जिसमें डिवाइस यूएसबी के माध्यम से जुड़ा हुआ है, कमांड जारी करता है
adb tcpip 5555
adb connect 192.168.0.101:5555
डिवाइस आईपी के साथ 192.168.0.101 बदलें
प्रारंभ / रोकें अदब
ADB प्रारंभ करें:
adb kill-server
ADB रोकें:
adb start-server
लॉगकाट देखें
आप एक कमांड कमांड के रूप में या सीधे अपने एमुलेटर या कनेक्टेड डिवाइस के शेल प्रॉम्प्ट में logcat
चला सकते हैं। adb
का उपयोग करके लॉग आउटपुट देखने के लिए, अपने SDK प्लेटफ़ॉर्म-टूल्स / डायरेक्टरी पर जाएँ और निष्पादित करें:
$ adb logcat
वैकल्पिक रूप से, आप किसी उपकरण से शेल कनेक्शन बना सकते हैं और फिर निष्पादित कर सकते हैं:
$ adb shell
$ logcat
एक उपयोगी आदेश है:
adb logcat -v threadtime
यह एक लंबे संदेश प्रारूप में संदेश जारी करने वाले थ्रेड की तारीख, मंगलाचरण, प्राथमिकता, टैग और पीआईडी और टीआईडी प्रदर्शित करता है।
छनन
Logcat लॉग को तथाकथित लॉग स्तर मिला:
वी - वर्बोज़, डी - डिबग, आई - इंफो, डब्ल्यू - वार्निंग, ई - एरर, एफ - फैटल, एस - इंडेंट
आप लॉग स्तर के रूप में अच्छी तरह से लॉगकैट को फ़िल्टर कर सकते हैं। उदाहरण के लिए यदि आप केवल डिबग स्तर का उत्पादन करना चाहते हैं:
adb logcat *:D
Logcat को पैकेज नाम से फ़िल्टर किया जा सकता है, बेशक आप इसे लॉग लेवल फ़िल्टर के साथ जोड़ सकते हैं:
adb logcat <package-name>:<log level>
आप grep का उपयोग करके लॉग को फ़िल्टर भी कर सकते हैं ( यहां लॉगकैट आउटपुट को फ़िल्टर करने पर अधिक):
adb logcat | grep <some text>
उदाहरण के लिए, विंडोज में, फ़िल्टर का उपयोग किया जा सकता है:
adb logcat | findstr <some text>
वैकल्पिक लॉग बफर देखने के लिए [मुख्य | घटनाएं | रेडियो], -b
विकल्प के साथ logcat
चलाएं:
adb logcat -b radio
फ़ाइल में आउटपुट सहेजें:
adb logcat > logcat.txt
फाइल को देखने के दौरान भी आउटपुट सेव करें:
adb logcat | tee logcat.txt
लॉग की सफाई:
adb logcat -c
मल्टी डिवाइस सेटिंग में विशिष्ट डिवाइस पर डायरेक्ट एडीबी कमांड
1. सीरियल नंबर द्वारा एक उपकरण को लक्षित करें
किस डिवाइस पर adb
कमांड चलना चाहिए, यह चुनने के लिए डिवाइस नाम के बाद -s
विकल्प का उपयोग करें। -s
विकल्प कमांड के पहले लाइन में होना चाहिए।
adb -s <device> <command>
उदाहरण:
adb devices
List of devices attached
emulator-5554 device
02157df2d1faeb33 device
adb -s emulator-5554 shell
उदाहरण # 2:
adb devices -l
List of devices attached
06157df65c6b2633 device usb:1-3 product:zerofltexx model:SM_G920F device:zeroflte
LC62TB413962 device usb:1-5 product:a50mgp_dug_htc_emea model:HTC_Desire_820G_dual_sim device:htc_a50mgp_dug
adb -s usb:1-3 shell
2. एक उपकरण को लक्षित करें, जब केवल एक डिवाइस प्रकार जुड़ा हुआ है
आप -e के साथ केवल चल रहे एमुलेटर को लक्षित कर सकते हैं
adb -e <command>
या आप -d के साथ एकमात्र कनेक्टेड USB डिवाइस को लक्षित कर सकते हैं
adb -d <command>
डिवाइस डिस्प्ले से स्क्रीनशॉट और वीडियो (केवल किटकैट के लिए) लेना
स्क्रीन शॉट: विकल्प 1 (शुद्ध अदब)
shell
एडीबी कमांड हमें डिवाइस के बिल्ट-इन शेल का उपयोग करके कमांड निष्पादित करने की अनुमति देता है। screencap
शेल कमांड एक डिवाइस पर वर्तमान में दिखाई देने वाली सामग्री को कैप्चर करता है और इसे दिए गए इमेज फाइल में सेव करता है, जैसे /sdcard/screen.png
:
adb shell screencap /sdcard/screen.png
फिर आप डिवाइस से फ़ाइल को वर्तमान निर्देशिका में फ़ाइल को कंप्यूटर पर डाउनलोड करने के लिए पुल कमांड का उपयोग कर सकते हैं:
adb pull /sdcard/screen.png
स्क्रीन शॉट: विकल्प 2 (तेज)
निम्नलिखित एक-लाइनर निष्पादित करें:
(मार्शमैलो और पहले):
adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png
(नौगट और बाद में):
adb shell screencap -p > screen.png
-p
फ्लैग screencap
कमांड के आउटपुट को -p
रीडायरेक्ट करता है। Perl अभिव्यक्ति यह मार्शमैलो और पहले के कुछ अंत मुद्दों पर साफ किया गया है। धारा को वर्तमान निर्देशिका के भीतर screen.png
नामक फ़ाइल में लिखा जाता है। अधिक जानकारी के लिए इस लेख और इस लेख को देखें।
वीडियो
यह केवल किटकैट में और केवल एडीबी के माध्यम से काम करता है। यह किटकैट के नीचे काम नहीं कर रहा है अपने डिवाइस की स्क्रीन रिकॉर्ड करना शुरू करने के लिए, निम्न कमांड चलाएं:
adb shell screenrecord /sdcard/example.mp4
, यह आदेश आपके डिवाइस की स्क्रीन को डिफ़ॉल्ट सेटिंग्स का उपयोग करके रिकॉर्ड करना शुरू कर देगा और परिणामी वीडियो को आपके डिवाइस पर /sdcard/example.mp4
फ़ाइल में सहेज देगा।
जब आप रिकॉर्डिंग कर रहे हों, स्क्रीन रिकॉर्डिंग को रोकने के लिए कमांड प्रॉम्प्ट विंडो में Ctrl + C (लिनक्स में z) दबाएँ। फिर आप निर्दिष्ट स्थान पर स्क्रीन रिकॉर्डिंग फ़ाइल पा सकते हैं। ध्यान दें कि स्क्रीन रिकॉर्डिंग आपके डिवाइस के आंतरिक संग्रहण में सहेजी जाती है, आपके कंप्यूटर पर नहीं।
डिफ़ॉल्ट सेटिंग्स आपके डिवाइस के मानक स्क्रीन रिज़ॉल्यूशन का उपयोग करने के लिए हैं, वीडियो को 4Mbps की बिटरेट पर एनकोड करें, और अधिकतम स्क्रीन रिकॉर्डिंग समय को 180 सेकंड तक सेट करें। कमांड-लाइन विकल्पों के बारे में अधिक जानकारी के लिए, आप निम्न कमांड चला सकते हैं:
adb shell screenrecord –help
, यह डिवाइस को रूट किए बिना काम करता है। उम्मीद है की यह मदद करेगा।
एप्लिकेशन डेटा साफ़ करें
एक विशेष अनुप्रयोग के उपयोगकर्ता डेटा को adb
का उपयोग करके साफ़ कर सकते हैं:
adb shell pm clear <package>
यह फोन पर सेटिंग्स ब्राउज़ करने, एप्लिकेशन का चयन करने और स्पष्ट डेटा बटन पर प्रेस करने के समान है।
-
pm
डिवाइस पर पैकेज मैनेजर को आमंत्रित करता है -
clear
पैकेज से जुड़े सभी डेटा को हटा देता है
प्रसारण भेज रहा है
प्रसारण को BroadcastReceiver
साथ adb
साथ प्रसारित करना संभव है।
इस उदाहरण में हम एक्शन com.test.app.ACTION
साथ प्रसारण भेज रहे हैं और बंडल 'foo'='bar'
में स्ट्रिंग अतिरिक्त:
adb shell am broadcast -a action com.test.app.ACTION --es foo "bar"
आप किसी अन्य समर्थित प्रकार को बंडल करने के लिए रख सकते हैं, न केवल तार:
--ेज़ - बूलियन
--ईई - पूर्णांक
- लंबा - लंबा
--फ - तैरना
--उप - उरी
- ईया - अंतर सरणी (',' द्वारा अलग)
--ela - लंबी सरणी (',' द्वारा अलग)
--efa - फ्लोट ऐरे (',' द्वारा अलग)
- मेसा - स्ट्रिंग सरणी (',' द्वारा अलग)
विशिष्ट पैकेज / वर्ग -n
या -p
पैरामीटर में आशय भेजने के लिए उपयोग किया जा सकता है।
पैकेज के लिए भेजा जा रहा है:
-p com.test.app
एक विशिष्ट घटक के लिए भेज रहा है ( SomeReceiver
com.test.app package
में SomeReceiver
वर्ग):
-n com.test.app/.SomeReceiver
उपयोगी उदाहरण:
- एक "बूट पूरा" प्रसारण भेज रहा है
- Adb कमांड के माध्यम से समय निर्धारित करने के बाद "समय बदला हुआ" प्रसारण भेजा जा रहा है
एप्लिकेशन इंस्टॉल करें और चलाएं
एपीके फ़ाइल स्थापित करने के लिए, निम्न कमांड का उपयोग करें:
adb install path/to/apk/file.apk
या यदि एप्लिकेशन मौजूद है और हम पुनः इंस्टॉल करना चाहते हैं
adb install -r path/to/apk/file.apk
किसी एप्लिकेशन को अनइंस्टॉल करने के लिए , हमें उसका पैकेज बताना होगा
adb uninstall application.package.name
दिए गए पैकेज नाम (या किसी ऐप में एक विशिष्ट गतिविधि) के साथ एक ऐप शुरू करने के लिए निम्नलिखित कमांड का उपयोग करें:
adb shell am start -n adb shell am start <package>/<activity>
उदाहरण के लिए, वेज़ शुरू करने के लिए:
adb shell am start -n adb shell am start com.waze/com.waze.FreeMapAppActivity
बैकअप
आप अपने डिवाइस का बैकअप adb backup
लिए adb backup
कमांड का उपयोग कर सकते हैं।
adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all]
[-system|nosystem] [<packages...>]
-f <filename>
फ़ाइल नाम डिफ़ॉल्ट निर्दिष्ट करें : वर्तमान निर्देशिका में backup.ab बनाता है
-apk|noapk
सक्षम / अक्षम बैकअप .apks डिफ़ॉल्ट रूप से: -noapk
-obb|noobb
सक्षम / अतिरिक्त फ़ाइलों का बैकअप डिफॉल्ट रूप से अक्षम : -नॉब
-shared|noshared
बैकअप डिवाइस का साझा संग्रहण / SD कार्ड सामग्री डिफ़ॉल्ट: -nosared
-all
बैकअप सभी स्थापित आवेदन
-system|nosystem
में सिस्टम एप्लिकेशन डिफ़ॉल्ट रूप से शामिल -system|nosystem
हैं : -system
<packages>
संकुल की एक सूची का बैकअप लिया जाना (जैसे com.example.android.myapp) (की जरूरत नहीं है, तो -all
निर्दिष्ट किया जाता है)
एक पूर्ण डिवाइस बैकअप के लिए, सब कुछ सहित, उपयोग करें
adb backup -apk -obb -shared -all -system -f fullbackup.ab
नोट: एक पूर्ण बैकअप करने में लंबा समय लग सकता है।
बैकअप को पुनर्स्थापित करने के लिए, का उपयोग करें
adb restore backup.ab
लिनक्स सिस्टम पर एडीबी स्थापित करें
अपने डिस्ट्रो के रिपॉजिटरी का उपयोग करके टर्मिनल के साथ लिनक्स सिस्टम में एंड्रॉइड डिबगिंग ब्रिज (एडीबी) कैसे स्थापित करें।
उपयुक्त के माध्यम से उबंटू / डेबियन सिस्टम में स्थापित करें:
sudo apt-get update
sudo apt-get install adb
यम के माध्यम से Fedora / CentOS सिस्टम में इंस्टॉल करें:
sudo yum check-update
sudo yum install android-tools
पोर्ट के साथ Gentoo सिस्टम में इंस्टॉल करें:
sudo emerge --ask dev-util/android-tools
Zypper के साथ OpenSUSE सिस्टम में इंस्टॉल करें:
sudo zypper refresh
sudo zypper install android-tools
पेसमैन के साथ आर्क सिस्टम पर इंस्टॉल करें:
sudo pacman -Syyu
sudo pacman -S android-tools
एंड्रॉइड 6.0 पर उपयोगकर्ताओं से रनटाइम अनुदान की आवश्यकता वाले सभी अनुमतियों की सूची बनाएं
adb shell pm list permissions -g -d
किसी एप्लिकेशन का आंतरिक डेटा (डेटा / डेटा / डेटा देखें) ) एक उपकरण पर
सबसे पहले, सुनिश्चित करें कि आपका ऐप AndroidManifest.xml
, यानी android:allowBackup
में बैकअप किया जा सकता है android:allowBackup
false
नहीं false
।
बैकअप कमांड:
adb -s <device_id> backup -noapk <sample.package.id>
Dd कमांड के साथ एक टार बनाएं:
dd if=backup.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" > backup.tar
टार निकालें:
tar -xvf backup.tar
फिर आप निकाले गए सामग्री को देख सकते हैं।
गतिविधि स्टैक देखें
adb -s <serialNumber> shell dumpsys activity activities
watch
यूनिक्स कमांड के साथ एक साथ उपयोग किए जाने पर बहुत उपयोगी:
watch -n 5 "adb -s <serialNumber> shell dumpsys activity activities | sed -En -e '/Stack #/p' -e '/Running activities/,/Run #0/p'"
किसी ऐप की कैशे फ़ाइलों को देखें और खींचें
आप अपने खुद के डिबग करने योग्य फ़ाइलों के लिए फाइलों को सूचीबद्ध करने के लिए इस कमांड का उपयोग कर सकते हैं:
adb shell run-as <sample.package.id> ls /data/data/sample.package.id/cache
और यह स्क्रिप्ट कैश से खींचने के लिए, यह सामग्री पहले sdcard की प्रतिलिपि बनाती है, इसे खींचती है और फिर अंत में इसे हटा देती है:
#!/bin/sh
adb shell "run-as <sample.package.id> cat '/data/data/<sample.package.id>/$1' > '/sdcard/$1'"
adb pull "/sdcard/$1"
adb shell "rm '/sdcard/$1'"
फिर आप इस तरह से कैशे से फाइल खींच सकते हैं:
./pull.sh cache/someCachedData.txt
ADB के माध्यम से डेटाबेस फ़ाइल प्राप्त करें
sudo adb -d shell "run-as com.example.name cat /data/da/com.example.name /databases/STUDENT_DATABASE > /sdcard/file