『與善仁』Appium基礎 — 3、ADB命令介紹

1、ADB命令簡介

ADB全名Andorid Debug Bridge,是一個Debug調試工具,用這個工具可以直接操作管理Android模擬器或者真實的android設備。

  • 開發Android應用的程式設計師必須要掌握。
  • 測試工程師在做Android應用測試時,會使用到。

ADB是Android SDK里的一個是一個C/S架構的命令程式(platform-tools文件夾中),其中客戶端是我們操作的電腦,伺服器端是Android設備。ADB就是起到調試橋的作用,通過這個橋我們可以管理設備或手機模擬器的狀態,還可以進行Android手機的很多操作,如安裝軟體、系統升級、運行shell命令等等。

換句話說,ADB就是連接Android手機與PC端的橋樑,可以讓用戶在電腦上通過終端ADB命令操作Android手機/模擬器。

2、ADB命令運行原理

ADB是一個標準的C/S結構的工具,是來連接開發電腦(客戶端)和調試手機(服務端)的工具。

包含如下三個部分:

  1. Client端:運行在開發機器中,也就是你的開發PC機,用來發送ADB命令。
  2. Daemon守護進程:運行在調試設備中,可以是手機,也可以是模擬器,用來接收並執行ADB命令。
  3. Server端:作為一個後台進程運行在開發機器中(PC機)。 用來管理PC中的Client端和手機Daemon守護進程之間的通訊。

如下圖所示:

image

說明:

當你執行一條ADB命令的時候,ADB客戶端會先接收你輸入的命令,然後ADB客戶端會把命令發送給ADB伺服器,ADB伺服器再把命令發送給手機中的Daemon(守護進程)。

Daemon負責技術Server端發送過來的命令,並且在手機中執行該命令。

我們可以看到上圖中的箭頭都是雙向的。

也就是說Daemon執行完的結果會返回給Server端,Server端再傳遞給Client端。

Client端再給終端程式顯示。

總結:

  • Android手機必須和電腦建立連接。
  • Windows系統命令行終端中執行的命令,會發送到Andorid設備上執行。

3、通過ADB命令連接Android模擬器

中國有很多款Android模擬器,比如逍遙、雷電、MUMU、夜神等,我們以逍遙模擬器為例。

模擬器進行App自動化測試時,需要使用ADB來連接模擬器,鏈接後才能找到該手機。

具體操作步驟:

(1)安裝Android模擬器

在Windows環境下安裝逍遙模擬器,執行XYAZ-Setup.exe默認安裝即可。

(2)ADB命令連接Android模擬器

連接逍遙模擬器,21503為逍遙模擬器的默認埠號。

1)打開命令行窗口,進入安裝目錄下...\Microvirt\MEmu目錄。

2)執行連接命令adb connect 127.0.0.1:21503

image

注意1:如果不進入到...\Microvirt\MEmu目錄中執行adb鏈接命令,會提示如下:

image

提示:開始的時候會出現這種情況,之後就沒有這種問題了。打開命令行就可以直接執行ADB命令了。

注意2:ADB鏈接Android模擬器的時候,模擬器要開啟,否則出現如下提示:

image

3)執行查看所有連接的模擬器命令adb devices

image

如圖所示:已經連上模擬器。

說著直接輸入adb,出現如下,也是配置成功了。

C:\Users\L>adb
Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as F:\DevInstall\envs\android-sdk-windows\platform-tools\adb.exe

global options:
 -a         listen on all network interfaces, not just localhost
 -d         use USB device (error if multiple devices connected)
 -e         use TCP/IP device (error if multiple TCP/IP devices available)
 -s SERIAL  use device with given serial (overrides $ANDROID_SERIAL)
 -t ID      use device with given transport id
 -H         name of adb server host [default=localhost]
 -P         port of adb server [default=5037]
 -L SOCKET  listen on given socket for adb server [default=tcp:localhost:5037]

 ...省略後面內容...

(3)常用Android模擬器埠號

鏈接Android模擬器命令adb connect

  • 逍遙模擬器:adb connect 127.0.0.1:21503
  • 夜神模擬器:adb connect 127.0.0.1:62001
  • 雷電模擬器:adb connect 127.0.0.1:5555
  • MuMu模擬器:adb connect 127.0.0.1:7555
  • 天天模擬器:adb connect 127.0.0.1:6555
  • 海馬模擬器:adb connect 127.0.0.1:26944