Android AIDL服务学习笔记

Android支持两种类型的服务:本地服务与远程服务。本地服务只能供承载它的应用程序使用,而远程服务还可以供其它应用程序使用。在Android中,远程服务可以使用AIDL(Android Interface Definition Language)向客户端定义自身。


下面说明创建AIDL服务的步骤:

  1. 编写一个AIDL文件(以.aidl为后缀)来向客户端定义接口,AIDL文件使用java语法。
  2. 将此AIDL文件添加到eclipse项目的src目录下。ADT将会调用AIDL编译器自动生成一个java接口,此文件位于gen目录下,可以打开查看。
  3. 实现一个服务并从onBind()方法中返回生成的接口(一般我们在服务中实现这个接口,然后在onBind()方法中返回其实例)。
  4. 在Manifest中配置Service,这里我们必须要使用intent-filter,并为其添加action属性。
废话不说,上代码(很简单的代码):
项目结构

Android AIDL服务学习笔记

Person.aidl(注意:接口不能有修饰符)

RemoteServcie

Android Manifest

接下来我们实现客户端的项目,通过此项目我们可以访问刚才定义的远程服务。这里我们必须把在远程服务项目中定义 的AIDL接口复制到此项目中,并且要保证包名与远程项目中此接口文件所在包名相同,并且此包中的Activity不能和此文件同包。下面是项目结构与代码:
Android AIDL服务学习笔记

Person.aidl同上

RemoteClient.java

下面是LogCat中的结果

Android AIDL服务学习笔记

这就是一个简单的AIDL服务创建与使用的过程 ,希望能帮到大家 。。


你可能感兴趣的:(android)