每天一個(gè)安卓測(cè)試開發(fā)小知識(shí)之 (六)---常用的adb 命令第四期
每天一個(gè)安卓測(cè)試開發(fā)小知識(shí)之 (六)---常用的adb 命令第四期
本期繼續(xù)介紹adb命令
- root adb
- 查看app進(jìn)程id
- adb服務(wù)端重啟
- 獲取當(dāng)前界面的xml
- adb命令輸入text
1. root adb
root的作用是什么 如何進(jìn)入root 如何退出 什么下才可以root
1.1 adb root 命令的作用
重啟
adbd守護(hù)進(jìn)程(adbd daemon,運(yùn)行在手機(jī)中的進(jìn)程),使其以 root 權(quán)限運(yùn)行,相當(dāng)于root狀態(tài)比非root狀態(tài)的權(quán)限要高,可執(zhí)行的adb 命令要多
- 普通模式:當(dāng)你在設(shè)備上執(zhí)行 adb shell 時(shí),你進(jìn)入的是一個(gè)受限的 shell 環(huán)境,擁有的是普通用戶(通常是 shell)的權(quán)限,無(wú)法訪問(wèn)系統(tǒng)關(guān)鍵文件和執(zhí)行特權(quán)命令。
- root 模式:執(zhí)行 adb root 后,adbd 進(jìn)程本身獲得了 root 權(quán)限。之后你再執(zhí)行 adb shell,將會(huì)直接獲得一個(gè) # 符號(hào)的 root shell,擁有系統(tǒng)的最高權(quán)限。
1.2 什么情況下才可以進(jìn)入root
adb root 命令并非在所有設(shè)備上都有效。它的成功執(zhí)行完全取決于設(shè)備的ro.debuggable 這個(gè)系統(tǒng)屬性。
ro.debuggable屬性的獲取 可以通過(guò)之前介紹的adb shell getprop查看( 可查看之前文章)
![在這里插入圖片描述]()
當(dāng)ro.debuggable屬性的值等于1時(shí)才可以執(zhí)行adb root命令獲取到root權(quán)限
當(dāng)手機(jī)是root版本 或者userdebug版本的時(shí)候ro.debuggable屬性值才是1, 一般手機(jī)都是user的,所以不能進(jìn)入rootroot版本 或者userdebug版本必須刷指定的系統(tǒng)才能實(shí)現(xiàn)user版本的手機(jī)可以通過(guò)工具取得了root權(quán)限,這里不具體介紹
1.3 進(jìn)入root
adb root

當(dāng)已經(jīng)是root狀態(tài)時(shí) 執(zhí)行adb root

1.4 退出root
adb unroot
當(dāng)已經(jīng)是非root狀態(tài)時(shí),執(zhí)行 adb unroot

2. 查看app進(jìn)程id
很多情況下,需要獲取app的進(jìn)程id來(lái)kil進(jìn)程或者用來(lái)查看進(jìn)程
adb shell pidof 包名 例如 獲取com.android.settings 的進(jìn)程id,包名的獲取可參考包名獲取

可以通過(guò) pid來(lái)kill進(jìn)程,因?yàn)?code>adb不是root所以不能kill掉設(shè)置這個(gè)進(jìn)程

可以通過(guò)pid過(guò)濾對(duì)應(yīng)app的日志

3. adb服務(wù)端重啟
在執(zhí)行自動(dòng)化測(cè)試中 adb命令會(huì)出現(xiàn)卡死的情況,或者第一次執(zhí)行adb命令需要啟動(dòng)adb server
- 啟動(dòng)adb server
adb start-server
- kill adb server
adb kill-server
![在這里插入圖片描述]()
有時(shí)候需要查看adb server的日志 確認(rèn)測(cè)試中是不是手機(jī)離線導(dǎo)致的問(wèn)題 - linux 或者 mac 系統(tǒng)中 日志保存在
/tmp/adb.***.log - windows保存在
c盤,用戶目錄下 文件名 adb_log,可以直接在C盤下搜索
4. 獲取當(dāng)前界面的xml
有時(shí)候我們?cè)谧鯱I自動(dòng)化時(shí),有些控件找不到時(shí),需要dump下當(dāng)前頁(yè)面的xml,來(lái)輔助判斷
adb shell uiautomator dump /data/local/tmp/text.xml
/data/local/tmp/text.xml 是手機(jī)中保存xml文件的文件路徑,保存完后,可通過(guò)adb pull命令將文件拉到主機(jī)中,adb pull命令
5. 輸入text
有時(shí)候UI界面的元素不好定位,比如輸入短信驗(yàn)證碼的情況下,難以實(shí)現(xiàn)輸入文字,就可以考慮通過(guò)adb shell命令輸入文字
adb shell input text 123
123 是要輸入的文字,但是要執(zhí)行 input text 命令需要打開開發(fā)者-USB調(diào)試(安全設(shè)置),打開開發(fā)者模式可參考開發(fā)者設(shè)置
以小米手機(jī)為例,

例如我們將光標(biāo)放在設(shè)置的搜索框中,然后執(zhí)行 adb shell input text 123


本期的分享就到這里,每天進(jìn)步一點(diǎn)點(diǎn)!!


浙公網(wǎng)安備 33010602011771號(hào)