-
adb devices
列出所有連接電腦的設(shè)備
-
adb reboot
重啟手機
-
adb pull <遠程路徑> <本地路徑>
從手機中文件拉到本地
-
adb push <本地路徑> <遠程路徑>
把文件從本地推到手機
-
adb service list
列出手機中有的 service
在使用adb shell dumpsys + 服務(wù)名 使用服務(wù)
國產(chǎn)部隊手機對服務(wù)進行閹割,所以當(dāng)使用這個命令時要確定手機中有這個服務(wù)可以用
可以在列出的服務(wù)中拿到幾乎所有想要的信息例:adb shell dumpsys window
adb shell
進入手機shell
如果是多臺設(shè)備連接到電腦需要使用adb shell cat /system/build.prop
-
adb shell getprop []
獲取手機基本信息
想要獲取某單個信息在linux下可以用grep命令,或者在getprop后加屬性key例 : adb shell getprop ro.product.model
adb shell dumpsys display
-
adb shell dumpsys window displays
獲取手機屏幕信息,兩種方式都可以獲取,有部分手機可能只支持一種
-
adb shell dumpsys display | grep PhysicalDisplayInfo
獲取屏幕的物理信息,grep命令是linux下才能執(zhí)行,當(dāng)在windows下使用時可以選擇手動在字符中截取有用的信息
-
adb shell wm size
獲取手機屏幕尺寸
-
adb shell cat /sys/class/net/wlan0/address
獲取手機mac地址
當(dāng)手機在沒有鏈接網(wǎng)絡(luò)時無法獲取到 adb shell dumpsys memoinfo
-
adb shell cat /proc/meminfo
獲取手機內(nèi)存信息
-
adb shell dumpsys activity
獲取當(dāng)前手機中Activity棧信息
-
adb shell input keycode
植入按鈕點擊事件
-
adb shell input tap
植入屏幕點擊事件,先X軸再Y軸
例: adb shell input tap 100 200
-
adb shell intput swipe left top right bottom
植入屏幕滑動事件
左上為滑動的起始位置,右下為滑動的結(jié)束位置例:adb shell input swipe 100 200 500 300
-
adb shell input text
輸入一個字符串,只支持英文數(shù)字和部分符號
當(dāng)需要為一個控件輸入內(nèi)容時,需要先保證輸入框正片處于焦點 -
adb shell dumpsys activty | grep -i mSleeping
判斷當(dāng)前屏幕狀態(tài)
adb shell dumpsys cpuinfo
-
adb shell top -s cpu
獲取手機cpu信息
-
adb shell am start packageName/className
啟動一個Activity
-
adb shell am broadcast
發(fā)送一個廣播,使用-a來指定Action,-d指定數(shù)據(jù)
adb shell am broadcast -a 'com.icechao.broadcast'
-
adb shell am am force-stop packageName
強制停止一個應(yīng)用
-
adb shell pm clear packageName
清理應(yīng)用數(shù)據(jù)
-
adb shelll kill pid
殺死某個進程
-
adb logcat -v time -d
打印logcat
-
adb shell df
文件系統(tǒng)的磁盤空間占用情況
-
adb shell /system/bin/screencap -p /sdcard/screenshot.png
手機截屏
-
adb shell screenrecord --time-limit 10 /sdcard/demo.mp4
錄制屏幕
-
adb shell getprop dhcp.wlan0.ipaddress
獲取手機ip地址
-
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
獲取手機Cpu最小頻率
-
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
獲取手機Cpu最大頻率
-
cat /sys/devices/system/cpu/cpu0/cpufreq/kernel_max
獲取手機cpu核數(shù)
-
adb shell dumpsys window policy | grep mScreenOnFully
獲取手機屏幕策略,windows中需要不能使用grep命令篩選信息
-
adb shell dumpsys window policy | grep mShowingLockscreen
判斷當(dāng)前手機是否是鎖屏狀態(tài)
-
adb shell svc wifi enable/disable
打開手機wifi,實測部份三星手機不支持些方法
-
adb shell monkey
能過monkey植入事件為app進行壓力測試
一個測試小哥和我說monkey是穩(wěn)定性測試不是壓測Monkey命令參數(shù)介紹
- 參數(shù): -p
參數(shù)-p用于約束限制墓造,用此參數(shù)指定一個或多個包(Package,即App)。指定
包之后尉剩,Monkey將只允許系統(tǒng)啟動指定的APP码秉。如果不指定包菌瘫,Monkey將允許系統(tǒng)啟動設(shè)備中的所有APP奈偏。
指定一個包: adb shell monkey -pcom.htc.Weather 100
說明:com.htc.Weather為包名飞几,100是事件計數(shù)(即讓Monkey程序模擬100次隨機用戶事件)后室。
指定多個包:adb shell monkey -pcom.htc.Weather –p com.htc.pdfreader -pcom.htc.photo.widgets 100
- 不指定包:adb shell monkey 100
說明:Monkey隨機啟動APP并發(fā)送100個隨機事件缩膝。
- 要查看設(shè)備中所有的包,在CMD窗口中執(zhí)行以下命令:
adbshell
cddata/data
#ls
- 參數(shù): -v
用于指定反饋信息級別(信息級別就是日志的詳細程度)岸霹,總共分3個級別疾层,分別對應(yīng)的參數(shù)如下表所示:
日志級別Level0
示例adb shellmonkey -p com.htc.Weather –v 100
說明 缺省值,僅提供啟動提示贡避、測試完成和最終結(jié)果等少量信息
日志級別Level 1
示例adb shellmonkey -p com.htc.Weather –v -v 100
說明 提供較為詳細的日志痛黎,包括每個發(fā)送到Activity的事件信息
日志級別Level 2
示例adb shellmonkey -p com.htc.Weather –v -v –v 100
說明 最詳細的日志,包括了測試中選中/未選中的Activity信息
- 參數(shù): -s
用于指定偽隨機數(shù)生成器的seed值刮吧,如果seed相同湖饱,則兩次Monkey測試所產(chǎn)生的事件序列也相同的。
-
示例:
Monkey測試1:adb shell monkey -p com.htc.Weather –s 10 100 Monkey測試2:adbshell monkey -p com.htc.Weather–s 10 100
兩次測試的效果是相同的皇筛,因為模擬的用戶操作序列(每次操作按照一定的先后順序所組成的一系列操作琉历,即一個序列)是一樣的。操作序列雖然是隨機生成的水醋,但是只要我們指定了相同的Seed值旗笔,就可以保證兩次測試產(chǎn)生的隨機操作序列是完全相同的,所以這個操作序列偽隨機的拄踪;
- 參數(shù): --throttle <毫秒>
用于指定用戶操作(即事件)間的時延蝇恶,單位是毫秒;
- 示例:adb shell monkey -pcom.htc.Weather –throttle 3000 100
- 參數(shù): --ignore-crashes
用于指定當(dāng)應(yīng)用程序崩潰時(Force& Close錯誤)惶桐,Monkey是否停止運行撮弧。如果使用此參數(shù),即使應(yīng)用程序崩潰姚糊,Monkey依然會發(fā)送事件贿衍,直到事件計數(shù)完成。
示例1:adbshellmonkey -p com.htc.Weather --ignore-crashes 1000 測試過程中即使Weather程序崩潰救恨,Monkey依然會繼續(xù)發(fā)送事件直到事件數(shù)目達到1000為止贸辈; 示例2:adbshellmonkey -p com.htc.Weather 1000 測試過程中,如果Weather程序崩潰肠槽,Monkey將會停止運行擎淤。
- 參數(shù): --ignore-timeouts
用于指定當(dāng)應(yīng)用程序發(fā)生ANR(Application No Responding)錯誤時奢啥,Monkey是否停止運行。如果使用此參數(shù)嘴拢,即使應(yīng)用程序發(fā)生ANR錯誤桩盲,
Monkey依然會發(fā)送事件,直到事件計數(shù)完成席吴。
- 參數(shù): --ignore-security-exceptions
用于指定當(dāng)應(yīng)用程序發(fā)生許可錯誤時(如證書許可赌结,網(wǎng)絡(luò)許可等),Monkey是否停止運行孝冒。如果使用此參數(shù)姑曙,即使應(yīng)用程序發(fā)生許可錯誤,
Monkey依然會發(fā)送事件迈倍,直到事件計數(shù)完成。
- 參數(shù): --kill-process-after-error
用于指定當(dāng)應(yīng)用程序發(fā)生錯誤時捣域,是否停止其運行啼染。如果指定此參數(shù),當(dāng)應(yīng)用程序發(fā)生錯誤時焕梅,應(yīng)用程序停止運行并保持在當(dāng)前狀態(tài)(注意:應(yīng)用程序僅是靜止在發(fā)生錯誤時的狀態(tài)迹鹅,系統(tǒng)并不會結(jié)束該應(yīng)用程序的進程)。
- 參數(shù): --monitor-native-crashes
用于指定是否監(jiān)視并報告應(yīng)用程序發(fā)生崩潰的本地代碼贞言。
- 參數(shù): --pct-{+事件類別}{+事件類別百分比}
用于指定每種類別事件的數(shù)目百分比(在Monkey事件序列中斜棚,該類事件數(shù)目占總事件數(shù)目的百分比)
這些是我們進行操作時一般會用到的參數(shù)。執(zhí)行過程中该窗,在dos命令里日志顯示只有一小部分弟蚀,我們就需要在我們編寫的命令行后再加上>log.txt就可以在我們保存adb路徑中自動生成日志,方便我們進行查看酗失。
比如:
adb shell -p com.htc.xxx -v -v -v -s 2505000>log.txt
上面語句的意思就是义钉,對com.htc.xxx隨機操作5000次,send值為250规肴,并且打印level 2日志捶闸,并且將日志保存到log.txt。
命令講完后拖刃,我們來講一講如何查看日志删壮。
當(dāng)日志生成后,我們需要進入日志當(dāng)中查看是否有APP崩潰記錄或者無響應(yīng)記錄兑牡。崩潰記錄查找”CRASH”央碟,無響應(yīng)記錄查找”ANR”,內(nèi)存泄露問題搜索"GC"(需進一步分析),異常問題搜索“Exception”(如果出現(xiàn)空指針发绢,NullPointerException硬耍,需格外重視)垄琐。
為了進一步分析問題的來源,可以找到Log中出現(xiàn)問題處的前一次Switch经柴,隨后根據(jù)Log主要是查看相關(guān)的Activity狸窘。
下面我就把我昨天執(zhí)行后的日志拿出來:
進入日志后,會顯示
:Monkey: seed=250count=3500
:AllowPackage:com.text.app.hospitalassistant
上面表示了點擊了3500次坯认,執(zhí)行seed值為250翻擒,對甘肅婦幼這個APP進行了操作。
// Eventpercentages:
// 0: 15.0% 0:觸摸事件百分比牛哺,即參數(shù)–pct-touch
// 1: 10.0% 1:滑動事件百分比陋气,即參數(shù)–pct-motion
// 2: 2.0% 2:縮放事件百分比,即參數(shù)–pct-pinchzoom
// 3: 15.0% 3:軌跡球事件百分比引润,即參數(shù)–pct-trackball
// 4: -0.0% 4:屏幕旋轉(zhuǎn)事件百分比巩趁,即參數(shù)–pct-rotation
// 5: 25.0% 5:基本導(dǎo)航事件百分比,即參數(shù)–pct-nav
// 6: 15.0% 6:主要導(dǎo)航事件百分比淳附,即參數(shù)–pct-majornav
// 7: 2.0% 7:系統(tǒng)事件百分比议慰,即參數(shù)–pct-syskeys
// 8: 2.0% 8:Activity啟動事件百分比,即參數(shù)–pct-appswitch
// 9: 1.0% 9:鍵盤翻轉(zhuǎn)事件百分比奴曙,即參數(shù)–pct-flip
// 10: 13.0% 10:其他事件百分比别凹,即參數(shù)–pct-anyevent
####
grep(命令中 ' | '到命名結(jié)束的部份)命令可以從得到的結(jié)果里篩選想要的信息行,這個命令只支持linux 在windows可以考慮使用findstr
#####在進入手機shell模式后很多通用命令是和linux是一樣的,所以可以直接使用linux命令來獲取手機的信息
#####當(dāng)電腦連接多臺手機使用 adb -s 手機序列號 命令 的方式指定手機
##當(dāng)需要代碼參數(shù)時 輸入命令會有參數(shù)介紹可以根據(jù)介紹添加對應(yīng)的命令參數(shù)