前言
adb連手機的時候經常會出現offline的情況,一般殺掉adb,然后重啟adb可以解決。
如果發現不管怎么重啟adb都連不上,一直出現offlie的情況,這個時候很大可能就是adb的5037端口被其它應用占了
offline
1.如果之前一直都能正常連上adb,突然連不上了,可以用adb devices查看手機連接情況
C:\Users\admin>adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
emulator-5554 offline
C:\Users\admin>adb devices
List of devices attached
emulator-5554 offline
2.發現無法連上,出現offline。可以嘗試adb kill-server,然后再用adb device查看
C:\Users\admin>adb kill-server
C:\Users\admin>adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
emulator-5554 offline
3.上面各種辦法嘗試了,都無法解決,接下來就要查看5037端口了
查看端口
1.windows上可以用findstr過濾進程(跟linux上grep指令一樣),查詢結果看最后一項PID,如果是0那就不用管,那最后就有兩個PID占用了5037端口,
分別是6532和7200
netstat -aon|findstr 5037
C:\Users\admin>netstat -aon|findstr 5037
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 6532
TCP 127.0.0.1:5037 127.0.0.1:56975 TIME_WAIT 0
TCP 127.0.0.1:5037 127.0.0.1:56976 TIME_WAIT 0
TCP 127.0.0.1:5037 127.0.0.1:56981 ESTABLISHED 6532
TCP 127.0.0.1:5037 127.0.0.1:56988 TIME_WAIT 0
TCP 127.0.0.1:5037 127.0.0.1:56990 TIME_WAIT 0
TCP 127.0.0.1:5037 127.0.0.1:56991 TIME_WAIT 0
TCP 127.0.0.1:56981 127.0.0.1:5037 ESTABLISHED 7200
2.接下來就行查看PID,看是哪個應用占了
tasklist /fi "PID eq 端口號"
C:\Users\admin>tasklist /fi "PID eq 6532"
映像名稱 PID 會話名 會話# 內存使用
========================= ======== ================ =========== ============
adb.exe 6532 Console 1 18,432 K
C:\Users\admin>tasklist /fi "PID eq 7200"
映像名稱 PID 會話名 會話# 內存使用
========================= ======== ================ =========== ============
emulator-arm.exe 7200 Console 1 884,088 K
3.從結果可以看出,有兩個應用占了,一個是adb本身,另外一個是模擬器(emulator-arm.exe),端口發生沖突了,接下來殺掉占用5037端口的進程
taskkill /pid 7200 /f
C:\Users\admin>taskkill /pid 7200
成功: 已終止 PID 為 7200 的進程。
在學習過程中有遇到疑問的,可以appium+python QQ群交流:330467341
