Android - Binder机制 - Binder框架总结
目录
1. Android - Binder机制 - ServiceManager
2. Android - Binder机制 - 普通service注册
3. Android - Binder机制 - 获得普通service
4. Android - Binder机制 - client和普通service交互
5. Android - Binder机制 - Binder框架总结
6. Android - Binder机制 - ProcessState和IPCThreadState
7. Android - Binder机制 - 驱动
UML
说明
1. 以中间的IXXX的垂直线为准,左边是客户端进程,它们的命名类似Bp***,右边是服务端进程,它们的命名类似Bn***;
2. 以中间的一条水平虚线为界线,上边执行的是具体业务,如我们之前讲到的AddServcie、GetService、StartPreview等,它们都是普通业务,下边执行的是数据交互,就是讲上边的业务数据打包成binder定义的数据包结构,然后通过binder驱动发送出去或者接收;
3. 第一篇的ServiceManager不是按照Bn***类构建的,但是只是我用的版本不是这样构建的,ServiceManager也完全可以用Bn***来构建,用Bp***和Bn***来构建,让程序员在看代码时更加轻松,代码结构也更加简洁,所以,基本上都是通过Bp***和Bn***来完成的;
4. Bn***和Bp***都继承了两个基类,一个是IXXX,一个是BBinder(或者BpRefBase),其实也正说明了BpXXX和BnXXX既要完成业务层的任务,也要执行数据传输相应的任务;
5. IPCThreadState是真正和驱动打交道的角色,一个进程可以有几个;
6. ProcessState的任务很简单,一是打开binder设备供IPCThreadState使用,一个是获得ServiceManager;
7. 客户端至少持有两个服务端,一个是ServiceManager,一个是它的业务服务端XXXService;
通过这个图,你是不是对复杂的binder找到了很多的规律了;
Android - Binder机制 - Binder框架总结相关推荐
- aidl使用_借助 AIDL 理解 Android Binder 机制——Binder 来龙去脉
AIDL 是 Android Interface Definition Language(Android 接口定义语言)的缩写,它是 Android 进程间通信的接口语言.由于 Android 系统的 ...
- Android Binder机制(1):Binder架构分析
从这篇博客开始,将进入Binder机制的分析系列,顺序是先讲解Binder机制的框架,理解了整体思想后,再深入分析各层的细节实现,最后会实现一个自己的本地服务. 1.Binder的历史 BeOS是Be ...
- 【Android Framework系列】第2章 Binder机制大全
1 Binder简介 1.1 什么是Binder Binder是Android中主要的跨进程通信方式.Android系统中,每个应用程序是由Android的Activity,Service,Bro ...
- android机制系列之二 Binder机制
系列目录 https://blog.csdn.net/jzlhll123/article/category/7671581 引用了很多网上的图片,具体链接未能及时保存,致歉. 20180625 再探b ...
- 深入理解Binder机制4-bindService过程分析
一.概述 1.1 Binder架构 Android内核基于Linux系统,而Linux系统进程间通信方式有很多,如管道,共g享内存,信号,信号量,消息队列,套接字.而Android为什么要用binde ...
- 理解Android Binder机制(3/3):Java层
本文是Android Binder机制解析的第三篇,也是最后一篇文章.本文会讲解Binder Framework Java部分的逻辑. Binder机制分析的前面两篇文章,请移步这里: 理解Andro ...
- 理解Android Binder机制(1/3):驱动篇
Binder的实现是比较复杂的,想要完全弄明白是怎么一回事,并不是一件容易的事情. 这里面牵涉到好几个层次,每一层都有一些模块和机制需要理解.这部分内容预计会分为三篇文章来讲解.本文是第一篇,首先会对 ...
- Android Binder机制(1501210451 张志康)
本文主要分析native层和Java层的Android binder通信机制. binder是Android最为常见的进程通信机制之一,其驱动和通信库是binder的核心,分别由C和C++编写,应用程 ...
- 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路
原文地址: http://blog.csdn.net/luoshengyang/article/details/6627260 在前面一篇文章浅谈Service Manager成为Android进程间 ...
最新文章
- Spring中bean标签的属性和值:
- magic_quotes_gpc和magic_quotes_runtime的区别和用法详解
- 深圳出台数据中心PUE新政,或将开启千亿级节能市场
- muduo网络库学习(二)对套接字和监听事件的封装Channel
- [Socket]BSD socket简易入门
- 利用丁香园数据生成疫情分布地图(R语言)| 博文精选
- win10 使用ssh连接服务器 ‘’Bad owner or permissions on C:\\Users\\Administrator/.ssh/config‘’
- linux怎么不更新内核,Linux升级时不升级内核的方法
- zibll子比主题v5.4免授权修复版
- dz手机版空白显示index.php,关于Discuz x3.3页面空白解决方法
- UI设计插画素材|苹果设备展示
- BZOJ4303 : 数列
- 网络运维超融合服务器,15. 通过 Openfiler 软件:配置 ISCSI 和
- 11.高性能MySQL --- 可扩展MySQL
- yudian温控表a1温度怎么补偿_贴片电容怎么确定型号
- 指向指针的指针与二维数组的区别
- CSS3实现的几个小loading效果
- 简历推荐_12位AI产品经理
- 秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4 CAN!
- 金融数据安全分类分级解决方案
热门文章
- WebAssembly系列1-从 ASM.JS 到 WebAssembly
- 文本检查点web_reg_find和web_find两个函数的区别
- LR学习笔记七 之 LR录制sql脚本
- 好朋友的爬虫共享资料,真佩服
- Java JDK新特性探究-精简的JRE
- G2 可视化引擎-统计图表
- Excel Spreadsheet 转换web HTML 5 展示
- 多目标跟踪评价标准(MOT)
- mysql 首次连接慢_mybatis+mysql,第一次数据库连接很慢怎么回事?
- POJ 2182 Lost Cows