跳至內容

Android除錯橋

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

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

Android Debug Bridge
在 GNOME Terminal啟動ADB伺服器, which then enumerates the devices. After that, a shell is opened on the device being debugged to run the uname command.
GNOME Terminal啟動ADB伺服器, which then enumerates the devices. After that, a shell is opened on the device being debugged to run the uname command.
原作者Google
目前版本34.0.1 (March 2023)
原始碼庫 編輯維基數據鏈結
程式語言C++
作業系統Windows, Linux, macOS
許可協定 編輯維基數據鏈結
網站developer.android.com/studio/command-line/adb 編輯維基數據

實用命令

[編輯]
常見命令[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伺服器行程正在執行。如果沒有,它將啟動伺服器行程。伺服器在啟動後會與本地TCP5037繫結,監聽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]

參考資料

[編輯]
  1. ^ Things You Can Do with Android's adb Command. dummies. [2019-09-18]. (原始內容存檔於2018-05-15) (英語). 
  2. ^ Android Debug Bridge (adb). Android Developers. [2019-09-17]. (原始內容存檔於2019-09-14) (英語). 
  3. ^ Ma, Zhuang, mzlogin/awesome-adb, 2025-01-14 [2025-01-14], (原始內容存檔於2025-01-14) 
  4. ^ 4.0 4.1 Android Debug Bridge (adb). Android Developers. [2019-09-18]. (原始內容存檔於2019-09-14) (英語). 
  5. ^ Published. How to enable USB debugging mode on Android. Punch Newspapers. [2019-09-18]. (原始內容存檔於2019-09-17) (美國英語). 
  6. ^ User manual | Shizuku. shizuku.rikka.app. [2024-07-18]. (原始內容存檔於2025-01-30). 
  7. ^ RikkaApps/Shizuku, RikkaApps, 2025-01-14 [2025-01-14], (原始內容存檔於2025-01-24)