Android binder的kernel实现

本文介绍了Android系统的Binder IPC机制,包括其基本框架、为何需要Binder、Binder的线程管理、交易过程以及服务发布和获取。Binder通过减少内存拷贝、引入线程概念和交易机制,优化了进程间的通信效率,便于构建基于client-server的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

至少在五六年前就听说过binder机制,但从未想去深入了解。这次忘了是怎么和同事聊起这个东西的不过作为一个码农我想如果连google OS最为精髓的IPC都不知道,真不好以后出去跟人打招呼,于是乎决心了解下,一开始网上搜了些资料,感觉基本上都没讲出些啥东西,没办法只好 read the fucking code, 上周一直忙着签证的事情,没怎么定下心看因而节假日放出大招。
保留一贯的风格不喜欢整篇的paste code,大部分说一些个人的理解
源码靠大家自己
https://github.com/android/kernel_common.git
https://android.googlesource.com/platform/frameworks/native

主要分四部分

  • binder的基本框架
  • 为什么需要binder
  • binder的threads
  • binder的transaction
  • binder的服务发布和获取

binder的基本框架

binder是个啥东西?
binder就是个IPC,给进程间通信用的,它的框架包含client,server,servicemanger和binder driver。
前面三个都是user space的进程,线程,后面的binder driver工作在kernel态。

这三个用户态的东西,尤其是servicemanager不是可有可无的,不是说为了应用层的服务框架设计方便所以
多搞出的一个东西,这个binder driver的设计其实是有考虑类似的三个不同角色的分类的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值