adb是cs架構,由三部分組成,分別是client,server,daemon,他們的關係見下圖
server是整個架構的核心
server負責接收client的指令,然後將指令傳送給手機上的daemon
server負責接收daemon的執行結果,然後將結果返回給client
a、安裝java環境,並設定環境變數
b、安裝安卓adk,下載路徑如下
https://developer.android.com/studio/releases/platform-tools?hl=zh-cn
adb -d #指定當前唯一通過usb連線的安卓裝置作為命令的目標 adb -e #指定當前唯一執行模擬器的安卓裝置作為命令的目標 adb -s #指定相應的裝置id作為命令的目標
adb devices #檢視當前pc可以查詢到的安卓的裝置,並可以檢視對應的裝置的狀態 adb get-state #作用同adb devices
裝置的狀態有以下幾種
device 是屬於正常的狀態
offline 連線出現異常
unauthorized 裝置未授權
adb_server.exe connect 127.0.0.1:7555 adb_server shell # 進入對應的安卓裝置,我們知道,安卓底層其實也是linux
a、手機需要進入偵錯模式(開啟開發者模式,開啟usb偵錯)
b、電腦需要安裝對應的手機的驅動
c、手機通過usb和pc連線
adb install apk路徑 #首次安裝 adb install -r apk路徑 #覆蓋安裝
adb uninstall 包名 #解除安裝,會刪除快取檔案和組態檔 adb uninstall -k 包名 #解除安裝,不刪除快取檔案和組態檔
這裡需要給大家介紹2個名詞
package包:是安卓應用的唯一標識
Activity活動頁:安卓應用的頁面,一個頁面就是一個activity
a、我們可以先在手機開啟一個app
b、執行下面的命令,可以獲取包名和當前的activity
adb shell "dumpsys window |grep mCurrentFocus"
包名:com.taobao.taobao
activity:com.taobao.tao.welcome.Welcome
c、其他檢視包名的方法
adb shell pm list packages -3 #檢視當前手機上安裝的第三方的應用
d、獲取到包名和activity後,我們就可以通過adb命令啟動某個app的某個頁面
啟動頁面的命令:adb shell am start -n com.taobao.taobao(包名)/com.taobao.tao.welcome.Welcome(activity名)
e、上面是獲取指定的頁面的activity,這裡我們介紹下如何獲取到啟動介面
首先執行下面的命令
先執行adb命令:adb logcat ActivityManager:I | findstr "cmp"
然後啟動應用,出現的第一個cmp就是啟動頁
adb shell pm list packages #獲取當前手機上安裝的所有應用 adb shell pm list packages -s #獲取當前手機上安裝的系統應用 adb shell pm list packages -3 #獲取當前手機的第三方應用 adb shell pm clear 包名 #清理的應用的快取
adb shell linux命令
adb pull /sdcart/aaaa.txt ./ #手機到電腦到 pull檔案 adb push "C:\Program Files\python\Scripts\pip.exe" /sdcard/ #電腦到手機,push
adb logcat #預設的每一列的是:紀錄檔的時間、父程序、子程序、紀錄檔的級別、紀錄檔的tag、紀錄檔的內容
adb logcat SntpClient:D "*:S" #過濾SntpClient模組D以及D級別以上的紀錄檔 ,*:S的意思是其他的紀錄檔都不要顯示
在手機的開發者選項中開啟「指標位置」
adb shell input tap x座標 y座標(根據座標點選,點下去擡起來)
輸入框的輸入,滑鼠先要放到輸入框中:>adb shell input text 13925293887
滑動:adb shell input swipe 初始x座標,初始y座標,結束x座標,結束y座標,滑動用的時間(單位毫秒)
adb shell input keyevent 4(返回上一步操作) adb shell input keyevent 3(返回主頁) 1、官方檔案使用,後面的命令就會執行通話鍵:adb shell input keyevent KEYCODE_CALL 2、官方檔案說明,後面的命令就會執行相機鍵:adb shell input keyevent KEYCODE_CAMERA
其他按鍵說明:https://developer.android.com/reference/android/view/KeyEvent
3、adb獲取安卓的效能指標
a、獲取cpu的資訊
獲取cpu的使用情況:>adb shell dumpsys cpuinfo,後面加包名可以獲取應用的資源佔用情況
獲取記憶體的使用情況:>adb shell dumpsys meminfo,後面加包名可以獲取應用的資源佔用情況
adb shell top
adb shell dumpsys battery
Max charging current: 20000000 #最大充電電流;mA health: 2 #電池健康狀態:只有數位2表示good status: 2 #電池狀態:2:充電狀態,其他數位為非充電狀態 present: true #電池是否安裝在機身 level:81 #電量:百分比 scale: 100 #電池當前可用的百分比 voltage: 4108 #電池電壓 temperature: 353 #電池溫度,單位是0.1攝氏度 technology: Li-poly #電池種類
1、新增100個事件數:adb shell monkey 100 #會隨機選n個應用,然後做各種動作 2、只對具體的某個某幾個app做monkey測試,其中-p可以寫多個,每個可以接一個應用的包名: adb shell monkey -p org.mozilla.firefox 100 3、設定事件和事件的相隔多少毫秒: adb shell monkey -p org.mozilla.firefox --throttle 100 100 4、-s選項設定種子數,相同的種子數可以做回放seed可以看到本次monkey的種子數: adb shell monkey -p org.mozilla.firefox -s 3456789 --throttle 100 100
--pct-touch 觸控事件 --pct-motion 滑動事件 --pct-trackball 軌跡球事件 --pct-nav 導航事件,比如輸入裝置上、下、左左、右鍵 --pct-majornav 主要導航事件,,比如中間鍵、返回鍵、選單鍵 --pct-syskeys 系統按鍵事件,比如HOME鍵、BACK建、撥號鍵及音量鍵 --pct-appswitch: activity之間的切換 --pct-pinchzoom: 縮放事件 --pct-rotation 螢幕旋轉事件 --pct-flip 鍵盤事件 --pct-anyevent 任意事件