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. type adb kill-server
  4. then type adb 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 closed before issuing 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

  

转载于:https://www.cnblogs.com/carmanloneliness/archive/2013/04/16/3023299.html

adb 的原理以及它总重启等问题详解相关推荐

  1. InheritableThreadLocal类原理简介使用 父子线程传递数据详解 多线程中篇(十八)...

    上一篇文章中对ThreadLocal进行了详尽的介绍,另外还有一个类: InheritableThreadLocal 他是ThreadLocal的子类,那么这个类又有什么作用呢? 测试代码 publi ...

  2. 共模扼流圈的工作原理与作用以及特点和应用详解

    共模扼流圈的工作原理与作用以及特点和应用详解 - 电子常识 - 电子发烧友网 http://www.elecfans.com/dianzichangshi/20170609523118.html 共模 ...

  3. 图像仿射变换原理3:仿射变换类型及变换矩阵详解

    ☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 仿射变换博文传送门(带星号的为付费专栏文章): *图像仿射变换原理1:齐次坐标来龙去脉详解 ...

  4. Android自动化测试环境部署及adb sdkmanager avdmanager Monitor DDMS工具使用及命令详解

    环境部署及工具使用 系列文章 前言 环境部署 硬件环境 软件环境 ADB工具 adb组成 adb命令 android命令 sdkmanager 命令 avdmanager命令 管理模拟器 monito ...

  5. OkHttp原理第五篇-Cache缓存类详解

    ✨作者简介:00后,22年刚刚毕业,一枚在鹅厂搬砖的程序员. ✨前置任务:本篇是CacheInterceptor的补充文章,重点讲解OkHttp的缓存类,读者最好也了解下,虽然不太影响后续文章的阅读, ...

  6. Redis系列教程(九):Redis的内存回收原理,及内存过期淘汰策略详解

    Redis内存回收机制 Redis的内存回收主要围绕以下两个方面: 1.Redis过期策略:删除过期时间的key值 2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据 Red ...

  7. jvm压缩指针原理以及32g内存压缩指针失效详解

    目录: java虚拟机汇总 class文件结构分析 1).class文件常量池中的常量项结构 2). 常用的属性表的集合 类加载过程 1).类加载器的原理以及实现 虚拟机结构分析 1).jdk1.7和 ...

  8. mysql中锁原理及for update悲观锁的详解

    mysql 中有多种多样的锁,今天我们具体分享一下: 一.mysql中乐观锁和悲观锁原理及种类: ​        乐观锁并不是数据库自带的,如果需要使用乐观锁,那么需要自己去实现,一般情况下,我们会 ...

  9. oracle 总转横函数,详解Oracle行列转换函数-pivot函数和unpivot函数-多智时代

    今天主要介绍一下Oracle行转列及列转行常见函数,下面一起来看看吧! 行列转换 pivot函数:行转列函数 语法:pivot(任一聚合函数 for 需专列的值所在列名 in (需转为列名的值)): ...

最新文章

  1. 特斯拉再裁员3000多人,马斯克称别无选择
  2. php 按钮状态,RPi GPIO状态更新为php按钮和脚本
  3. Perl中的字符串操作函数
  4. 离合器二自由度扭转振动线性系统仿真分析
  5. 特别的彩蛋给特别的你,新版官网上线啦!
  6. NOJ 20 吝啬的国度
  7. xyz后缀的网站_.XYZ五岁了
  8. Flume-NG源码阅读之AvroSink
  9. “约见”面试官系列之常见面试题第十篇值meta标签(建议收藏)
  10. 网络七层协议 五层模型 TCP连接 HTTP连接 socket套接字
  11. FreeBSD系统忘记root密码
  12. 程序员分析了 50 万条拼多多商品数据,告诉你到底是消费升级还是降级!
  13. PCD Lesson2:PCD文件的write
  14. 常见操作系统体系结构
  15. windows启用Guest用户
  16. python 循环赋值_计算机二级Python语言程序设计 第2章Python语言基本语法元素
  17. openldap sssd服务认证登录
  18. BSCI验厂审核知识点
  19. 选择结构程序设计 思维导图
  20. 动态路由协议 ❀ ISIS-中央系统到中央系统

热门文章

  1. 两条实用的 SQL 语句
  2. [转帖]迎战AMD 7nm 64核EPYC 英特尔至强也玩起了胶水以及性价比
  3. 微信小程序---setData
  4. 紫书搜索 习题7-8 UVA - 12107 Digit Puzzle IDA*迭代加深搜索
  5. Unity编译Mono
  6. 函数创建对象(2)原型模式
  7. BCB 多线程的同步与协调
  8. JavaScript闭包的底层运行机制
  9. 世界首份博客报纸问世
  10. PHP 的 Phar 包原来性能这么强!