首頁>Club>
5
回覆列表
  • 1 # 江湖一筒

    Android Debug Bridge(adb)是一個讓你跟模擬器或者android裝置通訊的多功能命令。它是一個包含三個元件的client-server程式:

    1、執行在你開發機器上的adb client,你能從shell中透過adb命令呼叫一個adb client,另外ADT外掛和DDMS都是使用了adb client功能。

    2、執行在你開發機器上的一個adb server,該adb server作用在於維護adb client和adb daemon之間的通訊。

    3、執行在模擬器或者android裝置後臺的adb daemon。

    adb tool在<sdk>/platform-tools/目錄下。

    當你啟動一個adb client的時候,adb client會去檢查開發機器上是否已經運行了adb server程序,如果沒有,它會去啟動adb server。當adb server啟動後,adb server繫結本地 TCP5037埠,然後監聽從adb client發過來的adb命令。所有的adb client都是透過5037埠跟adb server通訊。

    adb server要跟所有執行在開發機器上的模擬器或者android裝置建立連線。它透過掃描5555-5585之間的所有奇數埠查詢模擬器或者android裝置。adb server掃描到每個adb daemon都會建立跟其的相關埠的繫結。既然每個模擬器或者android裝置都獲取到一對有序的埠(一個偶數console連線埠和一個奇數adb連線埠)如下:Emulator1, console:5554 Emulator1, adb:5555;Emulator2, console:5556 Emulator2, adb:5557;依此類推。同樣的,如果一個模擬器連線adb的商品為5555,那麼連線console的埠就是5554。

    當adb server跟模擬器或者android裝置連線成功後,你就可以透過adb命令(或者指令碼)去訪問該模擬器或android裝置。

    注意:連線一個android4.2.2以上的android裝置的時候,系統會透過一個對話方塊提示詢問是否接受一個RSA金鑰允許透過開發機器的除錯。這種安全機制保護使用者裝置,讓adb命令不能執行。除非你能解鎖該android裝置並確認詢問對話方塊,當然,這在adb1.0.31以上的版本(SDK Platform-tools16.0.1以上)是可以實現的。

    你可以在開發機器上的命令列或者指令碼執行adb命令。如:

    adb [-d|-e|-s <serialNumber>] <command>如果你的開發機器上只運行了一個模擬器或者android裝置,那麼adb命令將預設傳送到該模擬器或者android裝置上執行。如果運行了多個模擬器或者android裝置,那麼你要使用-d,-e或者-s引數去指定執行adb命令的模擬器或者android裝置。以下是相關引數或命令的用法:

    -d :將adb命令指向唯一連線到開發機器上的android裝置,如果開發機器上連線了多個android裝置將返回提示錯誤。

    -e :將adb命令指向唯一的模擬器。

    -s <serialNumber>:將adb命令指向具體的android裝置(如:emulator-5556)

    devices :查詢所有連線到開發機器上的android裝置。

    help :幫助命令。

    version : 版本查詢。

    logcat [option] [filter-specs] :列印log資訊。

    jdwp :有效的JDWP程序列表。

    install <path-to-apk> : 安裝apk到指定的裝置。

    pull <remote> <local> :複製檔案到開發機器上的指定位置。

    push <local> <remote> :複製檔案到指定的android裝置

  • 中秋節和大豐收的關聯?
  • word文件怎麼設定圖片有倒影效果?