Adb常用命令

針對移動端 Android 的測試, adb 命令是很重要的一個點,必須將常用的 adb 命令熟記於心, 將會爲 Android 測試帶來很大的方便,其中很多命令將會用於自動化測試的腳本當中。

Android Debug Bridge

adb 其實就是 Android Debug Bridge, Android 調試橋的縮寫,adb 是一個 C/S 架構的命令行工具,用於通過電腦端與模擬器或者真實設備交互。在某些特殊的情況下進入不了系統,adb就派上用場啦!主要由 3 部分組成:

· 運行在 PC 端的 Client : 可以通過它對 Android 應用進行安裝、卸載及調試

· 運行在 PC 端的 Service : 其管理客戶端到 Android 設備上 adb 後臺進程的連接

adb 服務啓動後,Windows 可以在任務管理器中找到 adb.exe 這個進程

· 運行在 Android 設備上的 adb 後臺進程

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

image

通過adb 操作android 設備

連接上數據線,然後把手機開發者模式打開,打開usb調試。

image

adb 命令

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

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

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

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

1.adb devices , 獲取設備列表及設備狀態

image

2.adb get-state , 獲取設備的狀態

image

設備的狀態有 3 鍾,device , offline , unknown

device:設備正常連接

offline:連接出現異常,設備無響應

unknown:沒有連接設備

3.安裝卸載應用程序

adb install 用於安裝

image

安裝成功,返回成功提示 "Success";

安裝失敗,會返回以下:

INSTALL_FAILED_ALREADY_EXISTS

此時需要用 -r 參數來重新安裝。

INSTALL_FAILED_SIGNATURE_ERROR

應用的簽名不一致,可能是發佈版和調試版簽名不同所致。也有可能是沒卸載舊應用導致。

INSTALL_FAILED_INSUFFICIENT_STORAGE

存儲空間不足,需要檢查設備存儲情況。

adb uninstall 用於卸載

adb uninstall 後面帶的是應用的包名,而不是應用名。

查看系統所有應用的包名:

adb shell pm list packages –f

image

4.上傳、下載文件

adb pull <手機路徑> <本機路徑> 從手機中拉取信息到本地電腦上

adb push <本機路徑> <手機路徑> 從本地電腦推送信息到手機上

adb push 命令將PC機上的文件推到 DLT-RK3288 機器上;

adb pull 命令將DLT-RK3288機器上的文件拉到PC機上;

例如:

adb push d:/new.txt /sdcard/

將D盤下new.txt文件 推到內部存儲器

adb pull /sdcard/new.txt d:\

將DLT-RK3288 內部存儲器根目錄下的new.txt 拉到D盤

image

5. adb shell pm list package

Package Manager , 可以用獲取到一些安裝在 Android 設備上得應用信息

-s:列出系統應用

-f:列出應用包名及對應的apk名及存放位置

image

過濾應用

image

5.adb shell

通過adb shell 命令,就可以進入設備或者模擬器的shell環境了,在這個Linux shell中,我們就可以執行各種Linux命令了。

如果只想執行一條shell命令,就可以採用:adb shell [shell_command],在實際使用中,經常與grep或findstr一起使用,起到過濾作用,查看自己需要的關鍵信息。

6.****常見命令:

如 ls, cd, rm, mkdir, touch, pwd, cp, mv, ifconfig, netstat, ping, ps, top等,進入adb shell即可執行,與linux相似

7. adb logcat

一.在cmd窗口查看手機的Log****日誌

有時候我們在手機程序上的日誌要在其他地方調試,然後要看裏面的Log日誌。在cmd窗口中輸入如下命令:

//格式1:打印默認日誌數據adb logcat//格式2:需要打印日誌詳細時間的簡單數據adb logcat -v time//格式3:需要打印級別爲Error的信息adb logcat *:E//格式4:需要打印時間和級別是Error的信息adb logcat -v time *:E//格式5:將日誌保存到電腦固定的位置,比如D:\log.txtadb logcat -v time >D:\log.txt

這時手機日誌更新什麼日誌,cmd窗口也會同步更新數據。

但是這樣沒有過濾條件,如果Log日誌很多,很難找到我們想要的信息,

當然也可以複製cmd中的數據到一個文本中慢慢處理的,就是效率不高。

下面介紹adb logcat中的詳細參數命令以及如何才能高效的打印日誌,或者把日誌保存到我們指定的位置。

adb logcat 詳解

adb logcat如果用過,但是具體命令又不記得,可以輸入adb logcat -help,查看一下一些簡單的數據格式:

image

日誌過濾:adb logcat [:priority]

tag表示標籤,priority輸出的級別,日誌默認級別是V,如果錯誤日誌我們選擇E就可以。

Android 的日誌分爲如下幾個優先級(priority):

V —— Verbose(最低,輸出得最多)

D —— Debug

I —— Info

W —— Warning

E —— Error

F —— Fatal

S —— Silent(最高,啥也不輸出)

按某級別過濾日誌則會將該級別及以上的日誌輸出。比如,命令:adb logcat *:W

其實*可以是某個tag,如果沒有指明,就表示所有。

tag可以由多個 [:priority] 組成。比如,命令:

adb logcat ActivityManager:I MyApp:D *:S

表示輸出 tag ActivityManager 的 Info 以上級別日誌,輸出 tag MyApp 的 Debug 以上級別日誌,及其它 tag 的 Silent 級別日誌(即屏蔽其它 tag 日誌)。

adb logcat****選項解析

--"-s"選項 : 設置輸出日誌*:s的標籤, 只顯示該標籤的日誌;

--"-f"選項 : 將日誌輸出到文件, 默認輸出到標準輸出流中, -f 參數執行不成功;

--"-r"選項 : 按照每千字節輸出日誌, 需要 -f 參數, 不過這個命令沒有執行成功;

--"-n"選項 : 設置日誌輸出的最大數目, 需要 -r 參數, 這個執行 感覺 跟 adb logcat 效果一樣;

--"-v"選項 : 設置日誌的輸出格式, 注意只能設置一項;

--"-c"選項 : 清空所有的日誌緩存信息;

--"-d"選項 : 將緩存的日誌輸出到屏幕上, 並且不會阻塞;

--"-t"選項 : 輸出最近的幾行日誌, 輸出完退出, 不阻塞;

--"-g"選項 : 查看日誌緩衝區信息;

--"-B"選項 : 以二進制形式輸出日誌;

把日誌信息保存到電腦中

adb logcat最後添加」 > 保存文件的地址,比如需要將的信息保存到電腦中使用下面的命令: adb logcat -v time > D:\log.txt

8.monkey 測試

一、Monkey 測試簡介

Monkey測試是Android平臺自動化測試的一種手段,通過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、按鍵等操作來對設備上的程序進行壓

二、Monkey 命令的簡單幫助

要獲取Monkey命令自帶的簡單幫助,在CMD中執行命令:

adb shell monkey –help

image

四、Monkey****命令參數介紹

image

說明:第一個-s指定設備,如果只連接了一臺設備,可不用該參數。

-p <apk包名>只允許系統啓動指定的app,如果不指定,將允許系統啓動設備中的所有app,也可指定多個包。

--throttle <毫秒數> 指定用戶操作(事件)間的時延。

--ignore-crashes 指定當應用程序崩潰時,Monkey依然發送事件,直到事件計數完成。

--ignore-timeouts 當應用程序發生ANR錯誤時,Monkey依然會發送事件,直到事件計數完成。

第2個-s,用於指定僞隨機數生成器的seed值,如果seed相同,則兩次Monkey測試所產生的事件序列也相同的。

-v 用於指定反饋信息級別,總共分爲level 0、level 1、level 2三個級別,級別越高,輸出的日誌越詳細。

日誌級別 Level0 示例 adb shellmonkey -p com.amaker.mp –v 100

說明 缺省值,僅提供啓動提示、測試完成和最終結果等少量信息

日誌級別 Level 1 示例 adb shellmonkey -p com.amaker.mp –v -v 100

說明 提供較爲詳細的日誌,包括每個發送到Activity的事件信息

日誌級別 Level 2 示例 adb shellmonkey -p com.amaker.mp –v -v –v 100

說明 最詳細的日誌,包括了測試中選中/未選中的Activity信息

最後的數字(這裏是500):表示Monkey程序模擬500次隨機用戶操作事件。

>輸出測試結果到D:\monkeylog.txt

參考:

http://www.javashuo.com/article/p-wxunyuvm-gm.html