Android調試橋

来自维基百科,自由的百科全书

Android調試橋(英語:Android Debug Bridge,簡稱:ADB),是一種擁有眾多功能的、用於調試Android設備的命令行工具。開發者可以通過它與Android設備進行通信。ADB可以執行各種設備操作(例如安裝和調試應用,傳輸文件)[1],並提供對Unix shell(用於在設備上運行各種命令)的訪問權限。它是一種客戶端 - 伺服器程序,包括客戶端(adb)、守護進程(adbd)、伺服器三個組件。[2]

實用命令

更多資訊 命令, 備註 ...
常見命令[3]
命令 備註
adb pair ip:port Wi-Fi 連接前配對設備
adb connect ip:port 通過 Wi-Fi 連接設備
adb shell pm disable-user <包名> 停用應用
adb uninstall [-k] <包名> 卸載應用,可選項-k表示卸載時保留數據
adb pull <設備里的文件路徑> [電腦上的目錄] 複製設備里的文件到電腦
adb push <電腦上的文件路徑> <設備里的目錄> 複製電腦里的文件到設備
關閉

工作原理

當某個ADB客戶端啟動時,客戶端會檢查是否有ADB伺服器進程正在運行。如果沒有,它將啟動伺服器進程。伺服器在啟動後會與本地TCP 端口 5037 綁定,監聽ADB客戶端發出的命令(所有ADB客戶端均通過端口5037與ADB伺服器通信),並嘗試與所有正在運行的設備建立連接。它通過掃描5555到5585之間(該範圍供前16個模擬器使用)的奇數號端口查找模擬器。伺服器一旦發現ADB守護進程,便會與相應的端口建立連接。每個模擬器都使用一對按順序排列的端口,用於控制台連接的偶數號端口和用於ADB連接的奇數號端口,如下所示:

模拟器 1,控制台:5554

模拟器 1,adb:5555

模拟器 2,控制台:5556

模拟器 2,adb:5557,依此類推……

如上所示,在端口5555處與ADB連接的模擬器與控制台監聽端口5554的模擬器是同一個。

伺服器與所有設備均建立連接後,便可以使用ADB命令訪問這些設備。由於伺服器管理與設備的連接,並處理來自多個ADB客戶端的命令,因此可以從任意客戶端(或從某個腳本)控制任意設備。[4]

啟用調試橋

要通過USB連接的設備上使用ADB,必須在設備的系統設置中啟用USB調試(位於開發者選項下)。

在搭載Android 4.2及更高版本的設備上,「開發者選項」選項默認處於隱藏狀態。如需將其顯示出來,需要依次轉到 設置 > 關於手機,連續點按版本號五次。返回上一屏幕,在底部可以找到開發者選項。(在不同的系統上,「開發者選項」選項所在的位置或名字可能有所不同)。

顯示出「開發者選項」後,轉至 開發者選項 > USB調試,將其選項改為開啟後,便可通過USB連接設備。(當嘗試連接搭載Android 4.2.2或更高版本的設備時,Android系統會顯示一個對話框,詢問您是否接受允許通過此計算機進行調試的RSA密鑰。)若需驗證設備是否連接,可以在ADB伺服器中執行adb devices。如果設備已連接,您將看到設備名稱以「設備」形式列出。[4][5]

Android 11以上的系統可使用無線調試,輸入配對碼連接。Shizuku 可以方便地讓 Android 11以上的手機在連接無線網絡時連接自身的ADB,並為需要 adb 許可權的程式提供方便的API,該程式可在 Google Play 商店或 Github 免費取得。[6][7]

參考資料

Wikiwand - on

Seamless Wikipedia browsing. On steroids.