adb是谷歌官方提供的AndroidSDk中的一個命令行包姑曙,主要用于電腦連接手機使用撞牢。連接后可以使用linux命令對android手機進行操作(android內核系統(tǒng)本身就是以linux為基礎。許多l(xiāng)inux上的命令均可使用)
安裝就不說了,自行百度AndroidSDK下載
即可,這里記錄下環(huán)境變量配置:
1.新增ANDROID_HOME
value = D:\android-sdk
2.在系統(tǒng)環(huán)境變量path
最前面增加:
value = %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
一、啟動痹束、關閉服務
adb start-server # 啟動adb服務
adb kill-server # 關閉adb服務
常見問題:
- 使用
adb devices
命令的時候查找不到設備列表。這個時候可以嘗試關閉并重啟adb服務然后看下是否可以正常重啟 - 啟動adb服務的時候可能會出現(xiàn)端口號被占用的情況(默認端口:5037):
# 查看哪個進程占用了5037端口
C:\Users\xuzhh>netstat -aon|findstr 5037
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 21776
TCP 127.0.0.1:5037 127.0.0.1:51628 TIME_WAIT 0
# 通過進程PID查看進程(我的端口沒被占用讶请,只是舉例說明)
C:\Users\xuzhh>tasklist /fi "PID eq 21776"
映像名稱 PID 會話名 會話# 內存使用
========================= ======== ================ =========== ============
adb.exe 21776 Console 1 9,352 K
# 殺進程(也可以在任務管理器界面根據(jù)pid進行殺進程操作)
C:\Users\xuzhh>taskkill /pid 21776 /f
二祷嘶、查看設備列表
# 查看設備列表
C:\Users\xuzhh>adb devices
List of devices attached
127.0.0.1:7555 device
# 查看設備列表(詳情)
C:\Users\xuzhh>adb devices -l
List of devices attached
127.0.0.1:7555 device product:cancro model:MuMu device:x86 transport_id:1
說明:
-
127.0.0.1:7555
,這個是設備序列號夺溢。當電腦連接多個手機設備時论巍,使用 adb -s "序列號" 命令指定設備進行操作,比如:
adb -s "127.0.0.1:7555" shell ls # 列出指定序列號設備當前目錄下的文件列表
-
device
风响, 這個是設備的連接狀態(tài)嘉汰,連接狀態(tài)總共有以下三種
device: 設備現(xiàn)已連接到 adb 服務器
offline: 設備未連接到 adb 或沒有響應
no device:未連接任何設備
使用adb devices無法列出設備的幾種情況:
- 可能是手機未開啟設置。查看手機開發(fā)者模式中[允許usb調試]是否已打開状勤。默認情況下手機是不會默認開啟該設置的鞋怀。需要手動開啟
- 如果使用的是模擬器,可能是端口問題持搜∶芩疲可以使用以下命令:
adb connect 127.0.0.1:7555 # 網(wǎng)易mumu模擬器端口7555
adb connect 127.0.0.1:21503 # 逍遙模擬器端口21503
- 如果使用的是模擬器,也可能是adb版本跟本地adb版本不一致出現(xiàn)的問題葫盼。嘗試下將本地
androidSDK
包中的adb.exe
文件復制粘貼到模擬器對應的adb.exe
文件中残腌,替換掉模擬器對應的adb.exe
文件( 比如網(wǎng)易的模擬器交server_adb.exe
,則復制過去之后還要改成一樣的名字)
三、adb 交互模式(adb shell
)
通過使用adb shell
可以進入交互模式废累。在交互模式中可以使用部分linux命令,例如:
C:\Users\xuzhh>adb shell #進入交互模式
root@MuMu:/ # ls -al | grep sdcard # 查看sdcard的詳細屬性
lrwxrwxrwx root root 2020-05-25 11:46 sdcard -> storage/self/primary
root@MuMu:/ # exit #退出交互模式
或者可以使用adb shell
后面跟命令的方式來直接執(zhí)行命令并返回結果脱盲,此時邑滨,是未進入交互模式的,例如:
C:\Users\xuzhh>adb shell "ls -al | grep sdcard"
lrwxrwxrwx root root 2020-05-25 11:46 sdcard -> storage/self/primary
C:\Users\xuzhh>
如果電腦同時連接多個手機設備钱反,注意用adb -s "序列號" shell
來執(zhí)行掖看,類似adb -s "序列號" devices
的用法
四、log獲取
連接adb
時候比較常用的操作就是獲取log
adb logcat -c # 清除手機中的緩存日志
adb logcat >e:/logcat.txt # 抓取log并保存到 e:/logcat.txt 中
adb logcat *:W >e:/logcat.txt # 抓log(只抓W級以上的log)
五面哥、截圖哎壳、錄屏
adb shell screencap -p /data/local/tmp/test.png #截圖(保存為png格式)
adb shell screenrecord /data/local/tmp/test.mp4 #錄屏
adb shell screenrecord --size 848*480 /sdcard/test.mp4 #設定視頻分辨率,錄屏
adb shell screencap -p /data/local/tmp/test.png #
六尚卫、安裝归榕、啟動應用
adb install xxxx.apk #安裝應用
adb shell am start -n {包(package)名}/{包名}.{活動(activity)名稱} #啟動應用
adb shell am force-stop packageName #停止應用
adb uninstall packageName #刪除應用
注意:
- 這里的包名指的是AndroidMinifect清單文件中的包名≈ㄉ妫可以使用
aapt dump badging xxxx.apk | findstr "name"
進行查看刹泄。aapt是AndroidSDK的中的另一個工具,將aapt.exe放到C盤Windows目錄下即可直接在cmd下進行使用怎爵,無需環(huán)境變量配置
七特石、打開、關閉WIFI(需root)
adb root # 先要讓adb獲取root權限
adb shell svc wifi enable # 打開wifi
adb shell svc wifi disable # 關閉 wifi
使用場景:測試斷線重連操作的時候可以使用
關于root就不多說了鳖链,有些手機廠商是自帶開發(fā)者模塊或者系統(tǒng)的姆蘸。需要自行到品牌手機官網(wǎng)開發(fā)者論壇查看一下。
個人比較習慣用模擬器芙委,大部分模擬器都是自帶root開關的逞敷,推薦 mumu、逍遙题山。用了挺久兰粉,挺好用的
八、簡單自動化
adb shell input tap x y #模擬點擊坐標
adb shell input text "xxx" #模擬輸入
adb shell input swipe x1 y1 x2 y2 [duration(ms)] #模擬在屏幕上進行滑動顶瞳;android4.4支持設置步長
adb shell input keyevent num #點擊按鍵
# input keyevent 3 // Home
# input keyevent 4 // Back
# input keyevent 19 //Up
# input keyevent 20 //Down
# input keyevent 21 //Left
# input keyevent 22 //Right
# input keyevent 23 //Select/Ok
# input keyevent 24 //Volume+
# input keyevent 25 // Volume-
# input keyevent 82 // Menu 菜單
# input keyevent --longpress 3 #長按home鍵
這里要注意:
- 要使用
adb shell input tap x, y
需要先知道如何獲取到某一個點的坐標玖姑,獲取坐標的方式有很多,可以使用uiautomatorviewer
慨菱, 但是還要設置環(huán)境變量焰络,下載包等,個人覺得比較麻煩符喝,建議打開手機 [開發(fā)者選項] 中的 [指針位置]闪彼。這樣在你手動點擊的時候就可以看到你點擊位置的絕對坐標了 -
adb shell input text
命令是無法輸入中文的。如果要輸入中文的話需要一些輔助方式。這里推薦ADBKeyBoard.apk
畏腕。點此進行下載
使用步驟:
1.下載apk并安裝至手機設備中
2.打開 [設置] - [語言和輸入法] - [默認輸入法] 缴川,先關掉 [硬件-物理鍵盤] 這個選項(模擬器上一般默認是開啟的)
3.將ADBKeyBoard輸入法設置為默認輸入法,這里可以直接用adb命令設置描馅。也可以手工去設置ADBKeyBoard輸入法為默認輸入法把夸。命令行設置如下:
# 通過adb切換到ADBKeyBoard輸入法 :
adb shell ime set com.android.adbkeyboard/.AdbIME
# 切換回原虛擬鍵盤(如切到swype輸入法)
adb shell ime set com.nuance.swype.dtc/com.nuance.swype.input.IME
4.然后使用如下命令進行中文輸入
adb shell am broadcast -a ADB_INPUT_TEXT --es msg '測試一下中文輸入'
至此,adb簡單使用就介紹到這里铭污。常規(guī)測試過程中可能會用到的命令基本這里都有了恋日。其實adb還有很多其他的強大功能。想要了解的朋友可以自行百度嘹狞。但是看到這里并且全都掌握岂膳,基本上也就夠用了。入門之后再去深入學習和了解就變得很容易了磅网。