一、Binder机制(从framework层分析,Java层面分析)
在Android中,Binder用于完成进程间通信(IPC),即把多个进程关联在一起。
比如,普通应用程序可以调用音乐播放服务提供的播放、暂停、停止等功能。 Binder
工作在Linux层面,属于一个驱动,只是这个驱动不需要硬件,或者说其操作的硬件是
基于一小段内存。从线程的角度来讲,Binder驱动代码运行在内核态,客户端程序调
用Binder是通过系统调用完成的。Binder是一种架构,这种架构提供了服务端接口、
Binder驱动、客户端接口三个模块。Binder实际上是一种是C/S通信模式。C/S通信过
程的重要函数:
a)在服务端,创建需要创建Binder类或者其衍生子类,其中需要重写Binder的
onTransact(int code, Parcel data, Parcel reply, int flags)方法,完成对客户端请求的监听;
其中,code是服务端和客户端约定的一种信息约定;
b)在客户端,首先要获得服务端的Binder对象的引用(至于具体怎么获取,后面会
详细说明,这里知道这个概念即可),在或得Binder对象的引用之后,可以调用binder.