Android 常用ADB命令總結

針對安卓的移動端測試,adb是不可避免需要接觸的,熟練掌握相關常用的adb命令,會給測試帶來很大便利,同時也可以將很多adb命令用于自動化腳本中。

ADB介紹

adb 其實就是 Android Debug Bridge, Android 調試橋的縮寫,adb 是一個 C/S 架構的命令行工具,主要由 3 部分組成:

1. 運行在 PC 端的 Client

可以通過它對 Android 應用進行安裝、卸載及調試
Eclipse 中的 ADT、SDK Tools 目錄下的 DDMS、Monitor 等工具,都是同樣地用到了 adb 的功能來與 Android 設備進行交互。PC 端的手機助手,諸如 360 手機助手、豌豆莢、應用寶等,其除了安裝第三方應用方便,其他的功能,基本上都可以通過 adb 命令去完成,這里建議測試人員盡量不要在電腦上安裝這類手機助手,因為其自帶的 adb 程序可能會與 Android SDK 下的 adb 程序產生沖突,5037 端口被占用,導致使用 adb 命令時無法連接到設備

2. 運行在 PC 端的 Service

其管理客戶端到 Android 設備上 adb 后臺進程的連接adb 服務啟動后,Windows 可以在任務管理器中找到 adb.exe 這個進程

3. 運行在 Android 設備上的 adb 后臺進程

執行adb shell ps | grep adbd ,可以找到該后臺進程,windows 請使用 findstr 替代 grep

接下來我將 adb 命令分為三部分進行介紹: adb 命令、adb shell 命令、linux 命令

adb 命令


在開發或者測試的過程中,我們可以通過 adb 來管理多臺設備,其一般的格式為:

adb [-e | -d | -s <設備序列號>] <子命令>

在配好環境變量的前提下,在命令窗口當中輸入 adb help 或者直接輸入 adb ,將會列出所有的選項說明及子命令。

這里介紹一些里面常用的命令:

  • adb devices , 獲取設備列表及設備狀態
C:\Users\Think>adb devices
List of devices attached
44c826a0 device 
  • adb get-state , 獲取設備的狀態
C:\Users\Think>adb get-state device
device

設備的狀態有 3 種,device , offline , unknown
device:設備正常連接
offline:連接出現異常,設備無響應
unknown:沒有連接設備

  • adb kill-server , adb start-server , 結束 adb 服務, 啟動 adb 服務,通常兩個命令一起用。
    一般在連接出現異常,使用 adb devices 未正常列出設備, 設備狀態異常時使用 kill-server,然后運行 start-server 進行重啟服務
  • adb bugreport , 打印dumpsys、dumpstate、logcat的輸出,也是用于分析錯誤,通常這里的輸入會比較多,建議重定向到一個文件中查看
adb bugreport > d:\bugreport.log
  • adb install , 安裝應用,覆蓋安裝是使用 -r 選項
  • adb uninstall , 卸載應用,后面跟的參數是應用的包名,請區別于 apk 文件名
  • adb pull , 將 Android 設備上的文件或者文件夾復制到本地
    例如復制 Sdcard 下的 pull.txt 文件到 D 盤:
adb pull sdcard/pull.txt d:\

注意權限,復制系統權限的目錄下的文件,需要 root ,并且一般的 Android 機 root 之后并不能使用命令去復制,而需要在手機上使用類似于 RE 的文件瀏覽器,先對系統的文件系統進行掛載為可讀寫后,才能在手機上復制移動系統文件

  • adb push , 推送本地文件至 Android 設備
    例如推送 D 盤下的 push.txt 至 Sdcard:
adb push d:\push.txt sdcard/

要注意的是后面的斜杠不能少,這里與pull一樣要注意權限問題

  • adb reboot [arguments], 重啟 Android 設備
    bootloader , 重啟設備,進入 fastboot 模式
    recovery , 重啟設備,進入 recovery 模式,經常刷機的同學比較熟悉這個模式

adb shell 命令


這里大家先要了解我為什么要區分 adb 命令和 adb shell 命令 。簡單點講,adb 命令是 adb 這個程序自帶的一些命令,而 adb shell 則是調用的 Android 系統中的命令,這些 Android 特有的命令都放在了 Android 設備的 system/bin 目錄下

這里就說需要用到的

  • adb shell dumpsys,默認打印出當前系統所有service信息,在后面可加上具體的服務名需要列出當前運行的服務
  • 獲取設備分辨率:
adb shell dumpsys display | findstr 
DisplayDeviceInfoDisplayDeviceInfo{"內置屏幕": 1080 x 1920, 55.0 fps, density 480, 464.949 x 468.923 dpi...
  • 獲取設備電池信息:
adb shell dumpsys battery
Current Battery Service state:
AC powered: false 
USB powered: true 
Wireless powered: false 
status: 2 #電池狀態 
health: 2 
present: true 
level: 34 #電量 
scale: 100 
voltage: 3848 
current now: -427943 
temperature: 280 #電池溫度 
technology: Li-ion
  • 獲取Activity信息:
adb shell dumpsys activity
加上-h可以獲取幫助信息
獲取當前界面的UI信息,可以用:
adb shell dumpsys activity top
要獲取當前界面的Activity:
adb shell dumpsys activity top | findstr ACTIVITY
  • 獲取package信息:
adb shell dumpsys package
加上-h可以獲取幫助信息獲取某個包的信息:
adb shell dumpsys package PACKAGE_NAME
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容