安卓 adb 的原理浅析
2019独角兽企业重金招聘Python工程师标准>>>
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启动会了,或者总是重启。
转载于:https://my.oschina.net/Bruce370/blog/416656
安卓 adb 的原理浅析相关推荐
- Android adb实现原理
adb定义: adb(Android Debug Bridge) 安卓调试桥,包含adb client.adb server和adbd三部分. adb client:运行在PC上,即DDMS或者在Wi ...
- adb remount原理
1, 输入"fastboot flashing unlock" in adb ,waiting for the device 2, 输入"fastboot flashin ...
- Python标准库queue模块原理浅析
Python标准库queue模块原理浅析 本文环境python3.5.2 queue模块的实现思路 作为一个线程安全的队列模块,该模块提供了线程安全的一个队列,该队列底层的实现基于Python线程th ...
- Python标准库threading模块Condition原理浅析
Python标准库threading模块Condition原理浅析 本文环境python3.5.2 threading模块Condition的实现思路 在Python的多线程实现过程中,在Linux平 ...
- 第一篇: 词向量之Word2vector原理浅析
第一篇: 词向量之Word2vector原理浅析 作者 Aroundtheworld 2016.11.05 18:50 字数 1353 阅读 5361评论 1喜欢 9 一.概述 本文主要是从deep ...
- SPI及其工作原理浅析
说明.文章摘自:SPI协议及其工作原理浅析 http://bbs.chinaunix.net/thread-1916003-1-1.html 一.概述. SPI, Serial Perripheral ...
- adb 的原理以及它总重启等问题详解
1.adb(Android Debug Bridge) 意为android调试桥. 是android系统中的一种命令行工具,通过它可以和android设备或模拟器通信. ADB是一个C/S架构的应用程 ...
- .NET1.1中预编译ASP.NET页面实现原理浅析[1]自动预编译机制浅析
.NET1.1中预编译ASP.NET页面实现原理浅析[1]自动预编译机制浅析 .NET1.1中预编译ASP.NET页面实现原理浅析[1]自动预编译机制浅析 作者:&;nbsp来自:网络 htt ...
- LinkedList 的实现原理浅析
转载自 LinkedList 的实现原理浅析 LinkedList内部结构 查看LinkedList的源码,发现其继承自AbstractSequentialList,实现了List,Deque,Clo ...
最新文章
- 1、为什么使用Long时,推荐多使用valueOf方法,少使用parseLong方法
- SAP Cloud for Customer的公有云和私有云部署方式 - Public Cloud vs Private Cloud
- springboot指定注解扫描范围
- 作者:陈维政,男,北京大学博士生。
- 《南溪的python灵隐笔记》——有趣的Munch字典库
- JavaScript 图像延迟加载库 Echo.js的简单使用
- 无刷新,动态设置页面焦点的问题
- 【机器学习系列】隐马尔科夫模型第一讲:通俗易懂概述HMM
- linux的mongo主从异常,解决Linux系统下MongoDB数据库异常退出的问题
- 微信html5电子相册,维本- 电子相册微信H5模板【h5特效】
- JXLS for循环
- Idea查看Java类图和接口实现关系
- 微信小程序中slider实现拾色器功能
- 航拍VR全景怎么拍摄制作?航拍VR全景制作软件有哪些?
- bat脚本——提取多个文件夹到指定路径
- C语言银行账户管理系统
- 中国物流网很难进入运输颓势
- vrchat新手教程_VRChat入门指南| 最新电脑资讯
- JavaScript系列之详解原型和原型链
- 鸿蒙互联网开发安卓仍是,【华为|华为鸿蒙手机倒计时,国产软件崛起迎曙光?荣耀:安卓依然是首选( 四 )】操作系统|鸿蒙|其他|曙光|荣耀_科技资讯_联盟·玩科技...
热门文章
- ubuntu mysql开发环境_Ubuntu + Nginx/PHP/MYSQL开发环境配置图文教程
- 创建此对象的程序是quation_MathType出现此对象创建于Equation中的问题怎么办
- Oracle sqlserver mysql的自增变量设置
- B9.流行的框架与新技术
- android 触摸屏(TP)问题现象分析和解决方法
- Java学习笔记:文件通道(FileChannel)
- HTML学习笔记:设置文本字体
- 如何在电话中交谈_11
- 2017.5.29-6.3 城市规划 思考记录(非常不容易)
- sdoi2017 r1 不堪回首