1. 程式人生 > 實用技巧 >Adb常用命令

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

參考:

https://www.cnblogs.com/laoluoits/p/10985442.html