原文連結: http://developer.android.com/tools/help/adb.html#
Android Debug Bridge(簡稱adb)是一個多功能的命令列工具,它可以讓你串連到一個android模擬器或都一個真實的android裝置,是一個用戶端-伺服器模式的應用程式,包含以下三個組件:
1.一個運行在你的開發機器上面的用戶端,你可以用shell來發送一個adb命令,另外的Android工具,如ADT外掛程式和DDMS也會建立一個adb用戶端
2.一個以背景進程運行在你的機器上的伺服器端,伺服器端管理用戶端與運行在裝置上的adb精靈之間的串連
3.一個以背景進程運行在裝置執行個體上的精靈
你可以在<sdk>/platform-tools/
.找到adb工具。
當你開始一個adb用戶端後,首先檢測是否有一個adb伺服器處理序在運行,如果沒有,它就會啟動一個伺服器處理序,當伺服器端進程啟動以後,它會綁定本地TCP5037連接埠,並且監聽從adb用戶端發過來的命令(所有的adb用戶端都使用5037連接埠來串連adb伺服器端)。
伺服器端開始串連所有啟動了的模擬器/真實裝置執行個體,它監聽從5555到5585間的奇數連接埠來載入裝置執行個體,如果伺服器端發現一個adb精靈後,會在這個連接埠上面啟動一個串連,注意每個裝置執行個體要求有一對連接埠,一個連接埠用來串連控制台,一個奇數連接埠用來串連adb用戶端,例如:
Emulator
1, console: 5554
Emulator 1, adb: 5555
Emulator 2, console: 5556
Emulator 2, adb: 5557
就像上面所顯示的,一個模擬器執行個體的adb是串連5555連接埠,而控制台則監聽5554連接埠。
文法:
你可以在你開發的機器上用命令列或者指令碼發布一個adb命令,用法如下: adb
[-d|-e|-s <serialNumber>] <command>
如果只串連了一個裝置,adb命令會預設地發送到這個裝置。但是如果有多個裝置在運行,你就需要用-d-e或-s選項來指定一個目標裝置來執行這個adb命令。
命令列:
下面的列表是所有的可用adb命令,並且列有解釋和用法執行個體。 (註:鑒於csdn的表格太簡單編輯不了adb官網的列表,所以我決定一段一段地來寫)
查詢裝置執行個體:
在發送adb命令之前,知道有哪些裝置執行個體串連在adb伺服器端上面是很有用的,你可以用device命令來產生一個已串連了的裝置列表: adb
device 做為回應,adb回列出所有執行個體的狀態資訊: 1.序號:一個adb建立的唯一標識裝置執行個體的字串,用裝置的控制台連接埠數字來產生,序號字串的格式是<type>-<consolePort>,例如:emulator-5554。 2.狀態:執行個體的串連狀態可能有如下幾種: a).offline-執行個體沒有串連到adb或者執行個體沒有反應 b).device-執行個體已經串連到了adb伺服器端,(注意:這個狀態並不說明這個android系統是完全引入並且可以操作的,因為有可能這個裝置在串連到adb到還在匯入中。然後當匯入完成以後,這就是一個普通的裝置執行個體操作) c).no device-沒有裝置串連到adb 這裡一個輸入device命令後輸出的例子:
adb devices
list of device attached
emulator-5554 device
emulator-5556 device
emulator-5558 device
在一個特定裝置上直接執行adb命令: 如果多個裝置執行個體在運行,那你就必須在發送adb命令前指定一個目標執行個體,你可以用-s選項加到命令列中,用法如下: adb -s <serialNumber> <command> 好像上面顯示的,你用adb賦給的序列碼指定一個目標執行個體,你可以用devices命令去得到序號,下面是一個使用例子: adb -s emulator-5556 install
helloWorld.apk (注意:如果你發送命令前沒有指定一個特定的裝置執行個體,但是卻有多個裝置是可用的,這時adb就會返回一個錯誤資訊) 如果你有多個裝置是可用的(硬體或模擬器),但是只有一個模擬器,你可以簡單地用-e選項去發送命令到模擬器。同樣地,如果有多個裝置執行個體,但是只有一個是硬體,那麼你可以用-d選項來發送命令到硬體裝置。 安裝應用程式: 你可以用adb從你的開發電腦中拷貝一個應用程式,並且安裝到裝置執行個體上面去。為了這樣做,你要用到install命令。但是要使用這個命令,你必須得指定的你想安裝的apk的具體路徑。 adb install <path to apk> 從裝置執行個體中拷貝檔案/拷貝檔案到裝置執行個體中去: 你可以用adb命令的pull拷貝一個檔案到裝置執行個體中去,push從裝置執行個體中拷貝一個檔案到電腦裡面,不像install命令只拷貝一個apk檔案到一個指定位置,pull和push命令可以讓你拷貝任意的檔案或檔案夾到任意的裝置執行個體中的位置。 為了從裝置執行個體中拷貝一個檔案或檔案夾,你應該像下面一樣用: adb pull <remote> <local> 如果你要拷貝一個檔案或檔案夾到一個裝置執行個體中去,你應該像下面一樣做: adb push <local> <remote> 在這個命令裡面,<local>和<remote>是一個具體的檔案或檔案夾位置,例如: adb push foo.txt /sdcard/foo.txt 發送shell命令: 因為shell命令牽涉到unix,而這個我一點都不懂,所以下面的不翻譯了,打完,收工!