Android AIDL使用详解(2)

mService就是AIDLService对象,具体可以看我后面提供的示例代码,需要注意在客户端需要存一个服务端实现了的aidl接口描述文件,但是客户端只是使用该aidl接口,不需要实现它的Stub类,获取服务端得aidl对象后mService = AIDLService.Stub.asInterface(service);,就可以在客户端使用它了,对mService对象方法的调用不是在客户端执行,而是在服务端执行。
 
4.aidl中使用java类,需要实现Parcelable接口,并且在定义类相同包下面对类进行声明:
 
上面我定义了Rect1类
 之后你就可以在aidl接口中对该类进行使用了
 package com.cao.android.demos.binder.aidl; 
import com.cao.android.demos.binder.aidl.Rect1;
 interface AIDLActivity { 
    void performAction(in Rect1 rect); 

注意in/out的说明,我这里使用了in表示输入参数,out没有试过,为什么使用in/out暂时没有做深入研究。
 
5.aidl使用完整示例,为了清除说明aidl使用,这里有一个例子,例子参考了:
 
作出说明
 
例子实现了一个AIDLTestActivity,AIDLTestActivity通过bindservice绑定一个服务AIDLTestService,通过并获取AIDLTestActivity的一个aidl对象AIDLService,该对象提供两个方法,一个是registerTestCall注册一个aidl对象,通过该方法,AIDLTestActivity把本身实现的一个aidl对象AIDLActivity传到AIDLTestService,在AIDLTestService通过操作AIDLActivity这个aidl远端对象代理,使AIDLTestActivity弹出一个toast,完整例子见上传的资源。

Android 4.4.4 发布下载

最简单的Ubuntu Touch & Android 双系统安装方式

在Nexus上实现Ubuntu和Android 4.4.2 双启动

Ubuntu 14.04 配置 Android SDK 开发环境

64位Ubuntu 11.10下Android开发环境的搭建(JDK+Eclipse+ADT+Android SDK详细)

Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法

Ubuntu 12.10 x64 安装 Android SDK

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d19fa4ddf28619bc4a318af36500042e.html