AIDL的使用

来源:互联网 发布:淘宝代销商怎么做 编辑:程序博客网 时间:2024/05/21 07:50

AIDL的学习资料:http://blog.csdn.net/luoyanglizi/article/details/51980630

弄懂这个过程后会发现aidl的使用并不是很难,只是一个用于2个进程间通讯的接口。它本身也就是这个作用。

难的还是业务实现

AIDL注意事项

1.aidl分为客户端和服务端。先写好客户端的.aidl文件,clean一下。/build/generated/source/aidl/debug/下会生成代码

2.把aidl包下的东西整个复制到服务端的代码中。

3.sourceSet配置一下。java的目录

4.注意in out inout

in 为定向 tag 的话表现为服务端将会接收到一个那个对象的完整数据,但是客户端的那个对象不会因为服务端对传参的修改而发生变动;

out 的话表现为服务端将会接收到那个对象的的空对象,但是在服务端对接收到的空对象有任何修改之后客户端将会同步变动;

inout 为定向 tag 的情况下,服务端将会接收到客户端传来对象的完整信息,并且客户端将会同步服务端对该对象的任何变动。

基本参数的定向tag 默认且只能为in

5.服务端service主要干4件事情

1)oncreate()里面初始化

2)实现 BookManager.Stub mBookManager = new BookManager.Stub(){

//实现你在接口中定义的方法

}

3)重写onBind方法。返回mBookManager ;

4)AndroidManifest中注册这个service。指定action、exported、category等

6.客户端client主要做2件事情

1)绑定service。通过指定action、packge绑定到服务端的service。

通过mBookManager = BookManager.Stub.asInterface(service);得到mBookManager

2)通过mBookManager调用之前aidl中定义的方法等