abd工作原理

一、adb是什麼

Android 調試橋 (adb) 是一種功能多樣的命令行工具,可讓您與設備進行通信。adb 命令可用於執行各種設備操作(例如安裝和調試應用),並提供對 Unix shell(可用來在設備上運行各種命令)的訪問權限。它是一種客戶端-服務器程序,包括以下三個組件:

客戶端:用於發送命令。客戶端在開發計算機上運行。您可以通過發出 adb 命令來從命令行終端調用客戶端。
守護進程 (adbd):在設備上運行命令。守護進程在每個設備上作爲後臺進程運行。
服務器:管理客戶端和守護進程之間的通信。服務器在開發機器上作爲後臺進程運行。
adb 包含在 Android SDK 平臺工具軟件包中。您可以使用 SDK 管理器下載此軟件包,該管理器會將其安裝在 android_sdk/platform-tools/ 下。或者,如果您需要獨立的 Android SDK 平臺工具軟件包,可以點擊此處進行下載。

要了解如何連接設備以進行 adb 通信,包括如何使用 Connection Assistant 對常見問題進行排查,請參閱在硬件設備上運行應用。

二、adb的工作原理

當您啓動某個 adb 客戶端時,客戶端會先檢查是否有 adb 服務器進程正在運行。如果沒有,它將啓動服務器進程。服務器在啓動後會與本地 TCP 端口 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 客戶端的命令,因此您可以從任意客戶端(或從某個腳本)控制任意設備。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章