超詳細的Android開發調試工具ADB命令及安裝介紹

一、ADB簡介

簡稱:ADB

英文全稱:Android Debug Brige

中文全稱:Android調試橋

作用:與Android設備進行通信的工具

二、安裝ADB

adb 包含在 Android SDK平臺工具軟件包中。您可以使用 SDK 管理器下載此軟件包,該管理器會將其安裝在 android_sdk/platform-tools/ 下。

或者,如果您需要獨立的 Android SDK 平臺工具軟件包,可以點擊此處進行下載。

三、環境變量

Windows、Mac、Linux下不同的配置方式,根據對應平臺去百度或者Google搜索即可,限於篇幅本文略過

四、連接真機

1、啟用開發者選項

連續點按版本號7 次(設置 > 關於手機 > 版本號)

2、啟用USB調試

開發者選項 > USB 調試

3、啟用文件傳輸

將USB充電模式改為文件傳輸

4、手機RSA密鑰授權

設備中彈出對話框,必須手工確定才能執行USB調試和其他 adb 命令

五、常用命令

查看ADB版本

adb version

幫助信息(重要)

adb –help

adb help

adb

ADB的幫助信息描述的非常全面,學會查看命令行工具的幫助信息,事半功倍

開啟ADB服務端

adb start-server

關閉ADB服務端

adb kill-server

檢查設備連接情況

簡略信息:adb devices

詳細信息:adb devices -l

安裝App

普通安裝:adb install xxx.apk

重新安裝,保持數據不清除(覆蓋安裝) :adb install -r xxx.apk

允許debug包安裝:adb install -t xxx.apk

授權AndroidManifest.xml文件的運行時權限並安裝:adb install -g xxx.apk

將多個apk推送到設備,作為一個包安裝:adb install-multiple xxx1.apk xxx2.apk

卸載App

普通卸載:adb uninstall com.xxx.package_name

保持數據卸載:adb uninstall -k com.xxx.package_name

Push文件

從本機推送到Android設備上:adb push local remote

local表示本機文件的路徑

remote表示Android設備的路徑

Pull文件

從Android設備上拉取到本機:adb pull remote local

remote表示Android設備的文件或目錄的路徑

local表示本機文件或目錄的路徑

查看日志

adb logcat

六、高級技巧…

 指定多個設備中的1個或n個

adb devices 命令或adb devices -l獲取所有設備的序列號

1、adb -s 序列號 命令 …… 舉個例子:adb -s dasdfew123 install xxx.apk

或者

1、ANDROID_SERIAL環境變量,可以指定單個設備的序列號

2、ANDROID_SERIAL環境變量,可指定n個設備的序列號,以逗號“,”作為分隔符

不使用 -s 指定序列號時,adb會讀取ANDROID_SERIAL環境變量的值

同時使用 -s 和ANDROID_SERIAL環境變量,則-s會覆蓋掉ANDROID_SERIAL環境變量的值

 WLAN連接

前提:手機與PC處於同一局域網(同一個WLAN下)

原理:PC上的adb服務端與Android設備上的adbd進程建立TCP連接

如何建立連接?

1、 先將手機與PC通過USB連接

adb tcpip 5555

運行後,Android設備上的adbd進程將開始監聽5555端口(處於Listener狀態)

2、從USB連接上拔掉手機

adb connect <手機IP>

運行後,PC上的adb服務端與Android設備上的adbd進程(監聽5555端口)建立TCP連接

 如何斷開WLAN連接?

adb disconnect

如何將Android設備的WLAN連接切換為USB連接?

adb usb

 藍牙連接

… …暫時

端口轉發

……暫時 

七、高級Unix命令行工具(Android基於Linux內核)

查看Android設備可用命令(重要)

adb shell ls /system/bin

進入設備shell

adb shell

執行任意的可用命令

(adb shell ls /system/bin中列出來的命令都可使用)

top

ps

dumpsys

am

input

等等等等……各種命令……未完待續

八、經常使用的Unix命令行工具

查看進程狀態:ps

查看cpu狀態:top

系統服務:dumpsys

九、ADB原理

 采用客戶端/服務端架構(C/S架構)

由3個進程組成

1、ADB客戶端進程

運行在PC上,用於發送命令,為CLI客戶端,在命令行中啟動,命令運行結束,進程隨著結束

2、ADB服務端進程

運行在PC上, 由ADB客戶端啟動,負責與Android設備上的adbd進程通信、負責與PC上的ADB客戶端進程通信;PC上的ADB客戶端與Android設備上的adbd進程通信,全靠PC上的ADB服務端進程進行轉發……

3、adbd進程

運行在Android設備上,負責與PC上的ADB服務端進程通信

 進程通信方式

1、ADB客戶端與ADB服務端

ADB客戶端、ADB服務端均運行在PC上,采用TCP建立連接,即Network Socket

2、PC上的ADB服務端與Android設備上的adbd進程

采用USB cable建立連接(默認)

or

采用TCP建立連接(無線adb)

 進程生命周期

1、ADB客戶端進程的生命周期

在命令行中輸入任意的adb命令,會創建ADB客戶端進程,待客戶端的命令執行結束,adb客戶端進程會自然銷毀

2、ADB服務端進程的生命周期

由任意客戶端喚起(如adb命令行,Android Studio等等),常駐在PC的內存中,作為守護進程

3、adbd進程的生命周期

由init進程通過讀取init.rc文件(該文件存有adbd進程的配置信息),然後fork出來adbd進程,adbd進程是在Android系統啟動後即創建,它一直運行在Android的內存中,作為Android設備的守護進程

 5037端口

1、當啟動任意一個ADB客戶端(Android Studio、命令行工具等等),ADB客戶端會檢查ADB服務器進程是否正在運行

2、如果ADB服務端沒有運行,ADB客戶端將執行啟動一個ADB服務端進程的代碼

3、ADB服務端啟動後就會在PC的本地5037端口(TCP端口)綁定,監聽所有ADB客戶端發出的命令,所有ADB客戶端均通過TCP端口5037與ADB服務端進行通信

十、小秘密

發現一個秘密,Mac上將Android Studio關閉後,ADB 服務端進程(adb server)一定會被殺死,不信你試一試……

參考文獻:

https://developer.android.google.cn/studio/debug/dev-options  配置設備上的開發者選項

https://developer.android.google.cn/studio/run/device  在硬件設備上運行應用

以上就是超詳細的Android調試工具ADB安裝使用技巧介紹的詳細內容,更多關於Android調試工具ADB介紹的資料請關註WalkonNet其它相關文章!

推薦閱讀: