在上一篇文章中說明了ADB命令的使用方式:
- 使用ADB命令的前提是保證手機或者模擬器和電腦是連接狀態。
- 使用
adb connect 127.0.0.1:+端口號命令,進行鏈接。
本篇文章詳細說明一下常用ADB命令的操作。
1、啟動和關閉ADB服務
在某些情況下,可能需要終止然后再啟動服務端進程,例如ADB不響應命令的時候,可以通過重啟解決問題。
開啟命令行終端執行命令:
- 啟動ADB服務,ADB命令:
adb start-server。 - 關閉ADB服務,ADB命令:
adb kill-server。
演示:
1)啟動ADB服務
C:\Users\L>adb start-server
* daemon not running; starting now at tcp:5037
* daemon started successfully
C:\Users\L>
提示:守護進程沒有開啟,現在通過5037端口開啟守護進程服務。
注意:
- ADB命令默認綁定端口為5037 ,若端口被別的應用綁定則無法啟動ADB服務。
- 一般無需手動執行此命令,在運行ADB命令時若發現
adb server沒有啟動會自動調起。
2)關閉ADB服務
關閉ADB服務沒有任何提示。

2、查看ADB版本
ADB命令:adb version
C:\Users\L>adb version
Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as F:\***\android-sdk-windows\platform-tools\adb.exe
C:\Users\L>
3、指定adb server的網絡端口
ADB命令:adb -P <port> start-server(臨時換一個端口號開啟ADB服務)
默認端口為 5037。
C:\Users\L>adb -P 5039 start-server
* daemon not running; starting now at tcp:5039
* daemon started successfully
C:\Users\L>
提示:
netstat -ano查詢進程ID。taskkill /f /t /im 進程名殺掉進程。
如:taskkill /f /t /im nginx.exe
4、查詢已連接設備/模擬器
ADB命令:adb devices
前提:Android模擬器已開啟。
演示:
(1)直接執行adb devices命令
C:\Users\L>adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
C:\Users\L>
從上面可以看到,如果我們沒有啟動ADB服務,且直接執行adb devices命令,會先自動幫我們開啟ADB服務,在執行adb devices命令,結果沒有查詢到已鏈接的模擬器。
(2)使用ADB服務鏈接Android模擬器
執行命令adb connect 127.0.0.1:21503(注:不同的模擬器的端口號不同)。
C:\Users\L> adb connect 127.0.0.1:21503
connected to 127.0.0.1:21503
C:\Users\L>
(3)再次執行adb devices命令,查詢已連接設備
C:\Users\L>adb devices
List of devices attached
127.0.0.1:21503 device
C:\Users\L>
我們就可以看到ADB服務已經鏈接的設備了
說明:
輸出格式為
[serialNumber] [state]。
serialNumber即我們常說的SN碼,state有如下幾種:
offline:表示設備未連接成功或無響應。device:設備已連接。注意這個狀態並不能標識 Android 系統已經完全啟動和可操作,在設備啟動過程中設備實例就可連接到ADB,但啟動完畢后系統才處於可操作狀態。no device:沒有設備/模擬器連接。
常見異常輸出:
- 沒有設備/模擬器連接成功。
List of devices attached - 設備/模擬器未連接到 adb 或無響應。
List of devices attached cf264b8f offline
5、獲取安卓系統版本
ADB命令:adb shell getprop ro.build.version.release
演示:
C:\Users\L>adb shell getprop ro.build.version.release
7.1.2
C:\Users\L>
6、為命令指定目標設備
如果有多個設備/模擬器連接,則需要為命令指定目標設備。
| 參數 | 含義 |
|---|---|
-d |
指定當前唯一通過 USB 連接的 Android 設備為命令目標 |
-e |
指定當前唯一運行的模擬器為命令目標 |
-s <serialNumber> |
指定相應serialNumber號的設備/模擬器為命令目標 |
在多個設備/模擬器連接的情況下較常用的是 -s <serialNumber> 參數,serialNumber可以通過 adb devices 命令獲取。如:
$ adb devices
List of devices attached
cf264b8f device
emulator-5554 device
10.129.164.6:5555 device
輸出里的 cf264b8f、emulator-5554 和 10.129.164.6:5555 即為serialNumber。
比如這時想指定 cf264b8f 這個設備來運行ADB命令獲取屏幕分辨率:
adb -s cf264b8f shell wm size
又如想給 10.129.164.6:5555 這個設備安裝應用(這種形式的 serialNumber 格式為 <IP>:<Port>,一般為無線連接的設備或 Genymotion 等第三方 Android 模擬器):
adb -s 10.129.164.6:5555 install test.apk
遇到多設備/模擬器的情況均使用這幾個參數為命令指定目標設備
7、發送文件到手機
ADB命令:adb push 電腦端文件路徑\需要發送的文件(全名) /手機端存儲的路徑
提示:
- Android手機存儲卡的根目錄都是
sdcard目錄。(固定死的) - 注意目錄中斜杠的方向。
示例:
將桌面的test.txt文件發送到手機sdcard目錄下。
C:\Users\L>adb push C:\Users\L\Desktop\test.txt /sdcard
C:\Users\L\Desktop\test.txt: 1 file pushed, 0 skipped. 0.0 MB/s (36 bytes in 0.003s)
C:\Users\L>
提示:我們可以把文件直接拖拽到命令行終端中,該文件的路徑和文件名會自動生成。
我們再到Android模擬器中的文件管理器查看test.txt文件是否接收到。

打開文件的內容也是一樣的。
8、從手機拉取文件
ADB命令:adb pull 手機端的路徑/拉取文件名(全名) \電腦端存儲文件路徑
示例:
將手機/sdcard目錄中的test.txt文件,發送到電腦桌面
C:\Users\L>adb pull /sdcard/test.txt C:\Users\L\Desktop
/sdcard/test.txt: 1 file pulled, 0 skipped. 0.0 MB/s (36 bytes in 0.002s)
C:\Users\L>
桌面上會接收到test.txt文件。
注意:練習的時候,文件名盡量不要使用中文,可能測試效果不好。
