Android AIDL远程服务使用示例

  次阅读 来源:互联网(转载协议) 2016-01-13 21:53 我要评论(0)

Android AIDL远程服务使用示例

了解Android上比较强大的远程服务设计。

一、为什么要使用AIDL,他的优势有哪些呢?

AIDL服务更像是 一个Server,可以为多个应用提供服务。由于使用了IDL这样类似COM组件或者说中间语言的设计,可以让后续的开发者无需了解内部,根据暴漏的接口实现相关的操作,AIDL可以工作在独立的进程中。

二、学习AIDL服务需要有哪些前置知识?

作为Android上服务的扩展,首先你要了解Android Service模型,Android Serivice我们可以分为两种模式,三个类型,1.最简单的Service就是无需处理onBind方法,一般使用广播通讯,效率比较低。2. 使用Binder模式处理Service和其他组件比如Activity通讯,Android开发网提示对于了解了Binder模式的服务后,开发AIDL远程服务就轻松容易的多。

三、具体实例,我们以com.android123.cwj.demo为工程名,首先在工程目录的com.android123.cwj目录下创建一个ICWJ.aidl文件,内容为

C/C++代码

1 packagecom.android123.cwj;

2 interfaceICWJ{

3 StringgetName();

4

如果格式AIDL格式没有问题,在Eclipse中ADT插件会在工程的gen目录下会自动生成一个Java实现文件。

在Service中代码如下:

C/C++代码

5 publicclassCWJServiceextendsService{

6

7 publicstaticfinalStringBIND="com.android123.cwj.CWJService.BIND";

8 publicStringmName="android123";

9 privatefinalICWJ.StubmBinder=newICWJ.Stub()

10 {

11 @Override

12 publicStringgetName()throwsRemoteException

13 {//重写在AIDL接口中定义的getName方法,返回一个值为我们的成员变量mName的内容。

14 try

15 {

16 returnCWJService.this.mName;

17 }

18 catch(Exceptione)

19 {

20 returnnull;

21 }

22 }

23 ;

24

25 @Override

26 publicvoidonCreate(){

27 Log.i("svc","created.");

28 }

29 @Override

30 publicIBinderonBind(Intentintent){

31 returnmBinder;//这里我们要返回mBinder而不是一般Service中的null

32 }

33 }

接着在AndroidManifest.xml文件中定义

C/C++代码

34 <serviceandroid:name=".CWJService">

35 <intent-filter>

36 <actionandroid:name="com.android123.cwj.CWJService.BIND"/>

37 <categoryandroid:name="android.intent.category.DEFAULT"/>

38 </intent-filter>

39 </service>

接下来在Activity中的调用,我们可以

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...