Android为什么使用Binder-android学习之旅(101)
Android为什么使用Binder-android学习之旅(101)
fengsehng 发表于1年前
Android为什么使用Binder-android学习之旅(101)
  • 发表于 1年前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

基础知识

Android进程和linux进程一样,他们只运行在进程固有的虚拟空间中。一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间 ,用户空间是非共享的,内核空间是共享的,如下图:

这里写图片描述

inux本身就提供了IPC工具,但是android中的Binder功能更丰富,不仅可以用来实现进程件的IPC通信,还可以用来调用另一个进程的函数,支持RPC操作,Binder使用运行在内科空间中的抽象驱动程序Binder(IPC) Driver,来实现进程间的通信,如下图:

这里写图片描述

Android使用Binder机制的原因有两个:

1.首先Binder采用了linux的优秀的内存管理技术,binder的UID和pid都是binder在内核空间添加身份标识,实现私有的通道,能保证数据的正确性。

2.使用用户空间无法访问的内存空间来交换数据,保证了IPC的安全性

3.支持调用另外一个进程的函数,实现了RPC功能,给予cs框架,比通信的socket效率高。

至于具体的介绍如下:

Android Binder IPC详解

共有 人打赏支持
粉丝 4
博文 284
码字总数 214494
×
fengsehng
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: