AIDL (Android Interface Definition Language , Android 接口定义语言)
1、AIDL 服务提供方
1)创建 .aidl 文件
本例中,在com.myandroid.aidl 包下定义一个IMyService.aidl 文件;
ATD 插件会在工厂gen目录下创建对应的IMyService.java 文件;
2)实现 helloAndroidAIDL 接口
在com.myandroid.aidl 包路径下创建 MyService 类,继承android.app.Service 类,并有一个内部类实现 IMyService.Stub 接口
3)对 AIDL 服务配置,以便Android 平台能够识别此服务
打开AndroidManifest.xml 文件,在application 节点加入如下 xml 配置信息:
2、AIDL 服务调用方
首先建立AIDL 服务调用方的 Android Project,AIDL 的调用主要如下:
1)将AIDL 服务端生成的 java 文件 com/myandroid/aidl/IMyService.java 复制到本工程,不改起包路径及文件名,即 AIDL 服务端的接口定义;
2)编写代码绑定服务,获取 AIDL 服务对象;
3)通过 AIDL 服务对象完成 AIDL 接口调用;
在需要调用Activity 中定义 IMyService myService 服务调用对象,然后创建 serviceConnection 对象,服务绑定相关代码:
AIDL 服务调用的代码:
注:Android 系统服务的调用不需要绑定服务,而直接获取系统服务对象即可调用其服务接口;