千家信息网

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

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇"c++ binder的调用流程是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
千家信息网最后更新 2026年11月04日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安全错误 数据库的锁怎样保障安全 瑰夏咖啡 上海挚品互联网科技有限公司 上海喔噻互联网科技有限公司 北京路客互联网科技有限公司 腾讯阿里互联网科技 关于新基建和互联网科技 互联网科技上市公司 互联网科技美容 互联网科技公司做什么 科技互联网的估值 洛阳昕诺飞互联网科技有限公司 中国互联网公司排名锤子科技 互联网科技和法律行业 世界互联网领先科技成果获奖 滨湖区互联网智能科技产品有哪些 沐思想互联网科技有限公司 悟空问答互联网科技 杭州融税互联网科技有限公司 科技互联网专业工作会议发言稿 平安好医生打造互联网科技医疗 江苏根荣互联网科技 互联网络科技有限公司 互联网科技论坛 团飞科技与伯堂互联网服务平台 崇明区互联网教育科技售后服务 科技类公司包括互联网吗 中国科技创新与世界互联网大会 佛山市拉法互联网科技有限公司 世界互联网领先科技成果获奖 江苏互联网智能科技软件
0