appium+python自动化40-adb offline(5037端口被占)

前言

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

posted @ 2018-05-08 16:27  上海-悠悠  阅读(3642)  评论(0编辑  收藏  举报