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:
- Close the Eclipse if running
- Go to the Android SDK tools directory in Command Prompt
- type
adb kill-server
- then type
adb start-server
- No error message is thrown while starting ADB server, then adb is started successfully.
- Now you can start Eclipse again.
- 个人再补一条,重启电脑。
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