`
xumingrencai
  • 浏览: 1180481 次
文章分类
社区版块
存档分类
最新评论

(转)adb 的原理以及它总重启等问题详解

 
阅读更多

1、adb(Android Debug Bridge) 意为android调试桥。

  是android系统中的一种命令行工具,通过它可以和android设备或模拟器通信。

  ADB是一个C/S架构的应用程序,由三部分组成:

  1)adb client, 运行在PC上(为DDMS,即IDE工作)

  2)adb daemon(守护进程), 运行于Emulator(为与Emulator中的VM交互工作);

  3)adb server(服务进程), 运行在PC(任务管理器上有),管理着adb client和adb daemon的通信。server与client通信的端口是是5037,adb server会与emulator交互的,使用的端口有两个,一个是5554专门用于与Emulator实例的连接,那么数据可以从Emulator转发给IDE控制台了,另一个则是5555,专门与adb daemon连接为后面调试使用。
PS:Emulator/Device占用两个(一组)端口,一个为偶数的5554,一个奇数的5555。
如果还开启其他的Emulator,则使用的另一组端口是5556,5557,一直到5585.
adb server开启时就是通过查找5555-5585之间端口来建立与模拟器的连接的,建立连接后就可以用adb的相关命令了。

  ADB的原理详图解

  

  

  这下总明白了吧。

2.DDMS

  在Eclipse开发工具中开发时,右上角可打开DDMS面板。Android 开发环境中的针对设备上Dalvik虚拟机调试监控服务。它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等服务。DDMS启动后会自动调用ADB服务,从而启动ADB服务,而不用开发者手动去启动ADB工具。  因为当用数据线连接设备到电脑上时,adb就会启动(前提是android设备上得先打开“USB调试”模式)。像各种手机助手类的软件主要也是通过调用adb或者ddms来获取和操作手机上的APP。个人感觉因为涉及的东西比较多,有数据线的问题,硬件接口的问题,还有adb,ddms能否顺利启动的问题,所以会出现有时候adb启动会了,或者总是重启。

3.问题

  因为当用数据线连接设备到电脑上时,adb就会启动(前提是android设备上得先打开“USB调试”模式)。像各种手机助手类的软件主要也是通过调用adb或者ddms来获取和操作手机上的APP。个人感觉因为涉及的东西比较多,有数据线的问题,硬件接口的问题,还有adb,ddms能否顺利启动的问题,所以会出现有时候adb启动会了,或者总是重启。

4.解决办法

有个老外总结的比较全面:

Try below steps:

  1. Close the Eclipse if running
  2. Go to the Android SDK tools directory in Command Prompt
  3. typeadb kill-server
  4. then typeadb start-server
  5. No error message is thrown while starting ADB server, then adb is started successfully.
  6. Now you can start Eclipse again.
  7. 个人再补一条,重启电脑。

it worked for me this way, Eclipse should be closedbeforeissuing these commands.

前提是你的adb已经配置好了。 如果这时候依然didn't ACK,那么启动任务管理器,看看是否有adb.exe.有的话关掉,再重复以上动作就可以了。

这个问题是开发中的老大难问题,通过以上方法,大不了多折腾几遍应该能解决类似于“ADB server didn't ACK * failed to start daemon”的问题。

参考资料:

1.http://game.chinaitlab.com/devdoc/856386.html

2.http://blog.sina.com.cn/s/blog_51335a000101j59n.html

3.http://www.cnblogs.com/miya2012/archive/2012/06/05/2536028.html

4.http://baike.baidu.com/view/2688850.htm

5.http://baike.baidu.com/view/46000.htm#3

Author By Andy Zhai

-0:39  16/04/2013


转自:http://www.cnblogs.com/carmanloneliness/archive/2013/04/16/3023299.html

分享到:
评论

相关推荐

    adb批量重启.bat

    adb设备批量重启,安卓设备批量重启,批处理文件

    adb原理详解

    做Android的开发或者app测试,adb在其中起了不少作用,了解adb的原理是很有必要的

    adb驱动解决重启问题

    adb.exe 新版本手机连接adb可能会出现反复重启的现象,该版本可以解决此问题。解压后把目录加入到path即可。

    adb操作命令详解及大全

    adb操作命令详解及大全,adb操作命令详解及大全,adb操作命令详解及大全

    adb异常重启工具

    adb异常重启工具

    adb命令详解.pdf

    adb命令详解 ADB是android debug bridge的缩写,负责计算机与Android设备的几乎所有通信和协作,可以认为是连接两者的桥梁

    Android ADB 实现原理

    内部培训时,本人写的Android ADB 实现原理介绍。每行文字,每个图片都是本人亲手用 LaTeX 画的。

    adb命令详解

    adb命令详解adb命令详解adb命令详解adb命令详解adb命令详解

    Androidadb操作详解

    Androidadb操作详解 db操作阐述 不错的哦

    Android中的adb命令详解

    Android中的adb命令详解,Android中的adb命令详解

    adb操作命令详解.doc

    adb操作命令详解.doc adb操作命令详解.doc

    adb-fastboot刷机工具包

    adb常用命令: adb devices 列出adb设备 adb reboot 重启设备 adb reboot boot loader 重启到fastboot模式 adb reboot recouery 重启到recovery模式 fastboot常用命令: fastboot devices 列出fas tboot设备 ...

    adb工作原理

    文中描述了adb的系统结构和工作原理,特别是adb client adb server adbd之间的关系

    Linux下Android ADB驱动安装详解

    Linux下Android ADB驱动安装详解

    ADB工具箱ADB工具箱ADB工具箱

    ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱ADB工具箱...

    adb.exe 命令详解及adb安装说明

    ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机). 它的主要功能有: * 运行设备的shell(命令行) * 管理模拟器或设备的端口映射 *...

    Adbtools新版Adbtools新版

    Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools新版Adbtools...

    adb操作命令详解[收集].pdf

    adb操作命令详解[收集].pdf

    关于adb调试的详解

    一、Ubuntu adb环境配置 1. 安装 adb 下载代码编译完成后,会在/home/apuser/6810_ts_code/out/host/linux-x 86/bin/生成adb文件,需要拷贝到/usr/bin目录下,并更改权限。在终端运行 adb help,查看adb是否安装成功...

    adbkey-adbkey

    adbkey-adbkey

Global site tag (gtag.js) - Google Analytics