Android 设备连接电脑显示offline

        最近玩Android,发现电脑在公司电脑上可以正常连接,回到家里就不行了。用USB线连接手机和电脑,打开cmd,输入adb devices -l, 结果显示可以识别手机,但是状态为offline。

        因为是offline,所以你也无法通过adb logclient得到手机的运行日志。考虑到adb的运行原理,adb包括三个组成部分:

        1. 运行于电脑上的adb客户端,eclipse上面的ADT插件和DDMS也可以产生adb客户端。

        2. 运行于电脑上作为后台进程运行的服务端,负责管理客户端与设备上的adb守护程序之间的通讯。

        3. 以后台进程的形式运行于设备上的守护进程。

    

       工作步骤如下:

       使用adb命令启动客户端,客户端会去确认是否有一个adb服务进程在运行。如果没有,则启动。服务器运行,adb服务器就绑定本地的TCP端口5037并监听adb客户端发来的命令,接着服务器将所有运行的设备建立连接,通过扫描所有的5555到5585范围内的奇数端口来定位所有的设备。一旦服务器找到adb守护进程就建立连接。设备实例会取得两个连续的端口,奇数端口用来响应adb连接,偶数端口用来连接控制台。

        回到问题本身,在其他电脑上能直接连接,说明手机没有问题,可能是服务端进程启动有问题。使用命令adb help可以得到adb的帮助文档。

        

adb get-serialno   可以得到设备的serial number
adb get-state       可以得到设备的状态offline|bootloader|device(现在显示的事offline)
adb status-window   可以连续打印设备状态(事实证明这个确实有用)

    接着,打开另外一个终端

    

adb kill-server   kill server进程
adb start-server 确保server进程启动

显示:

* daemon not running. starting it now on port 5037 *
* daemon started successfully *

另外一个窗口显示:
C:\Users\asus\Desktop>adb status-window
[2J[2HAndroid Debug Bridge
State: unknown
[2J[2HAndroid Debug Bridge
State: device

貌似已经OK了

    这个时候再来检查设备

    adb devices -l

    已经有内容输出了:

    

C:\Users\asus>adb devices -l
List of devices attached
34bd66f2        device

    貌似蛮有意思的。。。

猜你喜欢

转载自david-je.iteye.com/blog/1892561