`
totoxian
  • 浏览: 1080133 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

(转)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 1.0.36.zip

    当遇到ADB连接问题时,可以尝试重启设备,检查USB驱动,或者在设备端执行`adb kill-server`和`adb start-server`。 10. **总结** ADB作为Android开发不可或缺的工具,其功能强大且灵活。熟练掌握ADB的使用技巧,...

    乐视C1S adb工具

    **adb工具详解** adb(Android Debug Bridge)是Google开发的一款强大的命令行工具,它是Android开发者不可或缺的神器之一。在“乐视C1S adb工具”中,adb被用于对乐视C1S机顶盒进行root操作,这使得用户能够获得...

    adb小工具android

    **adb小工具Android详解** `adb (Android Debug Bridge)` 是Android开发者不可或缺的工具之一,它是一个命令行实用程序,允许用户通过USB或...尽管它简化了操作,但了解adb的基本命令和工作原理仍然是提升效率的关键。

    adb(1.0.41版本)(win+linux)

    **adb(Android Debug Bridge)详解** adb,全称为Android Debug Bridge,是Google为Android系统开发的一个强大的命令行工具。作为开发者和爱好者们必备的利器,adb可以实现计算机与Android设备之间的通信,无论是...

    android的adb工具

    - **重启和控制设备**:`adb reboot`可重启设备,`adb shell input keyevent`能模拟按键事件,如电源键、音量键等。 **6. ADB的第三方工具** 为了方便使用,很多开发者会借助第三方工具,如“ADB Interface”或...

    Android工具 adb tools

    总的来说,ADB是Android开发中的基础工具,熟悉和掌握ADB的使用,能够极大地提升开发效率和问题解决能力。无论你是应用开发者、系统工程师还是测试人员,了解和熟练运用ADB都是必不可少的技能。

    安卓adb工具

    ADB(Android Debug Bridge)是Android开发者不可或缺的一个强大工具,它作为开发者与安卓设备之间的一座桥梁,允许用户通过命令行接口执行各种操作,包括安装和调试应用、传输文件、控制设备以及获取设备状态等。...

    ADB网络连接调试Android

    ### ADB网络连接调试Android详解 ...理解ADB的工作原理以及如何配置网络连接对于高效地开发和调试Android应用至关重要。掌握了这些技巧后,开发者可以在不同的环境中更加自如地进行Android应用的开发和测试。

    adb1.0.32.rar

    本文将深入探讨ADB的基本功能、工作原理以及实际应用。 ADB,作为安卓系统的一部分,是Google提供的一个命令行工具,用于连接开发者电脑与安卓设备进行通信。它主要由三部分组成:服务器、守护进程和客户端。服务器...

    adb Android SDK Platform-Tools 23

    **adb (Android Debug Bridge) 知识点详解** adb(Android Debug Bridge)是Google开发的Android SDK中的一个命令行工具,用于与运行Android操作系统的设备进行通信。它是一个多功能的接口,允许开发者从电脑上控制...

    盘点Python编程的简易版自动化工具——ADB史上全操作.docx

    【Python编程的简易版自动化工具——ADB全操作详解】 在移动设备自动化测试和开发领域,Android Debug Bridge(ADB)是一个不可或缺的工具。它允许开发者通过命令行与Android设备进行交互,进行应用程序的安装、...

    Appium配置详解--成都-阿木木.pdf

    使用`npm install appium-doctor -g`安装Appium Doctor工具,它能帮助检查和解决Appium配置中的问题。运行`appium-doctor`检查配置是否完成。 **二、UIAutomator** UIAutomator是Android SDK的一部分,用于创建UI...

    Android 越狱.pdf

    ### Android越狱与SuperOneClick详解 #### 一、什么是Android越狱? 在讨论SuperOneClick之前,我们先来了解一下Android越狱的概念。通常所说的Android越狱,实际上是指获得Android设备的最高管理员权限(root权限)...

    android_recovery_介绍,just mark

    在本文中,我们将深入探讨Android Recovery的工作原理、功能以及如何利用它来提升Android设备的管理和维护能力。 Android Recovery的核心功能包括: 1. **系统升级**:当新的系统更新可用时,Recovery可以执行OTA...

    君正4740 USB驱动for Windows

    4. 重启设备:有时候简单的重启电脑或设备可以解决一些临时性的问题。 5. 查阅官方文档:若以上方法无效,应查阅君正4740的官方文档或寻求技术支持。 总之,“君正4740 USB驱动for Windows”是实现Windows系统与君...

    三星安卓USB

    本文将深入探讨三星USB驱动的原理、安装过程以及常见问题解决。 首先,理解USB驱动的原理至关重要。USB(Universal Serial Bus)驱动是操作系统与硬件设备之间的桥梁,负责解释并执行设备的指令,确保电脑能识别并...

    红米note3_twrp3.0

    本文将详细解析红米Note3如何安装TWRP3.0以及其背后的原理和操作流程。 首先,让我们了解什么是TWRP。TWRP是一款开源的定制恢复环境,它支持触控操作,使得用户在没有电脑辅助的情况下也能轻松管理手机系统。TWRP...

    Android OTA update

    本篇文章将深入探讨Android OTA更新的相关知识点,包括其工作原理、更新机制以及如何实施。 #### 二、更新机制 ##### 标准流程 Android OTA更新的标准流程主要包括以下步骤: 1. **下载更新包**:用户或设备通过...

    Nexus 5的刷机脚本

    本文将深入探讨Nexus 5的Android 5.1.1刷机脚本以及其工作原理。 首先,我们需要理解“刷机”的概念。刷机是通过特殊的软件工具(如Fastboot、ADB等)更改手机的固件或操作系统的过程。通常,这涉及到安装新的系统...

Global site tag (gtag.js) - Google Analytics