Binder通信模型

    Binder是Android最主要的进程间通信方式,下面简单认识一下它的通信模型,如下图所示

    服务管理进程启动时会变成上下文管理者,在驱动层创建一个全局的binder_node对象binder_context_mgr_node记录进程信息,BpServiceManager中BpBinder的句柄为0,直接以binder_context_mgr_node作为目标,这就是一般进程可以直接与服务管理进程通信的原因。

    服务进程有一个BnDemoService类型的服务对象,继承于BBinder。为了使得客户进程与服务进程通信,服务进程需要向服务管理进程添加服务,添加的过程中在驱动层创建binder_node对象记录服务对象的信息,同时在服务管理进程创建binder_ref对象与服务进程的binder_node对象关联。最后服务的名称和binder_ref的句柄保存在服务管理进程。

    客户进程向服务管理进程查询是否有特定名称的服务,如果查询到服务,在返回结果的过程中,在客户进程也创建binder_ref对象,该对象同样与binder_node对象关联,binder_ref的句柄最终会保存到BpMyService的BpBinder中。

    客户进程查询服务后,客户进程的BpMyService与服务进程的BnDemoService建立了联系,客户进程就可以与服务进程通信了。

以上内容参考 《Android图形显示系统》作者 李先儒,,清华大学出版社

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/601685.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot学习笔记-S2

1. SpringBoot中的常见注解 RequestBody:使SpringMVC框架可自动读取请求体里面的JSON格式的数据,转换成map类型的集合对象RestController:开发RESTful API 时使用,等价于ResponseBody Controller。RestController和Controller的…

FaceForensics++数据库下载(一步步解析过程)

FaceForensics数据库下载(超详细版教程) 相信很多做deepfake相关研究的朋友,在对模型进行测试或者对潜前人的研究进行复现时,都需要下载一系列数据库并进行预处理等操作,而FaceForensics数据库是一个由数千个使用不同…

数据库相关知识总结

一、数据库三级模式 三个抽象层次: 1. 视图层:最高层次的抽象,描述整个数据库的某个部分的数据 2. 逻辑层:描述数据库中存储的数据以及这些数据存在的关联 3. 物理层:最低层次的抽象,描述数据在存储器中时如…

962: 括号匹配问题

【学习版】 【C语言】 【C】 #include<iostream>class MyStack { public:struct Node {char val;Node* prev;Node* next;Node(char x) :val(x), prev(NULL),next(NULL) {};};MyStack() {base new Node(0);top base;}bool empty() {return top base;}void push(int …

Java快速入门系列-4(面向对象编程)

第四章&#xff1a;面向对象编程 4.1 类与对象4.1.1 类的概念4.1.2 对象的实例化与使用4.1.3 访问修饰符与封装 4.2 继承、封装与多态4.2.1 继承4.2.2 封装4.2.3 多态 4.3 抽象类与接口4.3.1 抽象类4.3.2 接口 4.4 包与访问控制 4.1 类与对象 4.1.1 类的概念 在Java中&#x…

【java探索之旅】逻辑控制掌握 顺序结构 分支语句

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; Java编程秘籍 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、逻辑控制的概念二、顺序结构三、分支结构3.1 if语句3.2 if习题巩固3.3 细节注意项…

excel散点图怎么每个点添加名称

最终效果图&#xff1a; 添加图标元素->数据标签->其他数据标签选项 选择单元格中的值 手动拖动数据标签&#xff0c;调整到合适的位置。

基于Vue3 中后台管理系统框架

基于Vue3 中后台管理系统框架 文章目录 基于Vue3 中后台管理系统框架一、特点二、源码下载地址 一款开箱即用的 Vue 中后台管理系统框架&#xff0c;支持多款 UI 组件库&#xff0c;兼容PC、移动端。vue-admin, vue-element-admin, vue后台, 后台系统, 后台框架, 管理后台, 管理…

Vue3组件基础示例

组件是vue中最推崇的&#xff0c;也是最强大的功能之一&#xff0c;就是为了提高重用性&#xff0c;减少重复性的开发。 如何使用原生HTML方法实现组件化 在使用原生HTML开发时&#xff0c;我们也会遇到一些常见的功能、模块&#xff0c;那么如何在原生HTML中使用组件化呢&am…

线上研讨会 | 新一代数字化技术赋能机器人及智能产线行业高质量发展

随着智能制造的快速推进&#xff0c;制造业转型升级到了关键阶段。越来越多的企业以数字化技术搭配智能机器人及智慧产线&#xff0c;主动实现数字化转型。达索系统3D体验平台是实现企业数字化转型的新一代数智化平台&#xff0c;基于型、数字驱动、数字化连续技术&#xff0c;…

HarmonyOS实战开发-存储空间统计(仅对系统应用开放)

介绍 本示例通过应用程序包管理、应用空间统计与卷管理模块&#xff0c;实现了查看当前设备存储空间信息、所有安装的应用的存储信息、所有可用卷的存储信息的功能。 效果预览 使用说明&#xff1a; 1.主页面会展示当前设备存储使用的详细信息。 2.点击“应用”&#xff0c;…

HarmonyOS 应用开发-页面间共享组件实例的案例

介绍 本示例提供组件实例在页面间共享的解决方案&#xff1a;通过Stack容器&#xff0c;下层放地图组件&#xff0c;上层放Navigation组件来管理页面&#xff0c;页面可以共享下层的地图组件&#xff0c;页面中需要显示地图的区域设置为透明&#xff0c;并参考触摸交互控制&am…