① ADB常用命令
android 調試橋 (adb) ,可與設備進行通信。adb 命令可用於執行各種設備操作(例如安裝和調試應用),並提供對 Unix shell(可用來在設備上運行各種命令)的訪問許可權。它是一種客戶端-伺服器程序,包括以下三個組件:
客戶端: 用於發送命令。客戶端在開發機器上運行。可以通過發出 adb 命令從命令行終端調用客戶端。(可以通過它對Android應用進行安裝、卸載、調試)
PC上的手機助手基本都是通過adb命令去完成的。有時候裝了這類手機助手的話,它自帶的adb程序可能會與Android SDK下的adb程序產生沖突,5037埠被佔用,導致adb命令無法連接到設備。Windows下通過netstat -ano|findstr "5037"
守護程序 (adbd): 用於在設備上運行命令。守護程序在每個設備上作為後台進程運行
執行adb shell ps | grep adbd, 可以找到該後台進程,Windows使用findstr替代grep.
adb nodaemon server
伺服器(Service): 用於管理客戶端與守護程序之間的通信。伺服器在開發機器上作為後台進程運行
adb服務啟動後,Windows可以在任務管理中找到adb.exe; linux ps -ef | gref adb 可以查看service
一般都是通過這樣子的格式 adb [-d|-e|-s <設備序列號>] <子命令>
通常只有一台設備就忽略 [-d|-e|-s ] 這一部分
這里介紹一些常用的命令:
獲取設備列表及設備狀態
獲取設備的狀態
注意:設備的狀態有 3 鍾,device , offline , unknown
device:設備正常連接
offline:連接出現異常,設備無響應
unknown:沒有連接設備
結束 adb 服務
啟動 adb 服務
注意:通常兩個命令一起用,有時候我們開啟server會失敗,這是因為我們裝了的手機助手,豌豆莢或者其他軟體自帶有自己的adb,導致埠沖突開啟失敗。一般在連接出現異常,使用 adb devices 未正常列出設備, 設備狀態異常時使用 kill-server,然後運行 start-server 進行重啟服務。
列印 Android 的系統日誌
列印 mpsys、mpstate、logcat 的輸出,也是用於分析錯誤輸出比較多
列印日誌後重定向到一個文件中
安裝應用,覆蓋安裝是使用 -r 選項
注意:有些adb版本無法支持安裝中文的apk
查看手機應用包名
查看應用對應的apk文件在手機上的安裝位置則可以在上面的命令後加-f參數
卸載應用,後面跟的參數是應用的包名,請區別於 apk 文件名
'-k' means keep the data and cache directories , -k 選項,卸載時保存數據和緩存目錄
將 Android 設備上的文件或者文件夾復制到本地
adb pull /sdcard/test.txt C:\Users\Administrator\Desktop\log
推送本地文件至 Android 設備
獲取連接到的手機的序列號
獲取設備的連接狀態
等待設備連接成功
該命令將會阻塞一直到默認連接的那部機器狀態變為device,也就是連接成功。
其實adb shell命令就是調用的是Android設備中的system/bin目錄下的命令。
Android的內核本身就是Linux,所以Android本身也支持Linux命令,但是因為是手機系統,所以進行了一定的刪減,部分命令不支持,而不支持的部分,我們可以通過安裝busybox這個軟體進行。
如何在手機中執行Shell命令?
每次都加上adb shell來進行命令的發送與執行
先通過adb shell進入手機Shell執行狀態,然後直接輸入Linux命令。
使一個apk處於禁用狀態,相當於卸載了:
其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 com.UCMobile/.main.UCMobile
eg:adb shell su disable com.UCMobile/.main.UCMobile
同時我們在手機上發現,UC瀏覽器的圖標不見了
讓一個apk從禁用狀態恢復過來
其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 com.UCMobile/.main.UCMobileeg:
adb shell su enable com.UCMobile/.main.UCMobile
同時我們從手機上發現,UC瀏覽器的圖標又出現了。
查看一個apk所在的路徑
adb shell pm path com.UCMobile
查看手機中裝的所有的包
屏幕開始錄像並且儲存到/sdcard中,同時名字為demo.mp4
錄屏設置時長10s,命名為demo.mp4
注意:現在僅支持一部分手機錄屏,不支持的手機會出現以下提示
解決方法:
安裝了scrcpy之後,只需要輸入如下命令,即可錄取指定設備的屏幕
scrcpy -s device --render-expired-frames -Nr ./demo.pm4
--render-expired-frames:盡可能最大幀率
-N:不在PC端展示
-r:錄制mp4/mkv文件
關閉設備請求,開啟設備
設備關機以及重啟
pm(package manager)可以獲取一些安裝到Android設備上的app的信息
pm list packages 用法:list packages [ options] filter
獲取所有的應用的包名
列出系統應用
列出第三方應用
查看它們的關聯文件
adb shell pm list package -f
查看軟體包的安裝來源
pm mp 包名 很多mp信息
安裝應用
apk如果在電腦用 adb install
如果在Android設備上用 adb shell pm install
卸載應用,同adb uninstall ,後跟包名
清除應用數據
am(activity manager,字面意思就跟activity有關,大家都知道Android的界面都是由一個個activity顯示的)
啟動一個Activity
獲取到package和launch_activity
AndroidSDK中aapt工具,檢索命令結果,可以獲取到package和launch_activity
這里涉及到一個點,如何找到程序的入口,首先你要知道是哪個activity才能啟動;
啟動華為系統相機
打開音樂播放器
播放指定音樂:
先停止目標應用,再啟動
等待應用完成啟動
啟動網頁(android.intent.action.VIEW具體參考Android官網)
結束應用
input
模擬輸入,向獲得焦點的EditText控制項輸入內容
返回主界面
發送一個點擊操作的指令,參數是<x> <y>坐標
從左往右滑動屏幕, /從 100 100 經歷300毫秒滑動到 200 200
長按操作,在 100 100 位置長按 1000毫秒
② adb 常用命令
1、adb shell am force-stop 後跟包名,結束應用
2、adb install +包名 adb安裝apk (覆蓋安裝是使用 -r 選項)
3、adb uninstall +包名 adb卸載apk
adb uninstall -k cnblogs.apk 卸載app但保留數據和緩存文件
4、adb reboot 重啟Android設備
5、adb devices 獲取連接的設備列表及設備狀態
6、adb push (PC到Android設備)
例:adb push E:\0713\ellip_factroy__debug.apk storage/self/primary
7、adb pull(Android設備到PC)
例:adb pull /storage/self/primary/EL_v3.0.0.6_release.apk E:\0713
8、adb shell pm list package 列出所有的應用的包名 (-s:列出系統應用 -3:列出第三方應用 -f:列出應用包名及對應的apk名及存放位置 -i:列出應用包名及其安裝來源)
9、input : 向 Android 設備發送按鍵
1)adb shell input keyevent + 按鍵事件 發送按鍵事件 例如:adb shell input keyevent KEYCODE_HOME 模擬按下Home鍵
2)3 adb shell input tap +觸摸事件的位置 , 對屏幕發送一個觸摸事件 例如:點擊屏幕上坐標為 500 500 的位置(adb shell input tap 500 500)
3)adb shell input swipe 滑動事件 例如:從右往左滑動屏幕 (adb shell input swipe 800 600 100 600)
10、screencap 截圖命令 adb shell screencap -p /sdcard/qq/1.png
11、screenrecord 錄屏命令 adb shell screenrecord /sdcard/qq/1.mp4,執行命令後操作手機,ctrl + c 結束錄制
12、clear 清除應用數據 adb shell pm clear com.
13、復制、刪除 、查看文件、新建文件夾
adb shell進入Android Linux命令中,
復制cp: cp -f /sdcard/qq/1.png /sdcard/aa
刪除文件rm:rm /sdcard/qq/1.png
刪除文件夾rm -r:rm -r /sdcard/qq
查看文件cat:cat /sdcard/qq/1.txt
新建文件夾:mkdir /sdcard/cc
adb shell mkdir -m 777 /sdcard/cc 創建文件夾cc並給文件夾賦予讀寫執行的許可權
adb shell mkdir -p/sdcard/Download/Demo/test1,如果Demo目錄不存在,執行該條命令會創建Demo目錄和其子目錄test1
新建文件:touch /sdcard/cc/1.txt
移動文件:adb shell mv /sdcard/Download/test1.log /sdcard/Download/Demo/
重命名:adb shell mv /sdcard/Download/Demo/test1.log /sdcard/Download/Demo/test.lg
14、adb logcat > D:\log.txt 將日誌列印到電腦上
15、獲取手機內部存儲信息: adb shell df /data
獲取sdcard存儲信息:adb shell df /storage/sdcard
③ adb命令和monkey總結
移動動測測試試基基礎礎
adb常常用用命命令令總總結結
1. adb / adb -help 使用幫助
2. adb devices 查看連接到電腦的設備
3. adb install example.apk 安裝程序
4. adb -s emulator-5554 install example.apk 安裝程序到指定的設備上(模擬器)
5. adb pull <remote> <local> 將設備上文件保存到電腦上
6. adb push <local> <remote> 將本地的文件上傳到設備上
7. adb start-server 重啟adb服務
8. adb kill-server 殺掉adb服務
9. adb shell 進入命令行交互模式,進入之後可以像在linux輸入shell命令一樣來操作手機設備(android本來就是基於linux的)
10. adb logcat <信息顯示優先順序參數> 顯示日誌信息 優先順序從低到高順序排
11.adb shell cat /proc/cpuinfo 查看手機CPU,
12.adb shell ps 查看進程信息
Monkey命令實戰
1.Monkey是什麼?
Monkey是Android中的一個命令行工具,可以運行在模擬器或者實際設備中
向系統發送偽隨機的用戶事件流(按鍵輸入、觸摸屏輸入、手勢輸入等)
實現對正在開發的應用程序進行測試
Monkey測試之一種為了測試軟體的穩定性、健壯性的快速有效的方式
2.Monkey的特徵
測試對象僅為應用程序包,有一定的局限性(不能對源碼進行測試)
Monkey測試使用的事件流數據是隨機的,不能進行自定義
可以對MonkeyTest對象,事件數量,類型、頻率等進行設置
3. Monkey使用
adb shell monkey [options]
adb shell monkey -p 包名 -v 500
-p 指定測試程序包名
-v 顯示默認程度的信息
500 事件數設定為500
例如: adb shell monkey -p com.android.calculator2 -v 500
4. Monkey命命令令結結果果分分析析
1. 找monkey裡面那個出錯的地方
2. 查看monkey裡面出錯前的一些事件動作,並手動執行該動作
3. 若以上步驟還不能找出,使用之前執行的monkey命令再執行一遍,seed值要一樣(seed值一樣,發送的偽隨機事件流也一樣)
4. 注意第一個switch以及其他信息
seed值和,不同event類型比例
5.Monkey測試的目的
1. ANR問題:在日誌中搜索「ANR」
2. 崩潰的問題:在日誌中搜索「Exception」
3. ANR:Application Not Responding,在Android中,如果應該程序有一段時間響應不夠靈敏,系統會向用戶顯示一個對話框,這個對話框稱作應
用程序無響應對話框。用戶可以選擇「等待」而讓程序繼續運行,也可以選擇「強制關閉」應用。 好的程序應該能流暢運行,不能出現ANR問題
Monkey命令進階
1.運行時機
產品功能穩定之後進行
2. monkey更更復復雜雜的的命命令令
adb shell monkey -p packagename -v -v -- throttle 600 88
-v :代表整個Monkey運行的次數,多個 -v 可以定製Monkey報告的等級
--throttle 600 : 每個操作都間隔時間600ms
88 :執行的事件數
adb shell monkey -p packagename -v -v --pct-touch 50 --pct-trackball 30 --throttle 600 88
adb shell monkey -p packagename -v -v --pct-touch 50 --pct-trackball 30 -s 1234 --throttle 600 88
--pct-touch :設置在整個過程中點擊操作所佔的百分比
--pct-trackball: 設置滾輪在所用操作中的百分比
--ignore-crashes:崩潰之後繼續測試,重新啟動程序
--ignore-timeouts:遇到超時,也繼續執行
-v:
命令行的每一個-v將增加反饋信息的級別
Level 0(預設值)除啟動提示、測試完成和最終結果之外,提供較少信息
Level 1提供較為詳細的測試信息,如逐個發送到Activity的事件
Level 2提供更加詳細的設置信息,如測試中被選中的或未被選中的Activity
更多monkey命令:http://xqtesting.blog.51cto.com/4626073/1430654
實測命令(經常用到的,可以參考):
adb shell monkey -p com.xx.xxx(包名)--throttle 500 --ignore-crashes --igonre-timeouts --ignore-security-exceptions --igonre-native-crashes --
monitor-native-crashes -v -v -v 1000000 >> D:\monkeyScreenLog.log
說明:忽略crashes、timeout等是為了出問題是monkey繼續運行下去,希望能抓取更多的出錯信息
3.可可以以練練習習使使用用的的apk包名
com.android.calculator2
com.android.browser
com.android.music
com.android.email
com.android.contacts
monkey也可以進行壓力測試。
可靠性測試
穩定性測試:長時間使用軟體不會出現無響應
monkey:安卓系統常用穩定性和壓力測試工具
語法:monkey -p 包名 --throttle 數值(間隔時間,單位ms) -v 數值(操作次數)
monkey -p com.emicro.emicrophone --throttle 500 -v 300
百分比事件
0:點擊事件 參數--pct-touch
1:滑動事件 --pct-motion
2:縮放事件 --pct-pinchzoom
3:軌跡球事件 --pct-trackball
4:屏幕旋轉 --pct-rotation
5:基本導航事件 --pct-nav
6:主要導航事件 --pct-majornav
7:系統按鍵事件 --pct-syskeys
8:activity啟動事件 --pct-appswitch
9:鍵盤喚出隱藏事件 --pct-flip
10:其他事件 --pct-anyevent
異常測試 :斷電,斷網,異常退出。。。
adb 調試橋
adb devices 檢查設備是否連接
adb install apk文件路徑文件名
adb uninstall 包名 卸載
aapt d badging apk文件路徑文件名
adb shell 進入安卓系統
④ Android手機軟重啟adb命令是什麼
運行設備的shell(命令行)。
管理模擬器或設備的埠映射。
計算機和設備之間上傳/下載文件。
將本地apk軟體安裝至模擬器或android設備。
ADB一個 客戶端-伺服器端 程序, 其中客戶端是用來操作的電腦,伺服器端是android設備。
1、 查看設備 *adbdevices。這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示。
2、 安裝軟體:adbinstall <apk文件路徑>。
這個命令將指定的apk文件安裝到設備上。
3、 卸載軟體
adbuninstall <軟體名>。
adbuninstall -k <軟體名>。
如果加 -k 參數,為卸載軟體但是保留配置和緩存文件。
⑤ Android常用的ADB命令
重啟:adb reboot
推文件:adb push E:\xxx.txt storage/sdcard
拉文件:adb push storage/sdcard .
將日誌保存到電腦文件: adb logcat > xxx. xxx電腦文本地址
清除指定應用的數據和緩存:adb shell pm clear 例:adb shell pm clear com.yzl.test
查看日誌緩沖區大小:adb shell logcat-g
設置日誌緩沖區大小:adb logcat-G10M
打開藍牙:adb shell svc bluetooth enable
關閉藍牙:adb shell svc bluetooth disable
查詢藍牙是否打開:adb shell settingsgetglobalbluetooth_on
獲取藍牙Mac地址:adb shell settingsgetsecure bluetooth_address
獲取某個包名的安裝路徑:adb shell pm path com.xx.xx
查看所有存活的進程:adb shell ps
過濾關鍵字查看adb shell ps|findstr xxx
強制安裝版本號更低的apk:adb install -r -d "C:\xx.apk"
對指定應用進行500次模擬觸摸事件:adb shell monkey -p com.yzl.test -v 500
查看某個apk的應用信息、版本信息:adb shell mpsys package com.yzl.test
查看已安裝應用列表:adb shell pm list package或adb shell pm list packages-s