ADB簡介

fengbingchun發表於2018-02-04

Google官方網頁 https://developer.android.com/studio/command-line/adb.html?hl=zh-cn  對ADB的介紹在國內經常打不開,為了便於檢視,這裡從此網頁中摘錄了些經常使用到的內容,如下:

ADB(Android Debug Bridge):Android除錯橋是一個通用命名行工具,其允許你與模擬器例項或連線的Android裝置進行通訊。它可為各種裝置操作提供便利,如安裝和除錯應用,並提供對Unix shell(可用來在模擬器或連線的裝置上執行各種命令)的訪問。該工具作為一個客戶端-伺服器程式,包括三個元件:

(1)、客戶端:該元件傳送命令。客戶端在開發計算機上執行。你可以通過發出 adb 命令從命令列終端呼叫客戶端。

(2)、後臺程式:該元件在裝置上執行命令。後臺程式在每個模擬器或裝置例項上作為後臺程式執行。

(3)、伺服器:該元件管理客戶端和後臺程式之間的通訊。伺服器在開發計算機上作為後臺程式執行。

ADB的工作方式:啟動一個adb客戶端時,此客戶端首先檢查是否有已執行的adb伺服器程式。如果沒有,它將啟動伺服器程式。當伺服器啟動時,它與本地TCP埠5037繫結,並偵聽從adb客戶端傳送的命令----所有adb客戶端均使用埠5037與adb伺服器通訊。然後,伺服器設定與所有執行的模擬器/裝置例項的連線。它通過掃描5555到5585之間(模擬器/裝置使用的範圍)的奇數號埠查詢模擬器/裝置例項。伺服器一旦發現adb後臺程式,它將設定與該埠的連線。請注意,每個模擬器/裝置例項將獲取一對按順序排列的埠----用於控制檯連線的偶數號埠和用於adb連線的奇數號埠。當伺服器已設定與所有模擬器例項的連線後,您可以使用adb命令訪問這些例項。由於伺服器管理與模擬器/裝置例項的連線,並處理來自多個adb客戶端的命令,因此,您可以從任意客戶端(或從某個指令碼)控制任意模擬器/裝置例項。

在您的裝置上啟用adb除錯:要在通過USB連線的裝置上使用adb,您必須在裝置系統設定中啟用USB debugging(位於Developer options下)。在執行Android 4.2及更高版本的裝置上,Developer options 螢幕預設情況下處於隱藏狀態。如需將其顯示出來,請轉到 Settings --> About phone並點按Build number七次。返回上一螢幕,在底部可以找到Developer options。在某些裝置上,Developer options 螢幕所在的位置或命名方式可能有所不同。現在,您可以將裝置與USB連線。可以從android_sdk/platform-tools/目錄執行adb devices來驗證裝置是否連線。如果已連線,您將看到裝置名稱以”裝置”形式列示。

注:當您連線執行Android 4.2.2或更高版本的裝置時,系統將顯示一個對話方塊,詢問您是否接受允許在這臺計算機上除錯的RSA金鑰。這種安全機制可以保護使用者裝置,因為它可以確保只有在您能夠解鎖裝置並確認對話方塊的情況下才能執行USB除錯和其他ADB命令。

通過WLAN連線到裝置:一般情況下,通過USB使用adb。不過,也可以按照下面的說明通過WLAN使用它。

(1)、將Android裝置和adb主計算機連線到這兩者都可以訪問的常用WLAN網路。請注意,並非所有訪問點均適用;您可能需要使用已正確配置防火牆的訪問點以支援adb的訪問 點。

注:如果您嘗試連線到Android Wear裝置,則通過關閉與其連線的手機的藍芽強制將它連線到WLAN。

(2)、使用USB電纜將裝置連線到主計算機。

(3)、設定目標裝置以偵聽埠5555上的TCP/IP連線:$ adb tcpip 5555

(4)、從目標裝置斷開 USB 電纜連線。

(5)、查詢Android裝置的IP地址。

(6)、連線至裝置,通過IP地址識別此裝置:$ adb connect device_ip_address

(7)、請確認您的主計算機已連線至目標裝置:$ adb devices

現在,您可以開始操作了!

如果adb連線丟失:

(1)、請確保您的主機仍與您的Android裝置連線到同一個WLAN網路。

(2)、通過再次執行adb connect步驟重新連線。

(3)、如果無法連線,則重置adb主機:$ adb kill-server

然後,從頭開始操作。

查詢裝置:在發出adb命令之前,知道哪些模擬器/裝置例項已連線到adb伺服器會很有幫助。您可以使用devices命令生成已連線的模擬器/裝置的列表:$ adb devices

將命令傳送至特定裝置:如果多個模擬器/裝置例項正在執行,在發出adb命令時您必須指定一個目標例項。為此,請在命令中使用-s選項:$ adb -s serial_number command

注意,如果在多個裝置可用時您未指定目標模擬器/裝置例項就發出命令,那麼adb將生成一個錯誤。如果您有多個裝置可用(硬體或模擬裝置),但只有一個裝置是模擬器,則使用-e選項將命令傳送至該模擬器。同樣,如果有多個裝置,但只連線了一個硬體裝置,則使用-d選項將命令傳送至該硬體裝置。

安裝應用:您可以使用adb從開發計算機複製應用,並將其安裝到模擬器/裝置例項上。為此,請使用install命令。使用此命令,您必須指定您要安裝的APK檔案的路徑:$ adb install path_to_apk

請注意,如果使用Android Studio,則無需直接使用adb(或aapt)在模擬器/裝置上安裝您的應用。而是由Android Studio為您處理應用的打包和安裝。

設定埠轉發:您可以使用forward命令設定任意埠轉發----將對特定主機埠的請求轉發到模擬器/裝置例項上的其他埠。

將檔案複製到裝置/從裝置複製檔案:您可以使用adb命令pull和push將檔案複製到模擬器/裝置例項或從其中複製檔案。與install命令不同(其僅將APK檔案複製到特定位置),pull和push命令允許您將任意目錄和檔案複製到模擬器/裝置例項中的任意位置。

要從模擬器或裝置複製檔案或目錄(及其子目錄),請使用:$ adb pull remote local

要將檔案檔案或目錄(及其子目錄)複製到模擬器或裝置,請使用:$ adb push local remote

在上述命令中,local和remote指的是開發計算機(本地)和模擬器/裝置例項(遠端)上目標檔案/目錄的路徑。例如:$ adb push foo.txt  /sdcard/foo.txt

停止adb伺服器:在某些情況下,您可能需要終止adb伺服器程式,然後重啟它以解決問題(例如,如果adb不響應命令)。要停止adb伺服器,請使用adb kill-server命令。然後,您可以通過發出任意其他adb命令重啟伺服器。

發出shell命令:您可以使用shell命令通過adb發出裝置命令,可以進入或不進入模擬器/裝置例項上的adb遠端shell。要在不進入遠端shell的情況下發出一個命令,請使用shell 命令。

  1、首次在Ubuntu上使用adb,需要先安裝,如下圖,執行命令:

$ sudo apt-get install android-tools-adb


        2、進入Android設定,將Android手機連線到PC機上,執行命令:

        $ adb shell

有時會提示error: device not found.

解決方法,以小米4, MIUI 8.5為例:設定 --> 我的裝置 --> 全部引數 --> 連續點選MIUI版本,直至出現”已處於開發者模式”為止 --> 返回上一層選單,進入更多設定 --> 開發者選項 --> 開啟”開啟開發者選項”:開啟USB除錯