本文转载自:http://blog.csdn.net/luansxx/article/details/25203323

角色

l  服务

服务是提供特定功能的实体,接收请求,返回应答是服务直接最表现。大部分服务经过转换表现为文件(包括套接字)句柄。服务存在于Adb Server、Adb Daemon中,也可能存在于adb体系以外的某个进程中。

l  客户端

客户端代表用户使用服务功能。客户端通过一系列数据转发连接与服务建立逻辑连接,方式请求,接收应答。

l  报文(apacket)

客户端与服务之间的通信数据没有特殊格式,但数据在中间转发连接上会分片为报文。

l  链路(atransport)

链路是Server与Daemon之间的连接,有Usb和Tcp两种实现形式。传输的数据是报文(apacket)。一条链路可以承载多个客户端——服务的逻辑连接。在链路上传递的报文还包含一个amessage头,指示报文的类型,通过的链路,以及链路上的逻辑连接id。

l  套接字(asocket)

套接字可以看成数据传输的中继节点,套接字之间的连接最终实现客户端到服务的数据通路。有三种类型的套接字:本地套接字(local_socket),远程套接字(remote_socket)和轻型套接字(smart_socket)。

l  转发(alistener)

转发是一种将远端端口映射到本地机制,有些情况下不能直接连接的远端端口,比如远端只侦听Loopback接口,或者远端处于NAT内网。连接转发端口就好像连接到远程服务上。

l  内部管道

内部管道由UNIX域套接字实现,用来将链路的阻塞IO模式转换为反应堆(poll)模式。

android adb 源码框架分析(2 角色)【转】的更多相关文章

  1. android adb 源码框架分析(1 系统)【转】

    本文转载自:http://blog.csdn.net/luansxx/article/details/25203269 ‘ Adb模块包括adb,adbd,源代码都在system/core/adb目录 ...

  2. android adb源码分析(1)

    ADB是Android debug bridge的缩写,它使用PC机可以通过USB或网络与android设备通讯. adb的源码位于system/core/adb目录下,先来看下编译脚本Android ...

  3. android adb源码分析(5)【转】

    本文转载自:http://blog.csdn.net/xgbing/article/details/52096880 本篇以“adb devices"命令为例,跟踪代码的执行流程. (1) ...

  4. golang 移动应用例子 example/basic 源码框架分析

    条件编译 我们在源码中可以看到2个文件: main.go 和 main_x.go 这两个包名都是 package main , 都有 main 函数. 不会冲突么? 答案是不会的, main_x.go ...

  5. MJRefresh源码框架分析

    MJRefresh是一款非常优秀的刷新控件.代码简洁,优雅.今天有时间对源代码阅读了一下.对MJRefresh的宏观设计非常赞叹.所谓大道至简就是这样吧.   MJRefresh所采用的主要设计模式非 ...

  6. Android base-adapter-helper 源码分析与扩展

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/44014941,本文出自:[张鸿洋的博客] 本篇博客是我加入Android 开源项 ...

  7. MTK Android 源码目录分析

    Android 源码目录分析 Android 4.0 |-- abi (application binary interface:应用二进制接口)|-- art (average retrieval ...

  8. 【Android测试】【第三节】ADB——源码浅谈

    ◆版权声明:本文出自carter_dream的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4651724.html 前言 由于本人精力 ...

  9. Android Volley源码分析

    今天来顺手分析一下谷歌的volley http通信框架.首先从github上 下载volley的源码, 然后新建你自己的工程以后 选择import module 然后选择volley. 最后还需要更改 ...

随机推荐

  1. 转载: LINK : fatal error LNK1104: 无法打开文件“mfc71.lib”的原因又一例

    转载地址:http://blog.csdn.net/mxclxp/article/details/8196142 LINK : fatal error LNK1104: 无法打开文件“mfc71.li ...

  2. 使用反射获取类中的属性(可用于动态返回PO类的列,当做表格的表头)

    //利用反射取类中的属性字段 try { Class clazz = Class.forName("houji.bean.model.TaskModel"); Field[] fi ...

  3. NOIP 前夕 模板整理

    归并排序: #include<iostream> #include<cstdio> #include<cstring> using namespace std; ] ...

  4. 扰动法--*BZOJ3157: 国王奇遇记

    求$\sum_{i=1}^ni^mm^i$.$n \leq 1e9,m \leq 200$. 其实我也不知道这东西为啥叫“扰动法”,大概是在黑暗的边缘试探?就是那种,人家再多一点就被您看破了,然后您就 ...

  5. ci框架——分页

    1:在models里面写一个模型:page_model.php class Page_model extends CI_Model{ function page($tablename,$per_num ...

  6. Neo4j 第七篇:模式(Pattern)

    模式和模式匹配是Cypher的核心,使用模式来描述所需数据的形状,该模式使用属性图的结构来描述,通常使用小括号()表示节点,-->表示关系,-[]->表示关系和关系的类型,箭头表示关系的方 ...

  7. Android-事件体系全面总结+实践分析

    事件分发在Android中是很重要的基础知识,网上相关的文章也很多,但是花了很多精力看了很多别人的分析总结,最终的感觉还是似懂非懂,所以决定自己动手研究一下,去发现其中的规律.本文顺着我自己的思路去研 ...

  8. 【Java TCP/IP Socket】基于线程池的TCP服务器(含代码)

    了解线程池 在http://blog.csdn.net/ns_code/article/details/14105457(读书笔记一:TCP Socket)这篇博文中,服务器端采用的实现方式是:一个客 ...

  9. Action Bar详解(二)

    在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果. 一.添加A ...

  10. JAVA_MyEclipse如何加载JDK JRE