Android 跨进程通信--Binder篇

1.Binder的由来和作用

话说Binder 其实是由George Hoffman 老哥,在1991年Be公司启动了一个“openBinder”的项目,该项目的宗旨是研究一个高效的信号传递工具,允许多个软件相互合作,构成一个软件系统。在BE被parmSource收购以后,openBinder由hackborn继续开发。在Hackborn加入google之后,他继续开发出了Android Binder。

而Android系统是基于Linux内核实现的,Linux已经提供了多种进程间通信机制,比如:管道、消息队列、共享内存和套接字(Socket)等等。

2.Binder和 IPC 的优缺点

讲它们优缺点前先补充说明:
「进程隔离」--这个技术是为了避免进程A写入进程B的情况发生。 进程的隔离实现,使用了虚拟地址空间进程A的虚拟地址和进程B的虚拟地址不同,这样就防止进程A将数据信息写入进程B。进程隔离的安全性通过禁止进程间内存的访问可以方便实现。相比之下,一些不安全的操作系统DOS能够允许任何进程对其他进程的内存进行写操作。

「虚拟内存」-- 是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存的使用也更有效率。

注意:虚拟内存不只是“用磁盘空间来扩展物理内存”的意思——这只是扩充内存级别以使其包含硬盘驱动器而已。把内存扩展到磁盘只是使用虚拟内存技术的一个结果,它的作用也可以通过覆盖或者把处于不活动状态的程序以及它们的数据全部交换到磁盘上等方式来实现。对虚拟内存的定义是基于对地址空间的重定义的,即把地址空间定义为“连续的虚拟内存地址”,以借此“欺骗”程序,使它们以为自己正在使用一大块的“连续”地址。

你可能感兴趣的:(Android 跨进程通信--Binder篇)