導航:首頁 > 程序命令 > 命令行工具ADB

命令行工具ADB

發布時間:2022-12-12 05:53:32

『壹』 干貨|做App測試,那些必知必會的Adb常用命令

> 本文節選自霍格沃茲測試學院內部教材

為了讓大家更好的學習Adb常用命令,我們先從安裝android環境搭建開始講解哦。

安裝jdk  

###  **  

**

 **  

**

### 因為 Android SDK 是依賴於 java 環境的,所以需要先把 java 的環境搭建好。Java

環境可以參考搭建帖子:https://ceshiren.com/t/topic/4001

安裝Android SDK  

###  

###  

### adb 包含在 Android SDK 平台工具軟體包中。具體的 Android SDK

環境搭建步驟請參考帖子:https://ceshiren.com/t/topic/4001

adb簡介  

adb 全稱為 Android Debug Bridge(Android 調試橋),是 Android SDK 中提供的用於管理 Android

模擬器或真機的工具。

adb 是一種功能強大的命令行工具,可讓 PC 端與 Android 設備進行通信。adb 命令可執行各種設備操作,例如安裝和調試應用。

adb組成  

採用了客戶端-伺服器(C/S)模型,包括三個部分:

  * adb client

  * adb server

  * adb daemon

ADB client:運行在電腦上,可以在命令行中運行 adb 命令來調用該客戶端。Client 本質上就是 Shell,用來發送命令給

Server。發送命令時,首先檢測 PC 上有沒有啟動 Server,如果沒有 Server,則會自動啟動一個,然後將命令發送到 Server。

ADB server:是運行在電腦上的後台進程,用於管理客戶端與運行在模擬器或真機的守護進程通信。

ADB Daemon:守護進程作為一個後台進程在 Android 設備或模擬器系統中運行。它的作用是連接 adb 服務端,並且為運行在主機上的 adb

客戶端提供一些服務。

adb工作原理  

當 adb 客戶端啟動時,客戶端會先檢查 adb 服務端是否啟動。如果沒有,會先啟動服務端進程。adb 服務端在啟動後,會與 5037 埠綁定,並監聽

adb 客戶端發出的命令。

然後,服務端會與所有正在運行的 Android 設備建立連接。它通過掃描 5555 到 5585 之間的奇數號埠查找 Android 設備。服務端一旦發現

Android 設備上的 adb 守護進程在運行,便會與相應的埠建立連接。每個 Android 設備都使用一對埠,偶數埠用於控制台連接,奇數埠用於

adb 連接。

例如:服務端與所有 Android 設備建立連接後,就可以使用 adb 命令來訪問這些設備了。服務端會管理已經建立的連接,並處理來自 adb 客戶端的命令。

啟動adb調試  

### Android 真機可以通過 USB 連接到 adb,連接時需要在設備的系統設置中啟用 USB 調試(位於開發者選項下),啟動 USB

調試後,設備上的 adb 守護進程就會被啟動,adb 服務端才可以和設備建立連接。除了用 USB 的方式連接之外,也可以通過 WLAN

的方式連接,這種方式不做贅述。

  1. 模擬器:不需要手動設置 USB 調試開關,默認是打開的

  2. 真機通過 USB 連接

    * 安裝 Android 手機驅動

    * 設備啟用 USB 調試

adb命令格式  

  * 

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

  * -d:指定當前唯一通過 USB 連接的 Android 設備為命令目標

  * -e:指定當前唯一運行的模擬器為命令目標

  * -s:指定相應 serialNumber 號的設備/模擬器為命令目標

方括弧中的內容是可選的,尖括弧內容的是必填的。方括弧中參數可以指定設備,關於設備的指定有三個參數可以使用。-d、-e 和 -s,其中使用最多的是 -s

參數,在連接多台設備的時候,一般都是使用 -s 加上設備的序列號這種方式去指定具體設備。

adb 可以同時連接多台設備,但是一次只能對一台設備執行命令。所有連接多台設備的時候,是必須要制定設備,命令才可以執行成功的。

查詢設備  

把 Android 設備連接到 adb 服務端後,需要確認設備的連接狀態。這時可以使用查詢命令進行查詢。

 **連接模擬器** (以 mumu 模擬器為例)

  *   * 

    adb connect 127.0.0.1:7555adb devices

  * `adb connect` 命令可以通過 WLAN 的方式連接到模擬器,7555 為 mumu 模擬器的埠

  * `adb devices` 可以查詢設備連接的狀態

Windows 系統中,連接模擬器需要先執行 connect 命令去連接模擬器,127.0.0.1 是本地的 IP

地址,因為模擬器就是安裝在本地的,所以要使用本地的 IP 地址,加上模擬器本身規定的一個埠號。mumu 的埠號是

7555,如果使用的是其他的模擬器的話,需要先去了解它的埠號是什麼,然後再去連接。MacOS 系統中連接模擬器不需要先執行 connect 命令,直接執行

`adb devices` 命令即可。

 **連接真機**

 **  

**

真機直接用 USB 連接到電腦,不需要執行 connect 命令。

直接用 `adb devices`命令查看已經連接的設備列表即可。

    feier@ ~ % adb devices  

    List of devices attached  

    emulator-5554    device

直接命令後,如果設備已經成功連接,那麼設備列表中就會展示已連接設備的信息。以圖中的信息為例:

  * emualotr-5554:設備序列號

  * device:設備連接狀態為成功

安裝卸載應用  

測試過程中,如果需要安裝或者卸載應用,可以直接用 adb 命令來操作。

  * 普通安裝:`adb install <apk路徑>`

  * 覆蓋安裝:`adb install -r <apk路徑>`

  * 完全卸載:`adb uninstall <包名>`

  * 保留配置文件:`adb uninstall -k <包名> `

設備與電腦傳輸文件  

adb 命令支持電腦和 Android 設備之間的文件互傳。比如我們需要提取 Android 設備中的日誌文件到本地,就可以通過 adb 命令的方式來完成。

  * 從電腦上傳文件至設備:`adb push <電腦路徑> <設備路徑>`

  * 從設備復制文件至電腦:`adb pull <設備路徑> <電腦路徑>`

日誌  

列印鏈接設備的 log 信息

  * 屏幕輸出日誌:`adb logcat`

  * 通過標簽過濾:`adb logcat -s 標簽`

  * 顯示時間:`adb logcat -v time`

  * 輸出所有信息:`adb logcat -v long`

  * 輸出日誌到文件:`adb logcat -v time > log.txt`

  * 清除舊日誌信息:`adb logcat -c`

adb shell命令  

使用 adb shell 命令相當於遠程登錄了 Android 系統,可以進入 Android 設備的系統內部。進入系統內部既可以執行一些簡單的 Linux

命令也支持很多特有的命令。

使用 adb shell 命令有兩種方式。

一種是直接在 adb shell 後面跟上命令。

  * 

    adb [-s serial_number] shell <command>

比如:

  *   *   *   *   *   *   *   *   *   *   * 

    feier@ ~ % adb shell .propdevetc...

另一種方式是在設備上啟動互動式 shell

  * 

    adb [-s serial_number] shell

進入 shell 之後,再執行對應的命令。

比如我們進入設備內部,可以查看設備內部的目錄結構和內容

  *   *   *   *   *   *   *   *   *   *   * 

    feier@ ~ % adb shellroot@x86:/ # .propdev...

要退出互動式 shell,可以按 Ctrl + D 鍵或輸入 exit。

 **Android常用測試命令**  

下面整理出了Android常用的一些測試命令及用法。  

設備截圖/錄屏  

在測試過程中,如果需要截圖或者是錄屏,也可以直接使用 adb 命令來完成。

  * 截圖:`adb shell screencap <設備路徑>`

  * 錄屏:`adb shell screenrecord <設備路徑>`

調用Activity管理器  

在 adb shell 中,可以使用 Activity 管理器 (am) 工具發出命令以執行各種系統操作,如啟動

Activity、強行停止進程、修改設備屏幕屬性,等等。

在測試過程中,如果需要啟動 app 或者強制關閉 app,可以通過 adb 命令來實現。

  * 啟動應用:`adb shell am start -n <包名>/<Activity名>`

  * 強制停止應用:`adb shell am force-stop <包名>`

調用軟體包管理器  

在 adb shell 中,可以使用軟體包管理器 (pm) 工具發出命令,以對設備上安裝的應用軟體包執行操作和查詢。

如果需要查詢設備里都安裝了什麼應用,就可以使用 adb shell pm list 來查看,還可以加上不同的參數去查看不同類型的應用。而且也可以通過 adb

命令來清除應用相關的數據。

  * 顯示設備中安裝的所有應用:`adb shell pm list packages`

  * 只顯示系統應用:`adb shell pm list packages -s`

  * 只顯示第三方應用:`adb shell pm list packages -3`

  * 刪除與軟體包關聯的所有數據:`adb shell pm clear <包名>`

adb shell mpsys  

mpsys 是一種在 Android 設備上運行的工具,可提供有關系統服務的信息。可以使用 adb 從命令行調用

mpsys,獲取在連接的設備上運行的所有系統服務的診斷輸出。

比如在測試中,如果需要通過 adb 命令啟動 app,則需要知道 app 的包名和入口的 Activity

名。這個時候,就可以通過下面這條命令獲取到這兩個信息。

這個場景,需要先把要獲取信息的應用啟動,讓它在前台運行,然後執行命令

`adb shell mpsys activity | grep mFocusedActivity`

  *   *   * 

    feier@ ~ % adb shell mpsys activity | grep mFocusedActivity  mFocusedActivity: ActivityRecord{9dae968 u0 com.xueqiu.android/.common.MainActivity t139}  

下方的日誌中就會展示出來當前的包名和 Activity 名稱。

  * 包名:`com.xueqiu.android`

  * Activity 名:`.common.MainActivity`

adb shell mpsys  

adb 命令還支持直接獲取應用的頁面信息。這個頁面信息包含了頁面中元素的屬性,可以方便做自動化測試的時候去定位元素。獲取到的頁面布局會輸出到一個 xml

文件中。

  * 當前窗口的 UI 布局簡化信息:`adb shell uiautomator mp --compressed`

  *   * 

    feier@ ~ % adb shell uiautomator mp --compressedUI hierchary mped to: /sdcard/window_mp.xml

不指定輸出文件路徑時,mp 下來的文件默認存儲路徑為 `/sdcard/window_mp.xml`

可以通過 adb pull 命令把文件傳輸到電腦中,然後用 uiautomatorviewer 工具打開查看布局。

  * 指定輸出文件路徑:`adb shell uiautomator mp file <設備路徑>`

adb常用命令就先講到這里啦,下期我們分享App常見bug解析。大家還想看什麼內容的文章也可以留言告訴我們哦!

 ** _ 

來霍格沃茲測試開發學社,學習更多軟體測試與測試開發的進階技術,知識點涵蓋web自動化測試 app自動化測試、介面自動化測試、測試框架、性能測試、安全測試、持續集成/持續交付/DevOps,測試左移、測試右移、精準測試、測試平台開發、測試管理等內容,課程技術涵蓋bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相關技術,全面提升測試開發工程師的技術實力

QQ交流群:484590337

公眾號 TestingStudio

視頻資料領取:https://qrcode.testing-studio.com/f?from=jianshu&url=https://ceshiren.com/t/topic/15844

點擊查看更多信息

『貳』 電腦怎麼使用adb

先打開winows菜單輸入cmd命令,然後點確定並進入命令模式,之後輸入命令D:,再回車輸入cd,緊接著選你的sdk路徑並復制路徑,緊接點擊cmd和選擇編輯、粘貼並將復制的路徑粘貼到命令行回車,最後打開adb即可。ADB就是起到調試橋的作用,用這個工具可以直接操作管理android模擬器或者真實的andriod設備(如手機)。它的主要功能有運行設備的shell(命令行);管理模擬器或設備的埠映射等。
更多關於電腦怎麼使用adb,進入:https://www.abcgonglue.com/ask/9c68041616094533.html?zd查看更多內容

『叄』 ADB是什麼意思

adb的全名是Android調試橋,它充當調試橋。Adb是Android SDK中的工具,使用此工具,您可以直接操作和管理Android模擬器或真實的Android設備(例如G1手機)。

Android系統的adb的全名是Android Debug Bridge,在Android開發環境中,abd是我們經常用於開發的調試工具,使用adb工具的前提是打開手機上的USB調試,然後通過數據線連接到計算機。

android adb主要功能有:

1、運行設備的shell(命令行)。

2、管理模擬器或設備的埠映射。

3、計算機和設備之間上傳/下載文件。

4、將本地apk軟體安裝到模擬器或android設備。

『肆』 深入扒一扒安卓中的ADB命令

做過安卓開發的朋友或多或少都遇到過讓人厭惡的類似於「could not read ok from ADB Server」的錯誤。產生這個錯誤的原因可能多種多樣,每次遇到問題的時候,可能大部分人都和我一樣,去google一下這個問題別人是如何解決的。假設一下子找到解決了,就放過,下次在遇到的時候同樣的再去google一下就好了。但是,這樣不是正確的治學態度,為此孔祥子決定去扒一扒!

如下,是我在發現Android studio連接不上手機的時候,嘗試去啟動一個adb server,但是失敗了。

<pre>

根據問題提示,5037埠被佔用了。下面就來看看到底是哪一個埠被佔用。

<pre>

C:Userszxy>netstat -ano | findstr "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 7912
TCP 127.0.0.1:5037 127.0.0.1:50025 ESTABLISHED 7912
TCP 127.0.0.1:5037 127.0.0.1:56501 ESTABLISHED 7912
TCP 127.0.0.1:50025 127.0.0.1:5037 ESTABLISHED 7120
TCP 127.0.0.1:56501 127.0.0.1:5037 ESTABLISHED 1264
</pre>

果然,5037被進程id為7912的進程佔用了。順藤摸瓜,看看到底什麼進程搗的鬼,
<pre>
C:Userszxy>tasklist | findstr "7912"
romaster_daemon.exe 7912 Console 1 3,024 K
</pre>

看到了嗎,是這個進程romaster_daemon.exe ,好了,到此為止找出來是哪一個程序了,下面打開任務管理器,kill掉就可以了。

Android adb(Android Debug Bridge) 是一個通用命令行工具,其允許您與模擬器實例或連接的 Android 設備進行通信。它可為各種設備操作提供便利,如安裝和調試應用,並提供對 Unix shell(可用來在模擬器或連接的設備上運行各種命令)的訪問。

該工具作為一個客戶端-伺服器程序,包括三個組件:
客戶端(adb client) ,該組件發送命令。客戶端在開發計算機上運行。可以通過發出 adb 命令從命令行終端調用客戶端。

這里說的客戶端,其實包含很廣泛。例如我們在命令行窗口運行一個adb命令,其實就是一個adb客戶端。還有,我們在android studio中通過點擊運行或者調試按鈕,app就安裝到手機裡面了,這個也可以看做是adb客戶端。對應的後台進程名稱 根據運行的程序的不同而不同。

後台程序 ,該組件在設備上運行命令。後台程序在每個模擬器或設備實例上作為後台進程運行。
也就說,開發者測試手機或者模擬器上運行的後台進程,負責接收命令,並運行命令。這個名字對應應該是adbd

具體如下

服務端 ,該組件管理客戶端和後台程序之間的通信。伺服器在開發計算機上作為後台進程運行。
您可以在 android_sdk/platform-tools/ 中找到 adb 工具
這個是在開發者自己的電腦上,運行的旨在管理adb客戶端和手機端的後台程序通信的一個管理程序。

具體流程如下

啟動一個 adb 客戶端時,此客戶端首先檢查是否有已運行的 adb 伺服器進程。如果沒有,它將啟動伺服器進程。當伺服器啟動時,它與本地 TCP 埠 5037 綁定,並偵聽從 adb 客戶端發送的命令—所有 adb 客戶端均使用埠 5037 與 adb 伺服器通信。

然後,伺服器設置與所有運行的模擬器/設備實例的連接。它通過掃描 5555 到 5585 之間(模擬器/設備使用的范圍)的奇數號埠查找模擬器/設備實例。伺服器一旦發現 adb 後台程序,它將設置與該埠的連接。請注意,每個模擬器/設備實例將獲取一對按順序排列的埠 , 這些埠包括用於控制台連接的偶數號埠和用於 adb 連接的奇數號埠。例如:

模擬器 1,控制台:5554
模擬器 1,adb:5555
模擬器 2,控制台:5556
模擬器 2,adb:5557
以此類推...

如上所示,在埠 5555 與 adb 連接的模擬器實例與偵聽埠 5554 的控制台的實例相同。

注意 ,這里所說的埠都是開發者電腦上的埠。

我的理解,偶數埠用來實際的數據傳輸。奇數埠用來發送控制命令和連接用的,例如調試。(如果不正確請指出)

當伺服器已設置與所有模擬器實例的連接後,您可以使用 adb 命令訪問這些實例。由於伺服器管理與模擬器/設備實例的連接,並處理來自多個 adb 客戶端的命令,因此,您可以從任意客戶端(或從某個腳本)控制任意模擬器/設備實例。

解讀一下
注意:上圖中的標識為黃色的區域的進程為後台守護進程。
Adb Server運行在開發者電腦上,任何adb client都要等待這個運行起來之後才能做後續的工作。電腦上的android studio或者eclipse等一些adb client和它交互。一旦adb client的命令被發送到手機中,並且被手機中的adbd接收之後,才能和手機交互。

然後在看一張更詳細的圖

這個圖,詳細的解釋了我運行adb命令中的詳細細節。

關於adb的詳細命令可以參考: http://adbshell.com/commands 這個網站詳。

看了之後,對於前面的5037被佔用,導致無法連接手機的原因,我想,我們應該有了更深層次的理解。同時對於其他情況的不能連接手機,我們下次就會有了自己的思考了。

『伍』 [Android] 命令行工具adb

adb:Android Debug Bridge (安卓調試橋)
是一個命令行工具,用於電腦端和模擬器或者是設備之間的交互。

它是一個C/S架構程序,由3部分組成:

我們來看看adb是如何工作的。

時序圖:

這里講的是先安裝了android studio,然後使用adb的步驟。

這里以MAC系統添加為例

apt-get install adb

如果安裝某個apk不成功,可以使用adb安裝下,就可以看到具體不成功的錯誤。
adb install xxx.apk

adb devices

adb shell pm list packages

adb shell mpsys battery

adb exec-out screencap -p > test.png

參考:
https://developer.android.google.cn/studio/run/device
https://anqz.github.io/2015-05-21-Intro-adb

『陸』 什麼是adb命令行

adb命令行是androidsdk里的一個工具,用這個工具可以直接操作管理android模擬器或者真實的android設備(如G1手機),它的主要功能有:

1、運行設備的shell(命令行)

2、管理模擬器或設備的埠映射

3、計算機和設備之間上傳/下載文件

4、將本地apk軟體安裝至模擬器或android設備

ADB是一個客戶端-伺服器端程序,其中客戶端是你用來操作的電腦,伺服器端是android設備。

(6)命令行工具ADB擴展閱讀:

常用命令

1. 查看設備 *adbdevices

這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示

2. 安裝軟體

*adbinstall <apk文件路徑>

這個命令將指定的apk文件安裝到設備上

3. 卸載軟體

*adbuninstall <軟體名>

*adbuninstall -k <軟體名>

如果加 -k 參數,為卸載軟體但是保留配置和緩存文件。

4. 登錄設備shell

*adbshell

*adbshell <command命令>

這個命令將登錄設備的shell。

後面加<command命令>將是直接運行設備命令,相當於執行遠程命令。

5. 從電腦上發送文件到設備

*adbpush <本地路徑> <遠程路徑>

用push命令可以把本機電腦上的文件或者文件夾復制到設備(手機)。

『柒』 ADB工作原理

Android 調試橋 (adb) 是一種功能多樣的命令行工具。它可以讓你與設備進行通信,adb 命令可用於執行各種設備操作(例如安裝和調試應用),並提供對 Unix shell(可用來在設備上運行各種命令)的訪問許可權,它是一種C/S架構的程序,包括以下三個組件:

客戶端: 主要用於發送命令,adb client在開發機器上運行,你可以通過發出 adb 命令從命令行終端調用客戶端,它主要的工作是:解析像:push、shell、install等命令的參數,做必要預處理,然後轉移為指令或數據,發送給adb server。

守護程序 (adbd): 是運行在Android設備(真機/模擬器)後台的一個進程,它是由init進程啟動的,並且系統一開機就已經啟動,它的主要作用是處理來自 adb server的命令行請求,然後獲取對應Android設備的信息,再將結果返回給adb server。

伺服器 (adb server): 是運行在PC上的一個後台進程,它有兩個作用:

當啟動某個 adb 客戶端時,該客戶端會先檢查是否有 adb 伺服器進程正在運行,如果沒有,它會先啟動伺服器進程,伺服器在啟動後會與綁定和監聽PC上的 TCP 埠 5037 ,並處理 adb 客戶端發出的命令(所有 adb 客戶端通信均通過與PC上埠 5037 建立TCP連接通信)如下圖:

然後,adb server會與所有正在運行的設備建立連接,TCP連接方式下,它通過掃描 5555 到 5585 之間(該范圍供前 16 個模擬器使用)的奇數號埠查找模擬器,伺服器一旦發現 adb 守護程序 (adbd),便會與相應的埠建立連接,請注意,每個模擬器都使用一對按順序排列的埠(用於控制台連接的偶數號埠和用於 adb 連接的奇數號埠)

通過查看埠,可以看到adb server已在 5037 埠監聽 'LISTENING'

Client通過發送指令的方式,給到adb server端,adb server端進行判定,是否需要轉發到adbd進行處理。

『捌』 常用的adb命令

Android Debug Bridge,我們一般簡稱為adb,主要存放在sdk安裝目錄下的platform-tools文件夾中,它是一個非常強大的命令行工具,通過這個工具你能夠與你的android設備進行交互,被稱為Android 調試橋。
它是一種客戶端-伺服器程序,包括以下三個組件:

adb shell 命令
adb shell 則是調用的 Android 系統中的命令,這些 Android 特有的命令都放在了 Android 設備的 system/bin 目錄下

monkey命令

當您啟動某個 adb 客戶端時,該客戶端會先檢查是否有 adb 伺服器進程正在運行。如果沒有,它會啟動伺服器進程。伺服器在啟動後會與本地 TCP 埠 5037 綁定,並監聽 adb 客戶端發出的命令 - 所有 adb 客戶端均通過埠 5037 與 adb 伺服器通信。

然後,伺服器會與所有正在運行的設備建立連接。它通過掃描 5555 到 5585 之間(該范圍供前 16 個模擬器使用)的奇數號埠查找模擬器。伺服器一旦發現 adb 守護程序 (adbd),便會與相應的埠建立連接。請注意,每個模擬器都使用一對按順序排列的埠 - 用於控制台連接的偶數號埠和用於 adb 連接的奇數號埠。例如:

模擬器 1,控制台:5554
模擬器 1,adb:5555
模擬器 2,控制台:5556
模擬器 2,adb:5557
依此類推

如上所示,在埠 5555 處與 adb 連接的模擬器與控制台監聽埠為 5554 的模擬器是同一個。

伺服器與所有設備均建立連接後,您便可以使用 adb 命令訪問這些設備。由於伺服器管理與設備的連接,並處理來自多個 adb 客戶端的命令,因此您可以從任意客戶端(或從某個腳本)控制任意設備。

要在通過 USB 連接的設備上使用 adb,您必須在設備的系統設置中啟用 USB 調試 (位於 開發者選項 下)。

在搭載 Android 4.2 及更高版本的設備上,「開發者選項」屏幕默認情況下處於隱藏狀態。如需將其顯示出來,請依次轉到 設置 > 關於手機 ,然後點按 版本號 七次。返回上一屏幕,在底部可以找到 開發者選項
在某些設備上,「開發者選項」屏幕所在的位置或名稱可能有所不同。
執行 adb devices 驗證設備是否已連接。如果已連接,您將看到設備名稱以「設備」形式列出。

一般情況下,adb 通過 USB 與設備進行通信,但您也可以在通過 USB 完成一些初始設置後,通過 WLAN 使用 adb,如下所述。

如果 adb 連接斷開:

如果有多個設備在運行,您在發出 adb 命令時必須指定目標設備。為此,請使用 devices 命令獲取目標設備的序列號。獲得序列號後,請結合使用 -s 選項與 adb 命令來指定序列號。如果您要發出很多 adb 命令,可以將 $ANDROID_SERIAL 環境變數設為包含序列號。如果您同時使用 -s 和 $ANDROID_SERIAL , -s 會替換 $ANDROID_SERIAL 。

$ adb -s emulator-5555 install helloWorld.apk
注意 :如果您在多個設備可用時發出命令但未指定目標設備,adb 會生成錯誤。
如果有多個可用設備,但只有一個是模擬器,請使用 -e 選項將命令發送至該模擬器。同樣,如果有多個設備,但只連接了一個硬體設備,請使用 -d 選項將命令發送至該硬體設備。

使用 forward 命令設置任意埠轉發,將特定主機埠上的請求轉發到設備上的其他埠。以下示例設置了主機埠 6100 到設備埠 7100 的轉發:

>adb forward tcp:6100 tcp:7100

您可以使用 pull 和 push 命令將文件復制到設備或從設備復制文件。與 install 命令(僅將 APK 文件復制到特定位置)不同,使用 pull 和 push 命令可將任意目錄和文件復制到設備中的任何位置。

如需從設備中復制某個文件或目錄(及其子目錄),請使用以下命令:

adb pull remote local
如需將某個文件或目錄(及其子目錄)復制到設備,請使用以下命令:

adb push loca remote

adb kill-server

您可以使用 shell 命令通過 adb 發出設備命令,也可以啟動互動式 shell。如需發出單個命令,請使用 shell 命令,如下所示:

adb [-d |-e | -s shell shell_command

在 adb shell 中,您可以使用 Activity 管理器 ( am ) 工具發出命令以執行各種系統操作,如啟動 Activity、強行停止進程、廣播 intent、修改設備屏幕屬性,等等。在 shell 中,相應的語法為:
您也可以直接從 adb 發出 Activity 管理器命令,無需進入遠程 shell。例如:

adb shell am start -a android.intent.action.VIEW

『玖』 技術分享 | App測試時常用的adb命令你都掌握了哪些呢

adb 全稱為 Android Debug Bridge(Android 調試橋),是 Android SDK 中提供的用於管理 Android 模擬器或真機的工具。

adb 是一種功能強大的命令行工具,可讓 PC 端與 Android 設備進行通信。adb 命令可執行各種設備操作,例如安裝和調試應用。

採用了客戶端-伺服器(C/S)模型,包括三個部分:

當 adb 客戶端啟動時,客戶端會先檢查 adb 服務端是否啟動。如果沒有,會先啟動服務端進程。adb 服務端在啟動後,會與 5037 埠綁定,並監聽 adb 客戶端發出的命令。

然後服務端會與所有正在運行的 Android 設備建立連接。它通過掃描 5555 到 5585 之間的奇數號埠查找 Android 設備。服務端一旦發現 Android 設備上的 adb 守護進程在運行,便會與相應的埠建立連接。每個 Android 設備都使用一對埠,偶數埠用於控制台連接,奇數埠用於 adb 連接。

服務端與所有 Android 設備建立連接後,就可以使用 adb 命令來訪問這些設備了。服務端會管理已經建立的連接,並處理來自 adb 客戶端的命令。

Android 真機可以通過 USB 連接到 adb,連接時需要在設備的系統設置中啟用 USB 調試(位於開發者選項下),啟動 USB 調試後,設備上的 adb 守護進程就會被啟動,adb 服務端才可以和設備建立連接。除了用 USB 的方式連接之外,也可以通過 WLAN 的方式連接,這種方式不做贅述。

方括弧中的內容是可選的,尖括弧內容的是必填的。方括弧中參數可以指定設備,關於設備的指定有三個參數可以使用。-d、-e 和 -s,其中使用最多的是 -s 參數,在連接多台設備的時候,一般都是使用 -s 加上設備的序列號這種方式去指定具體設備。

adb 可以同時連接多台設備,但是一次只能對一台設備執行命令。所有連接多台設備的時候,是必須要制定設備,命令才可以執行成功的。

把 Android 設備連接到 adb 服務端後,需要確認設備的連接狀態。這時可以使用查詢命令進行查詢。

Windows 系統中,連接模擬器需要先執行 connect 命令去連接模擬器,127.0.0.1 是本地的 IP 地址,因為模擬器就是安裝在本地的,所以要使用本地的 IP 地址,加上模擬器本身規定的一個埠號。mumu 的埠號是 7555,如果使用的是其他的模擬器的話,需要先去了解它的埠號是什麼,然後再去連接。MacOS 系統中連接模擬器不需要先執行 connect 命令,直接執行 adb kill-server && adb devices 命令即可。

真機直接用 USB 連接到電腦,不需要執行 connect 命令。

直接用 adb devices 命令查看已經連接的設備列表即可。

直接命令後,如果設備已經成功連接,那麼設備列表中就會展示已連接設備的信息。

測試過程中,如果需要安裝或者卸載應用,可以直接用 adb 命令來操作。

adb 命令支持電腦和 Android 設備之間的文件互傳。比如要提取 Android 設備中的日誌文件到本地,就可以通過 adb 命令的方式來完成。

列印鏈接設備的 log 信息

使用 adb shell 命令相當於遠程登錄了 Android 系統,可以進入 Android 設備的系統內部。進入系統內部既可以執行一些簡單的 Linux 命令也支持很多特有的命令。

使用 adb shell 命令有兩種方式。

一種是直接在 adb shell 後面跟上命令。

比如:

另一種方式是在設備上啟動互動式 shell

進入 shell 之後,再執行對應的命令。

比如進入設備內部,可以查看設備內部的目錄結構和內容

要退出互動式 shell,可以按 Ctrl + D 鍵或輸入 exit。

在測試過程中,如果需要截圖或者是錄屏,也可以直接使用 adb 命令來完成。

在 adb shell 中,可以使用 Activity 管理器 (am) 工具發出命令以執行各種系統操作,如啟動 Activity、強行停止進程、修改設備屏幕屬性,等等。

在測試過程中,如果需要啟動 app 或者強制關閉 app,可以通過 adb 命令來實現。

在 adb shell 中,可以使用軟體包管理器 (pm) 工具發出命令,以對設備上安裝的應用軟體包執行操作和查詢。

如果需要查詢設備里都安裝了什麼應用,就可以使用 adb shell pm list 來查看,還可以加上不同的參數去查看不同類型的應用。而且也可以通過 adb 命令來清除應用相關的數據。

mpsys 是一種在 Android 設備上運行的工具,可提供有關系統服務的信息。可以使用 adb 從命令行調用 mpsys,獲取在連接的設備上運行的所有系統服務的診斷輸出。

比如在測試中,如果需要通過 adb 命令啟動 app,則需要知道 app 的包名和入口的 Activity 名。這個時候,就可以通過下面這條命令獲取到這兩個信息。

這個場景,需要先把要獲取信息的應用啟動,讓它在前台運行,然後執行命令

adb shell mpsys activity | grep mFocusedActivity

下方的日誌中就會展示出來當前的包名和 Activity 名稱。

adb 命令還支持直接獲取應用的頁面信息。這個頁面信息包含了頁面中元素的屬性,可以方便做自動化測試的時候去定位元素。獲取到的頁面布局會輸出到一個 xml 文件中。

不指定輸出文件路徑時,mp 下來的文件默認存儲路徑為 /sdcard/window_mp.xml

可以通過 adb pull 命令把文件傳輸到電腦中,然後用 uiautomatorviewer 工具打開查看布局。

你好呀,喜歡這篇文章的話煩請點個「贊」哦!萬分感謝~( ) PS:有問題可以聯系我們哦~v ceshiren001

『拾』 adb 簡介及常用命令

adb全稱(Android Debug Bridge),它是一個通用命令行工具,它可以做為Android與PC端連接的一個橋梁,所以adb又稱為Android調試橋,用戶可以通過adb在電腦上對Android設備進行全面操作,比如安裝和調試應用,操作文件的傳輸等。

首先用戶啟動一個adb客戶端時,此客戶端先檢查是否存在已運行的adb伺服器進程。如果沒有,它將啟動一個伺服器進程,當伺服器進程啟動時,adb伺服器就會綁定本地的TCP埠5037並監聽adb客戶端發來的命令,使用的adb客戶端都使用埠5037與adb伺服器進行對話的。接著伺服器將所有運行中的模擬器或設備實例進行連接。它通過掃描所有5555到5585范圍內的奇數埠來定位所有的模擬器或設備。一旦伺服器找到了adb守護程序,將建立一個到該埠的連接。
客戶端發送的命令分為三種:

輸出狀態:

adb install安裝原理過程:

Android系統的日誌分為兩部分:底層的Linux內核日誌輸出到/proc/kmsg, Android日誌輸出到/dev/log。Android的Log等級通常有六類,按照日誌級別由低到高分別是:Verbose、Debug、Info、Warning、Error、Assert。

閱讀全文

與命令行工具ADB相關的資料

熱點內容
mdk編譯後目標文件 瀏覽:613
老人動手解壓 瀏覽:720
小米sd卡解壓 瀏覽:996
程序員那麼可愛陸漓替老袁說情 瀏覽:28
當女程序員遇見問題 瀏覽:746
32位編譯器什麼意思 瀏覽:355
php多參數函數 瀏覽:17
通達信板塊動作源碼 瀏覽:751
matlab完全自學一本通pdf 瀏覽:250
php源碼本地安裝 瀏覽:961
伺服器怎麼用不會斷電 瀏覽:301
主從伺服器有什麼用 瀏覽:213
jstlpdf 瀏覽:15
安卓原神在哪個app下載 瀏覽:808
單片機編程技術什麼意思 瀏覽:104
e點課堂源碼 瀏覽:46
免費打擊墊app哪個好 瀏覽:532
程序員必裝的6款軟體 瀏覽:750
基於單片機的遙控器設計 瀏覽:521
安卓如何取消圓圖標 瀏覽:11