Android Service :利用Binder实现通信
AIDL是什么
AIDL是Android Interface Definition Language, 即Android接口定义语言。
Android通过AIDL文件,把Service的接口公布出来,以便Client可以通过接口和Service进行通信
如何利用Binder现实Service、Client通信
之前打过比喻,Service好比是一个岛,Client是大陆,岛(Service)和大陆(Client)的通信,是通过桥梁(Binder)实现的。
那么是怎么通过Binder来实现Service和Client之间的通信呢?
- 建造桥梁,建立aidl文件,将Service接口公布出来;
- 将桥梁架设在岛上,在Service端,实现aidl的接口,并返回Binder;
- 将桥梁架设在大陆上,在Client端,绑定Service,通过返回的Binder获得Service。;
通过上面的三步,就将桥梁(Binder)架设在岛(Service)和大陆(Client)之间,二者就可以通信了。
利用Binder进行Service、Client通信
通过上面知道,利用Binder实现Service、Cilent通信,基本上分三步:
- 新建一个AIDL文件,定义Serivce需要对外公布的接口;
- 在Service端,实现AIDL的接口,并在被绑定的时候返回Binder;
- 在Client端,绑定Service,在成功绑定之后,通过返回的Binder获得Servic