android binder之一----binder解决了什么问题

来源:互联网 发布:日常用什么编程语言 编辑:程序博客网 时间:2024/06/05 16:35

    老板总是喜欢那些埋头苦干的人,可是如果方向搞错了,那么做的越多就错的越厉害。除非老板可以替员工把握方向,否则就是自我消亡!

    对于android binder的分析,首先,我们要搞清楚“goole到底想用binder解决什么问题”。为了阐述这个问题,我用下面的情景来分析:

 

情景1:

    我们都知道每一个进程都有自己的地址空间(用户空间),这个地址空间其实是虚拟的。所谓说是自己的地址空间,就是说各个进程的地址空间其实是不相干的(假设进程A有虚拟地址0x12345678,进程B也有虚拟地址0x12345678,但是他们做指向的物理地址其实是不一样的)。

  既然进程之间是不相干的,那么难道他们之间就没有联系,其实他们之间是有联系的。为了方便进程之间的沟通,操作系统提供了各

种各样的机制来实现ipc(inter-process communication),binder其实也是ipc的一种。

  c++和java都是面向对象的,有类,类产生对象。我们以java为例,假设进程A中有对象a和b。如果a要访问b,那么进程A只要获得b的引用就可以了。但是如果进程A中只有a对象,而b对象在进程B中,这时a要访问b该怎么办?goole为了解决这个问题引入了binder机制,之所以叫binder机制,是因为它包括了 binder驱动(内核层),binder库(c,c++中间件层),与binder相关的java层。这些层之间是紧密联系在一起的,互相协作解决了上面描述的那个问题。

  这里要说明的是,解决上面所描述问题的方法当然不只有binder机制一种。至于google为什么选择binder,这个我也不知道。可以说,binder是android最核心的东西,是android整个架构的基础。

原创粉丝点击