adb 測試同學常用命令詳解

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服務

常見問題:

  1. 使用 adb devices 命令的時候查找不到設備列表。這個時候可以嘗試關閉并重啟adb服務然后看下是否可以正常重啟
  2. 啟動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

說明:

  1. 127.0.0.1:7555 ,這個是設備序列號夺溢。當電腦連接多個手機設備時论巍,使用 adb -s "序列號" 命令指定設備進行操作,比如:
adb -s  "127.0.0.1:7555" shell ls    # 列出指定序列號設備當前目錄下的文件列表
  1. device风响, 這個是設備的連接狀態(tài)嘉汰,連接狀態(tài)總共有以下三種

device: 設備現(xiàn)已連接到 adb 服務器
offline: 設備未連接到 adb 或沒有響應
no device:未連接任何設備

使用adb devices無法列出設備的幾種情況:

  1. 可能是手機未開啟設置。查看手機開發(fā)者模式中[允許usb調試]是否已打開状勤。默認情況下手機是不會默認開啟該設置的鞋怀。需要手動開啟
  2. 如果使用的是模擬器,可能是端口問題持搜∶芩疲可以使用以下命令:
adb connect 127.0.0.1:7555      # 網(wǎng)易mumu模擬器端口7555
adb connect 127.0.0.1:21503    # 逍遙模擬器端口21503
  1. 如果使用的是模擬器,也可能是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    #刪除應用

注意:

  1. 這里的包名指的是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鍵

這里要注意:

  1. 要使用adb shell input tap x, y需要先知道如何獲取到某一個點的坐標玖姑,獲取坐標的方式有很多,可以使用uiautomatorviewer慨菱, 但是還要設置環(huán)境變量焰络,下載包等,個人覺得比較麻煩符喝,建議打開手機 [開發(fā)者選項] 中的 [指針位置]闪彼。這樣在你手動點擊的時候就可以看到你點擊位置的絕對坐標了
  2. 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還有很多其他的強大功能。想要了解的朋友可以自行百度嘹狞。但是看到這里并且全都掌握岂膳,基本上也就夠用了。入門之后再去深入學習和了解就變得很容易了磅网。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末谈截,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子知市,更是在濱河造成了極大的恐慌傻盟,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嫂丙,死亡現(xiàn)場離奇詭異娘赴,居然都是意外死亡,警方通過查閱死者的電腦和手機跟啤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門诽表,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人隅肥,你說我怎么就攤上這事竿奏。” “怎么了腥放?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵泛啸,是天一觀的道長。 經常有香客問我秃症,道長候址,這世上最難降的妖魔是什么诞吱? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任粗井,我火速辦了婚禮件舵,結果婚禮上酵熙,老公的妹妹穿的比我還像新娘。我一直安慰自己伞广,他們只是感情好轩拨,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布扩氢。 她就那樣靜靜地躺著,像睡著了一般炸卑。 火紅的嫁衣襯著肌膚如雪既鞠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天盖文,我揣著相機與錄音损趋,去河邊找鬼。 笑死椅寺,一個胖子當著我的面吹牛,可吹牛的內容都是我干的蒋失。 我是一名探鬼主播返帕,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼篙挽!你這毒婦竟也來了荆萤?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤铣卡,失蹤者是張志新(化名)和其女友劉穎链韭,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體煮落,經...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡敞峭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蝉仇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旋讹。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖轿衔,靈堂內的尸體忽然破棺而出沉迹,到底是詐尸還是另有隱情,我是刑警寧澤害驹,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布鞭呕,位于F島的核電站,受9級特大地震影響宛官,放射性物質發(fā)生泄漏葫松。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一摘刑、第九天 我趴在偏房一處隱蔽的房頂上張望进宝。 院中可真熱鬧,春花似錦枷恕、人聲如沸党晋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽未玻。三九已至灾而,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扳剿,已是汗流浹背旁趟。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留庇绽,地道東北人锡搜。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像瞧掺,于是被迫代替她去往敵國和親耕餐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345