本文主要是介绍Binder机制原理学习笔记(3)_Binder机制整体架构和通信流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Binder整体架构
Binder 通信采用 C/S 架构,核心包含 Client、 Server、 ServiceManager 以及 Binder 驱动。其中Server,Client,ServiceManager 运行于用户空间,驱动运行于内核空间。
ServiceManager 用于管理系统中的各种服务。
Binder使用了面向对象的思想来描述作为访问接入点的Binder及其在Client中的入口:Binder是一个实体位于Server中的对象,该对象提供了一套方法用以实现对服务的请求,就象类的成员函数。
遍布于client中的入口可以看成指向这个binder对象的‘指针’,一旦获得了这个‘指针’就可以调用该对象的方法访问server。在Client看来,通过Binder‘指针’调用其提供的方法和通过指针调用其它任何本地对象的方法并无区别,尽管前者的实体位于远端Server中,而后者实体位于本地内存中。
‘指针’是C++的术语,而更通常的说法是引用,即Client通过Binder的引用访问Server。而软件领域另一个术语‘句柄’也可以用来表述Binder在Client中的存在方式。从通信的角度看,Client中的Binder也可以看作是Server Binder的‘代理’,在本地代表远端Server为Client提供服务。
这篇关于Binder机制原理学习笔记(3)_Binder机制整体架构和通信流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!