binder的传递

news2024/11/5 16:37:29

client端通过servicemanager拿到的服务端的bpbinder是否和 servicemanager保存的映射表里面的bpbinder一样?

答案是不一样

这里来详细讲一下
binger通信过程,对使用者是透明的,即使用者可以认为拿到的就是一个服务端的接口对象,直接调用这个对象就能获取服务端的接口提供的功能。

但其地层则是通过bpbinder 和bbinder来进行通信的(一种代理的模式)

即客户端通过bpbinder来进行服务端接口的调用,而同进程则通过bbinder来进行调用

而这个bpbinder 如何生成,以及传递,以及如何代理将接口转到服务端的接口是如何实现的?
bpbinder其实是对hander的封装,这个hander就是驱动层两个进程的映射,驱动根据这个hander能够找到对应的服务端,服务端也能找到对应的客户端,

这也就解释了bpbinder如何调用到service段的bbinder的接口的,内核层可以通过映射找到bbiner的接口,并调用,就是这么简单,因为内核层不存在进程间的限制。
而bpbiner的传递过程也是经过驱动重新和服务端映射的,因此传递给另一个进程的bpbinder其实是驱动重新映射的新的bpbinder,而如果传递的是同一个进程的bpbinder,那么驱动也会转化为bbinder。这个详细的流程我下一步要去驱动里找下详细的步骤。这里举例一个大概的流程:从servicemanager里面get(“ams”)拿到的就是传递过来一个bpbinder,这个驱动是如何转化成一个新的bpbinder的呢,我门来看看把:
client端通过驱动拿到bpbiner的时候,驱动会找到binder对应的该进程的handler,没有则创建对应的hander及bindernode结构体,并传给ipcthreadstate,创建一个新的bpbineder

日常工作中不需要了解这么多,就随便写下这些吧

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

批量提取当前文件夹内的文件名

在需要提取的文件夹内新建一个txt文件,输入: dir ./b>name.txt 然后将该txt文件的扩展名改为.bat 如图 双击即可提取当前文件夹文件名,并保存到name.txt内

小林渗透入门:burpsuite+proxifier抓取小程序流量

目录 前提: 代理: proxifier: 步骤: bp证书安装 bp设置代理端口: proxifier设置规则: proxifier应用规则: 结果: 前提: 在介绍这两个工具具体实现方法之前&#xff0…

Node.js:session JWT

Node.js:session & JWT sessioncookiesessionexpress-session JWTexpress-jwt & jsonwebtoken session HTTP协议是无状态的,客户端的每次HTTP请求都是独立的,多个请求之间没有直接的关系,服务器不会保留每次HTTP请求的状…

后台管理系统的通用权限解决方案(七)SpringBoot整合SpringEvent实现操作日志记录(基于注解和切面实现)

1 Spring Event框架 除了记录程序运行日志,在实际项目中一般还会记录操作日志,包括操作类型、操作时间、操作员、管理员IP、操作原因等等(一般叫审计)。 操作日志一般保存在数据库,方便管理员查询。通常的做法在每个…

曹操出行借助 ApsaraMQ for Kafka Serverless 提升效率,成本节省超 20%

本文整理于 2024 年云栖大会主题演讲《云消息队列 ApsaraMQ Serverless 演进》,杭州优行科技有限公司消息中间件负责人王智洋分享 ApsaraMQ for Kafka Serverless 助力曹操出行实现成本优化和效率提升的实践经验。 曹操出行:科技驱动共享出行未来 曹操…

Mysql常用语法一篇文章速成

文章目录 前言前置环境数据库的增删改查查询数据查询所有条件查询多条件查询模糊查询分页查询排序查询分组查询⭐️⭐️关联查询关联分页查询 添加数据insert插入多条记录不指定列名(适用于所有列都有值的情况) 更新数据更新多条记录更新多个列更新不满足条件的记录 删除统计数…

信息安全数学基础(43)理想和商环

理想(Ideal) 定义: 设R是一个环,I是R的一个非空子集。如果I满足以下条件,则称I为R的一个理想: 对于任意的r1, r2 ∈ I,有r1 - r2 ∈ I(加法封闭性)。对于任意的r ∈ I&am…

node.js下载、安装、设置国内镜像源(永久)(Windows11)

目录 node-v20.18.0-x64工具下载安装设置国内镜像源(永久) node-v20.18.0-x64 工具 系统:Windows 11 下载 官网https://nodejs.org/zh-cn/download/package-manager 版本我是跟着老师选的node-v20.18.0-x64如图选择 Windows、x64、v20.18…

《JVM第3课》运行时数据区

无痛快速学习入门JVM,欢迎订阅本免费专栏 运行时数据区结构图如下: 可分为 5 个区域,分别是方法区、堆区、虚拟机栈、本地方法栈、程序计数器。这里大概介绍一下各个模块的作用,会在后面的文章展开讲。 类加载子系统会把类信息…

苏州金龙新V系客车创新引领旅游出行未来

10月25日,为期三天的“2024第六届旅游出行大会”在风景秀丽的云南省丽江市落下帷幕。本次大会由中国旅游车船协会主办,全面展示了中国旅游出行行业最新发展动态和发展成就,为旅游行业带来全新发展动力。 在大会期间,备受瞩目的展车…

QML旋转选择器组件Tumbler

1. 介绍 Tumbler是一个用于创建旋转选择器的组件。它提供了一种直观的方式来让用户从一组选项中进行选择,类似于转盘式数字密码锁。网上找的类似网图如下: 在QML里,这种组件一共有两个版本,分别在QtQuick.Extras 1.4(旧)和QtQuic…

思科路由器静态路由配置

转载请注明出处 该实验为静态路由配置实验,仅供参考 选择三台2811路由器 关闭电源-安装模块-开启电源(以R1为例,其他两台也是一样操作!) 连线。注意R1与R3之间、R3与R2之间用DCE串口线(如下图)…

闪存学习_2:Flash-Aware Computing from Jihong Kim

闪存学习_2:Flash-Aware Computing from Jihong Kim【1】 一、三个闪存可靠性问题二、内存的分类三、NAND 闪存和 NOR 闪存四、HDD和SSD比较Reference 一、三个闪存可靠性问题 耐性(即寿命):最多能经受编程和擦除的次数。数据保留…

双指针问题解法集(一)

1.指针对撞问题(利用有序数组的单调性衍生) 1.1LCR 179. 查找总价格为目标值的两个商品 - 力扣(LeetCode)​​​​​​ 1.1.1题目解析 有序数组,找到和为price的两个元素,只需要一个解即可。 1.1.2算法…

深度学习(十):伦理与社会影响的深度剖析(10/10)

深度学习:伦理与社会影响的深度剖析 一、深度学习的伦理挑战 (一)数据隐私之忧 深度学习模型的训练往往需要大量数据,而数据的收集过程可能会侵犯个人隐私。例如,据统计,面部识别技术在全球范围内每天会收…

网络模型——二层转发原理

网课地址:网络模型_二层转发原理(三)_哔哩哔哩_bilibili 一、路由交换 网络:用来信息通信,信息共享的平台。 网络节点(交换机,路由器,防火墙,AP)介质&#…

探索NetCat:网络流量监测与数据传输的利器

从简单的数据传输到复杂的网络调试,NetCat的灵活性和多功能性让人赞叹不已,在这篇文章中我将深入探讨NetCat的魅力,揭示它的基本功能、实用技巧以及在日常工作中的应用场景,发现如何用这一小工具提升的网络技能与效率。 目录 Net…

提高交换网络可靠性之链路聚合

转载请注明出处 该实验为链路聚合的配置实验。 1.改名,分别将交换机1和交换机2改名为S1,S2,然后查看S1,S2的STP信息。以交换机1为例👇。 2.交换机S1,S2上创建聚合端口,将端口加入聚合端口。以S…

Kubernetes:(三)Kubeadm搭建K8s 1.20集群

文章目录 一、Kubeadm安装流程二、实验1.环境准备2.所有节点安装kubeadm,kubelet和kubectl(除了Harbor节点)3.部署 Dashboard4.安装Harbor私有仓库 一、Kubeadm安装流程 集群名称IP地址安装软件master(2C/4G,cpu核心数…

使用MongoDB Atlas构建无服务器数据库

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用MongoDB Atlas构建无服务器数据库 MongoDB Atlas 简介 注册账户 创建集群 配置网络 设置数据库用户 连接数据库 设计文档模式…