千家信息网

c++ binder的调用流程是什么

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇"c++ binder的调用流程是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
千家信息网最后更新 2025年02月01日c++ binder的调用流程是什么

这篇"c++ binder的调用流程是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"c++ binder的调用流程是什么"文章吧。

本文主要接收客户端通过binder调到服务端的过程,也就是从transact到onTransact的过程

客户端发的请求

Step 1:transact一步会调用remote的transact,而该remote对象是通过ServiceManager获取回来的一个IBinder实例

Step 2:BinderProxy:transact:调用transactNative

Step 3:android_util_Binder:android_os_BinderProxy_transact

Step 4:BpBinder:transact

Step 5:IPCThreadState:transact,调用writeTransactionData把数据写到mOut,然后调用waitForResponse,会调用talkWithDriver将数据写到底层驱动,如果有结果会把结果读取到mIn

服务端的处理:

IPCThreadState:joinThreadPool,这里有一个循环,通过getAndExecuteCommand不停地读取底层的数据并执行,客户端发过来的命令时,处理的是BR_TRANSACTION,调用BBinder的transact进行处理

Step 6: BBinder:transact->onTransact,这一次是C层的onTransact,java层的实现也是通过C++层的封装来实现的

binder的原理简单来讲是两个进程有一块内存映射到同块物理内存,如果不映射的话,那么两个进程使用的是逻辑地址,的物理内存是不会映射到同一块内存的,因此映射并内存共享内存来实现通信,是binder的本质工作。

以上就是关于"c++ binder的调用流程是什么"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

内存 内容 流程 c++ 客户 客户端 数据 处理 两个 文章 物理 知识 端的 篇文章 结果 过程 进程 服务 也就是 价值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 苏州网络安全认证流程 网络安全知识竞赛开场白 计算机网络技术应该考那个证 网络安全检查整改报告 低保国家数据库有还要提交材料吗 软件开发机房改造项目开票 软件开发大概需要多少时间 access数据库系统语句 专科计算机网络技术专业 光遇显示服务器内部出问题 服务器显示器驱动怎么安装 软件开发技术专业的学校 商业项目数据库综合设计 服务器支持手机故障诊断面板 为什么会下载不了音乐服务器错误 网络数据库附加时提示950 克拉玛依小程序软件开发公司 儿童网络安全培训软件 网络安全文明周记300字 软件开发登录注册流程图 数据库学费 网络安全是全球挑战 滨州浪潮服务器售后电话 淄博瓷砖软件开发服务 网站扫数据库 佳能配什么服务器最好 索引数据库怎么查询 软件开发成功例子 黔东南租房软件开发 软件开发登录注册流程图
0