ADB九榔,即 Android Debug Bridge哀峻,它是 Android 開發(fā)/測試人員不可替代的強(qiáng)大工具,也是 Android 設(shè)備玩家的好玩具哲泊。
注: 有部分命令的支持情況可能與 Android 系統(tǒng)版本及定制 ROM 的實現(xiàn)有關(guān)剩蟀。
- [設(shè)備連接管理]
- [查詢已連接設(shè)備/模擬器]
- [USB 連接]
- [無線連接(需要借助 USB 線)]
- [無線連接(無需借助 USB 線)]
設(shè)備連接管理
查詢已連接設(shè)備/模擬器
命令:
adb devices
輸出示例:
List of devices attached
cf264b8f device
emulator-5554 device
10.129.164.6:5555 device
輸出格式為 [serialNumber] [state]
,serialNumber 即我們常說的 SN切威,state 有如下幾種:
offline
—— 表示設(shè)備未連接成功或無響應(yīng)育特。device
—— 設(shè)備已連接。注意這個狀態(tài)并不能標(biāo)識 Android 系統(tǒng)已經(jīng)完全啟動和可操作牢屋,在設(shè)備啟動過程中設(shè)備實例就可連接到 adb且预,但啟動完畢后系統(tǒng)才處于可操作狀態(tài)。no device
—— 沒有設(shè)備/模擬器連接烙无。
以上輸出顯示當(dāng)前已經(jīng)連接了三臺設(shè)備/模擬器锋谐,cf264b8f
、emulator-5554
和 10.129.164.6:5555
分別是它們的 SN截酷。從 emulator-5554
這個名字可以看出它是一個 Android 模擬器涮拗,而 10.129.164.6:5555
這種形為 <IP>:<Port>
的 serialNumber 一般是無線連接的設(shè)備或 Genymotion 等第三方 Android 模擬器。
常見異常輸出:
-
沒有設(shè)備/模擬器連接成功迂苛。
List of devices attached
-
設(shè)備/模擬器未連接到 adb 或無響應(yīng)三热。
List of devices attached cf264b8f offline
USB 連接
通過 USB 連接來正常使用 adb 需要保證幾點:
-
硬件狀態(tài)正常。
包括 Android 設(shè)備處于正常開機(jī)狀態(tài)三幻,USB 連接線和各種接口完好就漾。
-
Android 設(shè)備的開發(fā)者選項和 USB 調(diào)試模式已開啟。
可以到「設(shè)置」-「開發(fā)者選項」-「Android 調(diào)試」查看念搬。
如果在設(shè)置里找不到開發(fā)者選項抑堡,那需要通過一個彩蛋來讓它顯示出來:在「設(shè)置」-「關(guān)于手機(jī)」連續(xù)點擊「版本號」7 次摆出。
-
設(shè)備驅(qū)動狀態(tài)正常。
這一點貌似在 Linux 和 Mac OS X 下不用操心首妖,在 Windows 下有可能遇到需要安裝驅(qū)動的情況偎漫,確認(rèn)這一點可以右鍵「計算機(jī)」-「屬性」,到「設(shè)備管理器」里查看相關(guān)設(shè)備上是否有黃色感嘆號或問號有缆,如果沒有就說明驅(qū)動狀態(tài)已經(jīng)好了象踊。否則可以下載一個手機(jī)助手類程序來安裝驅(qū)動先。
-
通過 USB 線連接好電腦和設(shè)備后確認(rèn)狀態(tài)棚壁。
adb devices
如果能看到
xxxxxx device
說明連接成功杯矩。
無線連接(需要借助 USB 線)
除了可以通過 USB 連接設(shè)備與電腦來使用 adb,也可以通過無線連接——雖然連接過程中也有需要使用 USB 的步驟袖外,但是連接成功之后你的設(shè)備就可以在一定范圍內(nèi)擺脫 USB 連接線的限制啦菊碟!
操作步驟:
將 Android 設(shè)備與要運行 adb 的電腦連接到同一個局域網(wǎng),比如連到同一個 WiFi在刺。
-
將設(shè)備與電腦通過 USB 線連接。
應(yīng)確保連接成功(可運行
adb devices
看是否能列出該設(shè)備)头镊。 -
讓設(shè)備在 5555 端口監(jiān)聽 TCP/IP 連接:
adb tcpip 5555
斷開 USB 連接蚣驼。
-
找到設(shè)備的 IP 地址。
一般能在「設(shè)置」-「關(guān)于手機(jī)」-「狀態(tài)信息」-「IP地址」找到相艇,也可以使用下文里 [查看設(shè)備信息 - IP 地址][1] 一節(jié)里的方法用 adb 命令來查看颖杏。
-
通過 IP 地址連接設(shè)備。
adb connect <device-ip-address>
這里的
<device-ip-address>
就是上一步中找到的設(shè)備 IP 地址坛芽。 -
確認(rèn)連接狀態(tài)留储。
adb devices
如果能看到
<device-ip-address>:5555 device
說明連接成功。
如果連接不了咙轩,請確認(rèn) Android 設(shè)備與電腦是連接到了同一個 WiFi获讳,然后再次執(zhí)行 adb connect <device-ip-address>
那一步;
如果還是不行的話活喊,通過 adb kill-server
重新啟動 adb 然后從頭再來一次試試丐膝。
斷開無線連接
命令:
adb disconnect <device-ip-address>
無線連接(無需借助 USB 線)
注:需要 root 權(quán)限。
上一節(jié)「無線連接(需要借助 USB 線)」是官方文檔里介紹的方法钾菊,需要借助于 USB 數(shù)據(jù)線來實現(xiàn)無線連接帅矗。
既然我們想要實現(xiàn)無線連接,那能不能所有步驟下來都是無線的呢煞烫?答案是能的浑此。
-
在 Android 設(shè)備上安裝一個終端模擬器。
已經(jīng)安裝過的設(shè)備可以跳過此步滞详。我使用的終端模擬器下載地址是:Terminal Emulator for Android Downloads
將 Android 設(shè)備與要運行 adb 的電腦連接到同一個局域網(wǎng)凛俱,比如連到同一個 WiFi紊馏。
-
打開 Android 設(shè)備上的終端模擬器,在里面依次運行命令:
su setprop service.adb.tcp.port 5555
-
找到 Android 設(shè)備的 IP 地址最冰。
一般能在「設(shè)置」-「關(guān)于手機(jī)」-「狀態(tài)信息」-「IP地址」找到瘦棋,也可以使用下文里 [查看設(shè)備信息 - IP 地址][1] 一節(jié)里的方法用 adb 命令來查看。
-
在電腦上通過 adb 和 IP 地址連接 Android 設(shè)備暖哨。
adb connect <device-ip-address>
這里的
<device-ip-address>
就是上一步中找到的設(shè)備 IP 地址赌朋。如果能看到
connected to <device-ip-address>:5555
這樣的輸出則表示連接成功。
節(jié)注一:
有的設(shè)備篇裁,比如小米 5S + MIUI 8.0 + Android 6.0.1 MXB48T沛慢,可能在第 5 步之前需要重啟 adbd 服務(wù),在設(shè)備的終端模擬器上運行:
restart adbd
如果 restart 無效达布,嘗試以下命令:
stop adbd
start adbd