AIDL的实现

来源:互联网 发布:淘宝直通车如何出价 编辑:程序博客网 时间:2024/04/30 07:24

AIDL的实现

 

AIDL(Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication,IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数。

 

(一)        AIDL文件的创建

1.AIDL中参数详解:

    接口和方法前不用加访问权限修饰符public,private,protected,也不能用final,static

     Aidl默认支持的类型包话java基本类型(intlongboolean等)和(StringListMapCharSequence),其他类型需要实现Parcelable接口。

     in,out,inout三个字段只可以用于对参数的说明。[in表示是输入参数,out表示是输出参数,可以传出某个参数值,inout表示输入输出参数,先传入参数,处理后传出.]

2. AIDL中客户端和服务端的架构:

  使用统一的AIDL接口,必须保证包名,接口名,接口定义都一致,最好采用直接复制。

定义.aidl后缀的文件,gen目录下会自动生成 .java不需要修改

目录结构:


 

 

MAidlInterface.aidl文件内容

注意类名与文件名一致


自定义User类需要实现Parcelable接口,并且要在这个类的同一个包下定义一个同名的aidl文件


User.aidl文件:


服务端Service:


(二)    配置及调用

1.  服务端Service配置


2.  客户端调用:

需要先定义一个ServiceConnection


onCreate()中绑定服务:


OnDestory()中解绑服务:


aidl接口调用:


备注:一定要注意注释部分

(三)    可能遇到的问题:

1.   couldn't find import for class


 

http://blog.csdn.net/jackyu613/article/details/6011564

2.

 

 

*以上如有内容随时补充

转载请注明出处

0 0
原创粉丝点击