学习参考网址:Android开发艺术探索——第二章:IPC机制(中)
参考网址: android开发艺术探索学习笔记-第二章:IPC机制-应用中使用aidl
一.Android中的IPC方式
1.使用Bundler
2.使用文件共享
3.使用Messenger
Messenger是对AIDL的封装;相对于AIDL来说,Messenger上手更容易;
操作流程:(详细的demo代码请看参考网址)
1.创建一个service,然后在里面自定义一个handler;
2.在onbind里面返回这个自定义handler的Messenger;
3.在需要服务的地方绑定服务,获取Messenger,然后创建一个message的对象,最后send(message)即可把数据发给服务;
4.服务端给客户端发消息的原理和3差不多,首先通过msg.replyTo()方法获取客户端的messenger对象,然后创建message对象,最后send(message)即可把数据发给客户端;
四.使用AIDL
aidl实现操作流程:
服务端代码----
1.创建需要操作的实体类,例如:Book,并且实现序列号(implements paracelable);
2.创建Book.aidl
3.创建可以供客户端操作的接口,例如:BookController.aidl
4.如有需要,还可以添加一个监听的接口,例如:CallbackListener.aidl
5.创建自己的service类,在该类中,实现aidl中定义的接口
客户端代码-----
1.把刚刚在服务端创建的aidl全部拷贝到客户端,注意要保证目录和服务端一致;
2.把服务端操作的实体类拷贝到客户端,注意要保证目录和服务端一致;
3.在需要调用服务的地方,绑定服务,获取接口,例如:BookController.aidl。
4.根据用户需要,调用相关的接口,例如:addBook(Book book)等;