運行設備的shell(命令行)
管理模擬器或設備的端口映射
計算機和設備之間上傳/下載文件
將本地apk軟件安裝至模擬器或android設備
ADB是一個客戶端-服務器端 程序, 其中客戶端是你用來操作的電腦, 服務器端是android設備。而ADB驅動就是電腦與android設備的通信的客戶端驅動程序。
adb有三大部分組件:
客戶端(client)
運行在你自己的電腦上,可以通過shell來調起一個客戶端
服務器(server)
運行在電腦的后台,負責管理client和damon進行通信
守護進程(damon)
-d | 指定當前唯一通過 USB 連接的 Android 設備為命令目標 |
-e | 指定當前唯一運行的模擬器為命令目標 |
-s <serialNumber> |
指定相應 serialNumber 號的設備/模擬器為命令目標 |
如:
adb -s cf264b8f shell wm size 獲取手機屏幕尺寸
作為測試需要掌握的adb命令:
1.adb shell 進入adb shell模式
2.adb pull <手機路徑> <電腦路徑> 把手機中文件拉去到電腦中 手機路徑可以用ls/cd等來找到3
1.adb install +包名 adb安裝apk (覆蓋安裝是使用 -r 選項)
adb 命令是 adb 這個程序自帶的一些命令,而 adb shell 則是調用的 Android 系統中的命令,這些 Android 特有的命令都放在了 Android 設備的 system/bin 目錄下
8.1. adb shell bugreport , 打印dumpsys、dumpstate、logcat的輸出,也是用於分析錯誤
輸出比較多,建議重定向到一個文件中
adb shell dumpsys > d:\bugreport.log
8.2 pm
Package Manager , 可以用獲取到一些安裝在 Android 設備上得應用信息
8.2.1 adb shell pm list package 列出所有的應用的包名 (-s:列出系統應用 -3:列出第三方應用 -f:列出應用包名及對應的apk名及存放位置 -i:列出應用包名及其安裝來源)
8.2.2 adb shell pm path+包名 列出對應包名.apk 位置
8.2.3 adb shell pm install +apk存放路徑 安裝應用(目標 apk 存放於PC端,用 adb install 安裝 目標 apk 存放於Android設備上,用 pm install 安裝)
8.3 am
8.3.1 adb shell am start +包名/.Activity (要啟動的Activity) 啟動一個 Activity (-s先停止目標應用,再啟動 -w 等待應用完成啟動 -a 啟動默認瀏覽器打開一個網頁例:adb shell am start -a android.intent.action.VIEW -d http://testerhome.com)
8.3.2 adb shell am monitor 監控 crash 與 ANR
8.3.3 adb shell am force-stop 后跟包名,結束應用
8.3.4 adb shell am startservice 啟動一個服務
8.3.5 adb shell am broadcast 發送一個廣播
8.4 input
這個命令可以向 Android 設備發送按鍵事件
8.4.1 adb shell input text +具體內容 發送文本內容,不能發送中文
8.4.2 adb shell input keyevent + 按鍵事件 發送按鍵事件 例如:adb shell input keyevent KEYCODE_HOME 模擬按下Home鍵
8.4.3 adb shell input tap +觸摸事件的位置 , 對屏幕發送一個觸摸事件 例如:點擊屏幕上坐標為 500 500 的位置(adb shell input tap 500 500)
8.4.4 adb shell input tap , 對屏幕發送一個觸摸事件
8.4.4 adb shell input swipe 滑動事件 例如:從右往左滑動屏幕
adb shell input swipe 800 600 100 600
8.5 screencap
截圖命令
adb shell screencap -p /sdcard/DCIM/screenTest.png
8.6 screenrecord
4.4以上系統版本新增的錄制命令
adb shell screenrecord /sdcard/demo.mp4
執行命令后操作手機,ctrl + c 結束錄制,錄制結果保存至 sdcard/ 下
8.7 ime
列出設備上的輸入法
adb shell ime list -s
另一種不需要數據線鏈接手機的adb方式:
通過WiFi進行遠程調試,此時我們就可以不需要通過USB線將手機連接到電腦了,但是有如下注意事項:
1、確保手機和電腦處於同一網絡中(連接的同一個路由器)
2、提前通過adb tcpip 5555來確定通訊的端口號
3、再通過adb connect 加上你自己手機的ip地址來進行連接
如果想要取消連接,直接使用adb disconnect命令即可
啟動 adb server 命令:
adb命令
有些手機需要解鎖system分區(如小米)
輸入:adb root
輸入:adb disable-verity
查看手機連接狀態:adb device
獲得root權限:root
設置超級用戶模式 : su
退出su : exit
重啟命令:adb reboot
重啟到Rec:adb reboot recovery
重啟到Fastboot:adb reboot bootloader
推送ROM包:adb sideload <Rom包>
把文件從手機中復制到電腦上 : adb pull <手機路徑> <電腦路徑>
把文件從電腦復制到手機上 : adb push <電腦路徑> <手機路徑>
重新掛載文件系統 : adb remount
安裝軟件 : adb install apk文件名稱.apk
卸載apk軟件 : adb uninstall apk包名.apk
Fastboot命令:
查看連接狀態 :fastboot devices
重啟 :fastboot reboot
重啟到Fastboot :fastboot reboot-bootloader
除非你很了解該命令,否則以下命令請謹慎使用:
解鎖 :fastboot flashing unlock或fastboot oem unlock
上鎖 :fastboot flashing lock或fastboot oem lock
清除分區數據 :fastboot erase <boot/system/data/cache/userdata/recovery>
清除分區(四清) :fastboot erase system -w
格式化分區數據 :fastboot format <boot/system/data/cache/userdata/recovery>
燒寫分區 :fastboot flash < boot/system /recovery/radio/bootloader/ splash1/>