超詳細(xì)的Android開發(fā)調(diào)試工具ADB命令及安裝介紹
一、ADB簡(jiǎn)介
簡(jiǎn)稱:ADB
英文全稱:Android Debug Brige
中文全稱:Android調(diào)試橋
作用:與Android設(shè)備進(jìn)行通信的工具
二、安裝ADB
adb 包含在 Android SDK平臺(tái)工具軟件包中。您可以使用 SDK 管理器下載此軟件包,該管理器會(huì)將其安裝在 android_sdk/platform-tools/ 下。
或者,如果您需要獨(dú)立的 Android SDK 平臺(tái)工具軟件包,可以點(diǎn)擊此處進(jìn)行下載。
三、環(huán)境變量
Windows、Mac、Linux下不同的配置方式,根據(jù)對(duì)應(yīng)平臺(tái)去百度或者Google搜索即可,限于篇幅本文略過
四、連接真機(jī)
1、啟用開發(fā)者選項(xiàng)
連續(xù)點(diǎn)按版本號(hào)7 次(設(shè)置 > 關(guān)于手機(jī) > 版本號(hào))
2、啟用USB調(diào)試
開發(fā)者選項(xiàng) > USB 調(diào)試
3、啟用文件傳輸
將USB充電模式改為文件傳輸
4、手機(jī)RSA密鑰授權(quán)
設(shè)備中彈出對(duì)話框,必須手工確定才能執(zhí)行USB調(diào)試和其他 adb 命令
五、常用命令
查看ADB版本
adb version
幫助信息(重要)
adb --help
或
adb help
或
adb
ADB的幫助信息描述的非常全面,學(xué)會(huì)查看命令行工具的幫助信息,事半功倍
開啟ADB服務(wù)端
adb start-server
關(guān)閉ADB服務(wù)端
adb kill-server
檢查設(shè)備連接情況
簡(jiǎn)略信息:adb devices
詳細(xì)信息:adb devices -l
安裝App
普通安裝:adb install xxx.apk
重新安裝,保持?jǐn)?shù)據(jù)不清除(覆蓋安裝) :adb install -r xxx.apk
允許debug包安裝:adb install -t xxx.apk
授權(quán)AndroidManifest.xml文件的運(yùn)行時(shí)權(quán)限并安裝:adb install -g xxx.apk
將多個(gè)apk推送到設(shè)備,作為一個(gè)包安裝:adb install-multiple xxx1.apk xxx2.apk
卸載App
普通卸載:adb uninstall com.xxx.package_name
保持?jǐn)?shù)據(jù)卸載:adb uninstall -k com.xxx.package_name
Push文件
從本機(jī)推送到Android設(shè)備上:adb push local remote
local表示本機(jī)文件的路徑
remote表示Android設(shè)備的路徑
Pull文件
從Android設(shè)備上拉取到本機(jī):adb pull remote local
remote表示Android設(shè)備的文件或目錄的路徑
local表示本機(jī)文件或目錄的路徑
查看日志
adb logcat
六、高級(jí)技巧…
指定多個(gè)設(shè)備中的1個(gè)或n個(gè)
adb devices 命令或adb devices -l獲取所有設(shè)備的序列號(hào)
1、adb -s 序列號(hào) 命令 …… 舉個(gè)例子:adb -s dasdfew123 install xxx.apk
或者
1、ANDROID_SERIAL環(huán)境變量,可以指定單個(gè)設(shè)備的序列號(hào)
2、ANDROID_SERIAL環(huán)境變量,可指定n個(gè)設(shè)備的序列號(hào),以逗號(hào)“,”作為分隔符
不使用 -s 指定序列號(hào)時(shí),adb會(huì)讀取ANDROID_SERIAL環(huán)境變量的值
同時(shí)使用 -s 和ANDROID_SERIAL環(huán)境變量,則-s會(huì)覆蓋掉ANDROID_SERIAL環(huán)境變量的值
WLAN連接
前提:手機(jī)與PC處于同一局域網(wǎng)(同一個(gè)WLAN下)
原理:PC上的adb服務(wù)端與Android設(shè)備上的adbd進(jìn)程建立TCP連接
如何建立連接?
1、 先將手機(jī)與PC通過USB連接
adb tcpip 5555
運(yùn)行后,Android設(shè)備上的adbd進(jìn)程將開始監(jiān)聽5555端口(處于Listener狀態(tài))
2、從USB連接上拔掉手機(jī)
adb connect <手機(jī)IP>
運(yùn)行后,PC上的adb服務(wù)端與Android設(shè)備上的adbd進(jìn)程(監(jiān)聽5555端口)建立TCP連接
如何斷開WLAN連接?
adb disconnect
如何將Android設(shè)備的WLAN連接切換為USB連接?
adb usb
藍(lán)牙連接
... ...暫時(shí)
端口轉(zhuǎn)發(fā)
……暫時(shí)
七、高級(jí)Unix命令行工具(Android基于Linux內(nèi)核)
查看Android設(shè)備可用命令(重要)
adb shell ls /system/bin
進(jìn)入設(shè)備shell
adb shell
執(zhí)行任意的可用命令
(adb shell ls /system/bin中列出來(lái)的命令都可使用)
top
ps
dumpsys
am
input
等等等等……各種命令……未完待續(xù)
八、經(jīng)常使用的Unix命令行工具
查看進(jìn)程狀態(tài):ps
查看cpu狀態(tài):top
系統(tǒng)服務(wù):dumpsys
九、ADB原理
采用客戶端/服務(wù)端架構(gòu)(C/S架構(gòu))
由3個(gè)進(jìn)程組成
1、ADB客戶端進(jìn)程
運(yùn)行在PC上,用于發(fā)送命令,為CLI客戶端,在命令行中啟動(dòng),命令運(yùn)行結(jié)束,進(jìn)程隨著結(jié)束
2、ADB服務(wù)端進(jìn)程
運(yùn)行在PC上, 由ADB客戶端啟動(dòng),負(fù)責(zé)與Android設(shè)備上的adbd進(jìn)程通信、負(fù)責(zé)與PC上的ADB客戶端進(jìn)程通信;PC上的ADB客戶端與Android設(shè)備上的adbd進(jìn)程通信,全靠PC上的ADB服務(wù)端進(jìn)程進(jìn)行轉(zhuǎn)發(fā)……
3、adbd進(jìn)程
運(yùn)行在Android設(shè)備上,負(fù)責(zé)與PC上的ADB服務(wù)端進(jìn)程通信
進(jìn)程通信方式
1、ADB客戶端與ADB服務(wù)端
ADB客戶端、ADB服務(wù)端均運(yùn)行在PC上,采用TCP建立連接,即Network Socket
2、PC上的ADB服務(wù)端與Android設(shè)備上的adbd進(jìn)程
采用USB cable建立連接(默認(rèn))
or
采用TCP建立連接(無(wú)線adb)
進(jìn)程生命周期
1、ADB客戶端進(jìn)程的生命周期
在命令行中輸入任意的adb命令,會(huì)創(chuàng)建ADB客戶端進(jìn)程,待客戶端的命令執(zhí)行結(jié)束,adb客戶端進(jìn)程會(huì)自然銷毀
2、ADB服務(wù)端進(jìn)程的生命周期
由任意客戶端喚起(如adb命令行,Android Studio等等),常駐在PC的內(nèi)存中,作為守護(hù)進(jìn)程
3、adbd進(jìn)程的生命周期
由init進(jìn)程通過讀取init.rc文件(該文件存有adbd進(jìn)程的配置信息),然后fork出來(lái)adbd進(jìn)程,adbd進(jìn)程是在Android系統(tǒng)啟動(dòng)后即創(chuàng)建,它一直運(yùn)行在Android的內(nèi)存中,作為Android設(shè)備的守護(hù)進(jìn)程
5037端口
1、當(dāng)啟動(dòng)任意一個(gè)ADB客戶端(Android Studio、命令行工具等等),ADB客戶端會(huì)檢查ADB服務(wù)器進(jìn)程是否正在運(yùn)行
2、如果ADB服務(wù)端沒有運(yùn)行,ADB客戶端將執(zhí)行啟動(dòng)一個(gè)ADB服務(wù)端進(jìn)程的代碼
3、ADB服務(wù)端啟動(dòng)后就會(huì)在PC的本地5037端口(TCP端口)綁定,監(jiān)聽所有ADB客戶端發(fā)出的命令,所有ADB客戶端均通過TCP端口5037與ADB服務(wù)端進(jìn)行通信
十、小秘密
發(fā)現(xiàn)一個(gè)秘密,Mac上將Android Studio關(guān)閉后,ADB 服務(wù)端進(jìn)程(adb server)一定會(huì)被殺死,不信你試一試……
參考文獻(xiàn):
https://developer.android.google.cn/studio/debug/dev-options 配置設(shè)備上的開發(fā)者選項(xiàng)
https://developer.android.google.cn/studio/run/device 在硬件設(shè)備上運(yùn)行應(yīng)用
以上就是超詳細(xì)的Android調(diào)試工具ADB安裝使用技巧介紹的詳細(xì)內(nèi)容,更多關(guān)于Android調(diào)試工具ADB介紹的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android中ScrollView嵌套GridView的解決辦法
前些日子在開發(fā)中用到了需要ScrollView嵌套GridView的情況,由于這兩款控件都自帶滾動(dòng)條,當(dāng)他們碰到一起的時(shí)候便會(huì)出問題,即GridView會(huì)顯示不全。下面小編給大家分享下解決方案,需要的朋友可以參考下2017-04-04Android自定義View仿IOS圓盤時(shí)間選擇器
這篇文章主要介紹了Android自定義View仿IOS圓盤時(shí)間選擇器,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03ViewPager+PagerAdapter實(shí)現(xiàn)帶指示器的引導(dǎo)頁(yè)
這篇文章主要為大家詳細(xì)介紹了ViewPager+PagerAdapter實(shí)現(xiàn)帶指示器的引導(dǎo)頁(yè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09詳解Android Automotive車載應(yīng)用對(duì)駕駛模式Safe Drive Mode的適配
這篇文章主要介紹了詳解Android Automotive車載應(yīng)用對(duì)駕駛模式(Safe Drive Mode)的適配,對(duì)車載應(yīng)用感興趣的同學(xué)可以參考下2021-04-04Android入門之BroadCast模擬實(shí)現(xiàn)異地登錄事件發(fā)生后的主動(dòng)退出
隨著對(duì)BroadCast的越來(lái)越深入,我們今天要實(shí)現(xiàn)一個(gè)稍微復(fù)雜一點(diǎn)的BroadCast。即只允許一個(gè)設(shè)備登錄一個(gè)帳號(hào)時(shí),APP會(huì)彈一個(gè)對(duì)話框如:您的賬號(hào)在別處登錄,請(qǐng)重新登陸!感興趣的可以了解一下2022-12-12Android基于OpenCV實(shí)現(xiàn)QR二維碼檢測(cè)
QR碼比普通一維條碼具有快速讀取和更大的存儲(chǔ)資料容量,也無(wú)需要像一維條碼般在掃描時(shí)需要直線對(duì)準(zhǔn)掃描儀。因此其應(yīng)用范圍已經(jīng)擴(kuò)展到包括產(chǎn)品跟蹤,物品識(shí)別,文檔管理,庫(kù)存營(yíng)銷等方面。本文講解Android基于OpenCV實(shí)現(xiàn)QR二維碼檢測(cè)的步驟2021-06-06Android數(shù)據(jù)庫(kù)LitePal的基本用法詳解
這篇文章主要介紹了Android數(shù)據(jù)庫(kù)LitePal的基本用法詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-01-01Android實(shí)現(xiàn)背景可滑動(dòng)登錄界面 (不壓縮背景彈出鍵盤)
這篇文章主要介紹了Android實(shí)現(xiàn)背景可滑動(dòng)登錄界面 (不壓縮背景彈出鍵盤),需要的朋友可以參考下2017-04-04Android開發(fā)實(shí)現(xiàn)撥打電話與發(fā)送信息的方法分析
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)撥打電話與發(fā)送信息的方法,結(jié)合實(shí)例形式分析了Android撥打電話及發(fā)送信息相關(guān)布局、功能實(shí)現(xiàn)及權(quán)限控制操作技巧,需要的朋友可以參考下2017-12-12Android?App隱私合規(guī)檢測(cè)輔助工具Camille詳解
Camille是一款A(yù)ndroid?App隱私合規(guī)檢測(cè)輔助工具,現(xiàn)如今APP隱私合規(guī)十分重要,各監(jiān)管部門不斷開展APP專項(xiàng)治理工作及核查通報(bào),不合規(guī)的APP通知整改或直接下架,下面小編給大家介紹下Android?App隱私合規(guī)檢測(cè)輔助工具Camille,感興趣的朋友一起看看吧2022-02-02