adb簡單教程


1.概念
其實我們口中所講的adb是個泛指,這其中有兩個工具——Fastboot和ADB
 
fastboot 快速啟動,usb鏈接數據線的一種刷機方式
 
ADB 調試安卓或者按照app的工具,是安卓sdk中的一種工具,用此工具可以調試安卓模擬器或者真機
ps:冷知識
一般Android設備連接WinXP是無需安裝驅動的
 
2.adb的功能

運行設備的shell(命令行)

管理模擬器或設備的端口映射

計算機和設備之間上傳/下載文件

將本地apk軟件安裝至模擬器或android設備

ADB是一個客戶端-服務器端 程序, 其中客戶端是你用來操作的電腦, 服務器端是android設備。而ADB驅動就是電腦與android設備的通信的客戶端驅動程序。

所有能對手機的操作都能用adb實現。也就是說如果你玩的6,你就是觸摸屏完全壞了,顯示屏完全壞了,就只是給你一個主板,你照樣能完成你要做的動作。當然在一般場景不推薦這樣做,效率優先嘛。
ps:下載adb工具的時候,很多包都把這兩個工具打包在一起了
 
3.使用方法
a.電腦下載並安裝好adb工具
安卓開發者網站 https://developer.android.google.cn/studio/releases/platform-tools?hl=en 下載對應的adb安卓包
解壓后,配置環境變量,即有adb.exe的那層目錄文件路徑配置在環境變量中path中
cmd輸入adb,如果有adb版本信息,證明電腦已經安裝adb工具成功
 
ps:
如果沒有配置adb環境變量,需要先cd到adb.exe那層目錄下,再去輸入adb命令才能成功
或者在adb.exe所在文件夾下的空白處,按住shift+右鍵,會出現以下選項 “在此處打開打開powershell窗口”,進入powershell窗口后,先輸入cmd命令切換到命令提示符模式,再輸入adb命令即可進入adb模式
 
b.確保手機已開啟usb調試模式
手機數據線鏈接電腦,cmd中輸入adb devices 查看已鏈接成功的設備
 
c.通過驅動軟件,驅動精靈/驅動人生等,將你的android手機驅動安裝好  (這個看網上都有說,但是不知道為什么,我的手機並沒有需要這個步驟,有點奇怪)
 
a.b操作以后,我們技能對手機進行adb命令操作了
 
4.使用原理
adb是一個c/s架構程序,由三部分組成
 
1.運行在pc的adb client(客戶端),用來運行shell或者adb命令, adb”程序嘗試定位主機上的ADB服務器,如果找不到ADB服務器,“adb”程序自動啟動一個ADB服務器。接下來,當設備的adbd和pc端的adb server建立連接后,adb client就可以向ADB servcer發送服務請求;
 
2.運行在pc端的adb server:
ADB Server是運行在主機上的一個后台進程。它的作用在於檢測USB端口感知設備的連接和拔除,以及模擬器實例的啟動或停止,ADB Server還需要將adb client的請求通過usb或者tcp的方式發送到對應的adbd上;
 
3.運行在設備端的常駐進程adb demon (adbd):
程序“adbd”作為一個后台進程在Android設備或模擬器系統中運行。它的作用是連接ADB服務器,並且為運行在主機上的客戶端提供一些服務;
 
總結起來就是:

adb有三大部分組件:

客戶端(client)

運行在你自己的電腦上,可以通過shell來調起一個客戶端

服務器(server)

運行在電腦的后台,負責管理client和damon進行通信

守護進程(damon)

 
5.開始使用adb命令,常用操作命令如下:
基本命令格式:
adb [-d|-e|-s ]
-d 指定當前唯一通過 USB 連接的 Android 設備為命令目標
-e 指定當前唯一運行的模擬器為命令目標
-s <serialNumber> 指定相應 serialNumber 號的設備/模擬器為命令目標
在多個設備/模擬器連接的情況下較常用的是 -s 參數,serialNumber 可以通過 adb devices 命令獲取
 

如:

adb -s cf264b8f shell wm size  獲取手機屏幕尺寸

 

作為測試需要掌握的adb命令:

1.adb shell 進入adb  shell模式

2.adb pull <手機路徑> <電腦路徑> 把手機中文件拉去到電腦中  手機路徑可以用ls/cd等來找到3

 

1.adb install +包名       adb安裝apk (覆蓋安裝是使用 -r 選項)

 

2. adb uninstall +包名      adb卸載apk

 

3. adb connect +設備IP      網絡連接Android設備

 

4. adb reboot       重啟Android設備

 

5. adb devices      獲取連接的設備列表及設備狀態

 

6. adb get-state    獲取設備的狀態 (設備的狀態有 3 鍾,device:設備正常連接 , offline:連接出現異常,設備無響應 , unknown:沒有連接設備)

 

7.查看運行在 Android設備上的  adb 后台進程:

 

執行  adb shell ps | grep adbd ,可以找到該后台進程,windows 請使用 findstr 替代 grep

adb shell 命令:
adb shell 命令 
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/> 

 
遇到的問題:
1. adb root沒有生效
這個真的無需內核是否支持,與內核無關,即原生的就行。手機擁有可以 授權的工具。
2,百度后,說需要自己先下載root工具,獲取root權限后,再次執行命令才有用,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM