Android中级之AIDL


博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 


什么是AIDL,它有什么作用?

AIDL:Android Interface Defination Language   

它是一种Android内部进程通信的描述语言,用它来定义通信接口。

AIDL是安卓的一个伟大设计,它保证不同项目之间资源、数据可以共享,减少冗余开发。

资源共享可以在项目的project.properties文件里写android.library.reference.1=../“项目名”

AIDL的简单实现(一方提供数据,一方接收数据):


目标项目:

1、首先可以在目标项目中声明一个Service A和一个.aidl结尾的接口文件B

2、在Service中实现一个IMyService.Stub实体类 C,其中C实现调用文件中的IInterface实现接口D

2、在Service的onBind()方法里返回B的实现

这样目标项目工作就完成了。

调用项目:

1、首先实现一个序列化实体,一般用parcelable

2、然后完善D,写入一个抽象类,声明DESCRIPTOR变量为目标项目的B路径

3、在Activity中先绑定A,再获取A中所持久化的数据。


其中AIDL传输的数据,只接受Java基本数据类型和序列化对象,不支持HashMap对象。

例:

创建一个ServiceConnection连接,从后台获得


你可能感兴趣的:(Android中级之AIDL)