1、 概述
Binder架构分为服务端、Binder驱动、客户端三个模块,如下图所示。
2、 服务端
Binder服务端会创建一个Binder对象,Binder实现类需要重载onTransact()方法,在这个方法中实现处理客户端请求的业务。Binder对象创建后会启动一个线程,该线程接收Binder驱动发送的消息,并调用Binder对象的onTransact()方法处理消息,最后把处理结果返回给Binder驱动。
3、 Binder驱动
服务端Binder对象创建的同时,会在Binder驱动中创建一个Binder类型的mRemote对象,客户端通过该mRemote对象访问远程的服务端。
4、 客户端
客户端通过Binder驱动中的Binder对象mRemote访问远程服务端,Binder驱动中的Binder对象不会像服务端中的Binder对象一样创建一个线程。