1. 程式人生 > >Android ADB原理及常用命令

Android ADB原理及常用命令

Android除錯橋(ADB, Android Debug Bridge)是一個Android命令列工具,包含在SDK 平臺工具包中,adb可以用於連線Android裝置,或者模擬器,實現對裝置的控制,比如安裝和除錯應用。和Appium一樣,adb也是基於C/S架構實現的。 # 一、ADB執行原理 adb分為三個部分:PC上的adb client,adb server和手機(也可能是PC上的模擬器)上的adb daemon。這是一個**多多連線**的設計。即一臺PC可以連線多個手機,一臺手機也可以連線多個PC。 ![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220132302933-357914074.jpg) 1. **Client本質上就是Shell**,用來發送命令給**Server**。傳送命令時,首先檢測PC上有沒有啟動Server,如果沒有Server,則自動啟動一個Server,繫結 TCP 的 5037 埠,然後將命令傳送到Server,並不關心命令傳送過去以後會怎樣。 2. **ADB Server**:執行在PC上的後臺程式,目的是檢測USB介面何時連線或者移除裝置。ADB Server維護著一個“已連線的裝置的連結串列”,並且為每一個裝置標記了一個狀態:**offline,bootloader,recovery或者online**;Server一直在做一些迴圈和等待,,監聽從 clients 發來的命令,協調client和Server還有daemon之間的通訊。 3. **ADB Daemon**:程式“adbd”作為一個**後臺程序**在Android裝置或模擬器系統中執行。它的作用是連線ADB伺服器,並且為執行在主機上的客戶端提供一些服務; Client和Server之間通過**TCP/IP**通訊,Server偵聽本機的**5037埠**,Client試圖去連線這個埠。基於ADB的工具有 DDMS 、monkey 測試等 - adb原始碼:[https://android.googlesource.com/platform/system/core/+/refs/heads/android10-c2f2-release/adb/](https://android.googlesource.com/platform/system/core/+/refs/heads/android10-c2f2-release/adb/) ```shell netstat -nao | findstr 5037 ``` ![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220132329710-1838273749.jpg) # 二、ADB常用命令 ## 1. adb server啟動和連線 * 啟動 adb server ```shell adb start-server ``` * 停止 adb server ```shell adb kill-server ``` * 指定 adb server 的網