Android開發者指南(1) —— Android Debug Bridge(adb) – Android移動開發技術文章_手機開發 Android移動開發教學課程

前言


  本章內容為開發者指南(Dev Guide)/Developing/Tools/adb,這是一篇非常優秀的譯稿,翻譯來自”移動雲_文斌”,歡迎訪問它的博客:”http://blog.csdn.net/caowenbin“,再次感謝”移動雲_文斌” !期待你一起參與翻譯Android的相關資料,聯系我over140@gmail.com。


正文

  Android Debug Bridge


  Android調試橋接器,簡稱adb,是用於管理模擬器或真機狀態的萬能工具,采用瞭客戶端-服務器模型,包括三個部分:


  * 客戶端部分,運行在開發用的電腦上,可以在命令行中運行adb命令來調用該客戶端,像ADB插件和DDMS這樣的Android工具也可以調用adb客戶端。


  * 服務端部分,是運行在開發用電腦上的後臺進程,用於管理客戶端與運行在模擬器或真機的守護進程通信。


  * 守護進程部分,運行於模擬器或手機的後臺。


  當啟動adb客戶端時,客戶端首先檢測adb服務端進程是否運行,如果沒有運行,則啟動服務端。當服務端啟動時,它會綁定到本地的TCP5037端口,並且監聽從adb客戶端發來的命令——所有的adb客戶端都使用5037端口與adb服務端通信。


  接下來服務端與所有正在運行的模擬器或手機連接。它通過掃描5555-5585之間的奇數號端口來搜索模擬器或手機,一旦發現adb守護進程,就通過此端口進行連接。需要說明的是,每一個模擬器或手機使用一對有序的端口,偶數號端口用於控制臺連接,奇數號端口用於adb連接,例如:

<!–

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

–>Emulator 1, console: 5554
Emulator 1, adb: 5555
Emulator 2, console: 5556
Emulator 2, adb: 5557 …

         即如果模擬器與adb在5555端口連接,則其與控制臺的連接就是5554端口。


         當服務端與所有的模擬器建立連接之後,就可以使用adb命令來控制或者訪問瞭。因為服務端管理著連接並且可以接收到從多個adb客戶端的命令,所以可以從任何一個客戶端或腳本來控制任何模擬器或手機設備。


         下文介紹瞭可以用來管理模擬器或手機的這些adb命令。如果是在Eclipse並且安裝瞭ADT插件的環境下開發Android應用程序,就不需要從命令行使用adb瞭,ADT插件已經提供瞭透明的集成。不過,還是可以在調試等需要的時候直接使用adb。


 


  使用adb命令


         從開發用電腦的命令行或腳本文件中使用adb命令的用法是:


      adb [-d|-e|-s <serialNumber>] <command>

         當使用的時候,程序會調用adb客戶端。因為adb客戶端不需要關聯到任何模擬器,所以如果有多個模擬器或手機正在運行,就需要使用-d參數指定要操作的是哪一個,更多關於這些選項參數的使用可以參見Directing Commands to a Specific Emulator/Device Instance。


 


  查詢模擬器或手機狀態


         瞭解adb服務端連接的模擬器或手機可以幫助更好的使用adb命令,這可以通過devices命令列舉出來:


<PRE style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #fafafa; BORDER-TOP: medium none; BORDER-RIGHT: m

You May Also Like