AIDL(Android Interface Definition Language,Android接口定义语言)是IPC(Inter Process communication,进程间通信),由字面可以看出可以用于进程之间通信,同样和可以用于activity和service。对于一个像我一样的新手来说,看了很多网上的介绍第一感觉高大上,第二感觉需要长时间理解,下面根据我自己的理解描述AIDL的使用,以实现最简单的两数加和为例,建立工程,xml布局等步骤忽略。
一.建立一个AIDL文件(即一个Interface)
interface Add{
int add(in int num1, in int num2);
}
一旦文件被保存,Android的AIDL工具会在gen/com/android/hellosumaidl这个文件夹里自动生成对应的Add.java这个文件。因为是自动生成的,所以无需改动。这个文件里就包含了Stub,我们接下来要为我们的远程服务实现这个Stub。
二.在已有的Service中重写OnBind()方法(没有则建立)
public class AddService extends Service {
@Override
public void onCreate() {
super.onCreate();
}