adb工具的基本使用

安卓開發(fā),android studio,sdk,apk,這些名字在安卓開發(fā)中并不陌生。

adb的全稱是:android debug bridge,即安卓調(diào)試橋。如字面意思adb工具就是用來調(diào)試安卓設(shè)備的,再具體一點(diǎn)就是通過pc來連接控制安卓設(shè)備;

1.下載與安裝

  • 下載地址:adb工具下載-windows

  • 設(shè)置環(huán)境變量:從以上鏈接下載對(duì)應(yīng)安裝包后,解壓到自定義目錄,打開文件夾,可以看到adb.exe文件,所以接下來的就是將該目錄加入到全局環(huán)境變量中,這樣就可以在命令行中直接使用;

  • 檢查是否安裝成功:

    adb version

    Android Debug Bridge version 1.0.41
    Version 31.0.3-7562133
    Installed as D:\platform-tools\adb.exe</pre>

    • 顯示如上結(jié)果則表示安裝和設(shè)置成功。

2.adb使用場(chǎng)景

  1. 連接電腦上安裝的安卓模擬器。在通過AS運(yùn)行安卓程序時(shí)可選擇第三方安卓模擬器進(jìn)行。(Android Studio是極其占用資源的,配置低的電腦用AS自帶的模擬器,容易卡死,第三方模擬器可以較有效處理這個(gè)問題)

  2. 連接安卓手機(jī)。安卓系統(tǒng)都有一個(gè)開發(fā)者模式,開啟開發(fā)者模式中的usb調(diào)試后,使用adb工具能對(duì)安卓系統(tǒng)進(jìn)行一定的操作。(比如:常見的操作有返回,主頁(yè),安裝應(yīng)用,打開應(yīng)用,熄屏,亮屏)

3.adb的常用指令

  1. 開啟和關(guān)閉adb服務(wù):adb start -serveradb kill-server。網(wǎng)上大部分資料都把這兩條指令作為了第一條,但主觀認(rèn)為這兩條命令基本不會(huì)用上;因?yàn)橐呀?jīng)設(shè)置了adb的全局環(huán)境變量,只要在命令行使用adb指令自然就啟動(dòng)了(未連接設(shè)備狀態(tài)),另外在連接設(shè)備成功后,adb的調(diào)試功能也會(huì)自動(dòng)啟動(dòng)(正常調(diào)試狀態(tài));

  2. 連接安卓設(shè)備:adb connect [ip]:端口本機(jī)模擬器的話,不同模擬器開啟的端口不同,但ip都設(shè)為127.0.0.1;安卓設(shè)備的話,存在兩種連接方式:有線連接和無線連接;

    • 有線連接:使用usb線將安卓設(shè)備與pc相連。pc確??梢哉_\(yùn)行adb工具,安卓設(shè)備確保開啟了開發(fā)者模式(不同品牌手機(jī)開啟方式不同,可以自行查詢,比如:vivo設(shè)置-系統(tǒng)管理-關(guān)于手機(jī)-軟件版本號(hào)7次以上)并將usb調(diào)試功能打開(vivo開啟開發(fā)者模式后,返回到系統(tǒng)管理界面可以看到開發(fā)者選項(xiàng),將usb調(diào)試功能打開)。連接后,pc端通過命令行啟動(dòng)adb,這時(shí)安卓設(shè)備一般會(huì)提示是否運(yùn)行usb調(diào)試?,選擇允許后,adb工具設(shè)備列表可以正確顯示當(dāng)前連接設(shè)備;

    • 無線連接:確保pc和安卓設(shè)備在同一局域網(wǎng)內(nèi),查看安卓設(shè)備的ip信息,因?yàn)檫€缺少端口信息,根據(jù)設(shè)備的初始設(shè)定不同,有的設(shè)備預(yù)定義了端口,查閱相關(guān)文檔資料可以找到;而有的設(shè)備需要自行定義相應(yīng)端口,如個(gè)人移動(dòng)設(shè)備,在有線連接成功的基礎(chǔ)上使用adb tcpip 端口就可以將調(diào)試端口設(shè)定為自定義的端口;

  3. 查看連接設(shè)備:adb devices。檢測(cè)設(shè)備是否連接成功可以通過該指令進(jìn)行查看,需要注意的是,對(duì)應(yīng)設(shè)備序列或ip信息后的狀態(tài)欄信息:如果是unauthorized一般是因?yàn)槲丛诎沧吭O(shè)備上進(jìn)行usb調(diào)試授權(quán),device則表示被正常連接;另外adb一次只能控制一臺(tái)設(shè)備,所以當(dāng)列表中有多臺(tái)設(shè)備的時(shí)候,就需要將不操作的設(shè)備斷開連接adb disconnect ip:端口;

  4. 點(diǎn)亮屏幕adb shell input keyevent 224

  5. 熄滅屏幕adb shell input keyevent 223

  6. 按下返回鍵adb shell input keyevent 4

  7. 按下HOME鍵adb shell input keyevent 3

  8. 按下電源鍵adb shell inpuy keyevent 26

  9. 查看應(yīng)用列表adb shell pm list packages

  10. 啟動(dòng)應(yīng)用adb shell monkey -p <packagename> -c android.intent.category.LAUNCHER 1

  11. 強(qiáng)行退出應(yīng)用adb shell am force-stop <packagename>

  12. 撥號(hào)adb shell am start -a android.intent.action.DIAL -d tel:10086

  13. 通話adb shell am start -a android.intent.action.CALL -d tel:10086

  14. 點(diǎn)擊坐標(biāo)adb shell input tap x坐標(biāo) y坐標(biāo)

* 如果能獲取安卓應(yīng)用中每個(gè)操作項(xiàng)的具體坐標(biāo)就能通過點(diǎn)擊操作對(duì)整個(gè)應(yīng)用進(jìn)行操作;
  1. 兩點(diǎn)畫線adb shell input swipe 坐標(biāo)1:X軸坐標(biāo) 坐標(biāo)1:Y軸坐標(biāo) 坐標(biāo)2:X軸坐標(biāo) 坐標(biāo)2:Y軸坐標(biāo)
*   安卓組件的布局方式為了保證其通用性,一般采用的是相對(duì)布局的方式,但對(duì)應(yīng)到用戶的操作,使用的是絕對(duì)坐標(biāo);而對(duì)于屏幕絕對(duì)坐標(biāo)的獲取,除了逐個(gè)范圍調(diào)試外,開發(fā)者模式中能夠開啟報(bào)點(diǎn)功能。

3.項(xiàng)目實(shí)操

在安卓設(shè)備的畫板上打印輸出HELLO字樣,并保存。

  1. 準(zhǔn)備功能

    • pc安裝adb工具并在確保在命令行可操作執(zhí)行;

    • 安卓設(shè)備開啟開發(fā)者模式并打開usb調(diào)試功能;

    • pc和安卓連接到同一局域網(wǎng)以確保adb工具可連接安卓設(shè)備;

  2. 具體實(shí)現(xiàn)

    • 連接安卓設(shè)備;

    • 查看安卓設(shè)備中的應(yīng)用列表;

    • 打開畫板類應(yīng)用;

    • 使用兩點(diǎn)畫線繪制字樣;

    • 使用單點(diǎn)點(diǎn)擊選中保存功能;

    • 退出應(yīng)用;

    • 命令行單命令調(diào)試,整合形成腳本文件(.bat);

  3. 效果檢查

    • 畫線過程中查看報(bào)點(diǎn)情況;

    • 查看保存文件內(nèi)容;

  4. 功能優(yōu)化

    • cmd下的單命令執(zhí)行效率較低,每個(gè)坐標(biāo)都是逐個(gè)輸入的。powershell是cmd的功能升級(jí),可執(zhí)行一定的編程腳本,如創(chuàng)建變量或循環(huán)執(zhí)行;為提高操作的復(fù)用性,可以抽取打印字樣的相同點(diǎn),編寫相應(yīng)的接口函數(shù)(如橫線,豎線……);

    • bat文件與powershell的結(jié)合使用,需要另外查找相關(guān)資料;

  5. 最終效果展示

    HELLO字樣.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容