AIDL服务创建步骤.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AIDL服务创建步骤

Android应用程序中AIDL服务端与客户端的搭建 AIDL简介 AIDL:Android Interface Definition Language,即Android接口描述语言。 为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样,Android使用一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口。我们知道4个Android应用程序组件中的3个(Activity、Broadcast和Content Provider)都可以进行跨进程访问,另外一个Android应用程序组件Service同样可以。因此,可以将这种可以跨进程访问的服务称为AIDL(Android Interface Definition Language)服务。 AIDL服务端创建步骤  (1)在Eclipse Android工程的Java包目录中建立一个扩展名为aidl的文件。该文件的语法类似于Java代码,但会稍有不同。 Aidl文件中首先要定义aidl文件所在包的包名,如下所示: package com.ccit.se.aidl; 接着定义接口,接口要在interface 文件名{}之中定义,如下所示: interface ISEService{} 定义接口的时候与java的接口类似,不过参数要指明是in,out或者inout参数,如下所示: String unSymEDcrypt(in int type,in int atype,in String input); 上述代码中,Stirng代表此接口的返回值类型,unSymEDcrypt是接口的方法名,in int type 是接口的输入参数,如果是out,则标明此参数在调用外声明,在实现中赋值,inout则表示实现内可以使用此参数也可以对此参数进行赋值。 可以在接口声明中添加方法注释,注释规则与java相同,注释过后会在自动生成的文件中自动生成注释,方便调用。 (2)如果aidl文件的内容是正确的,ADT会自动在gen目录下生成一个相对应的Java接口文件(*.java)。  (3)建立一个服务类(Service的子类)。 服务类要继承Service类,实现父类的onBind方法,否则服务将无法被访问。 在该类中声明一个刚刚ADT自动生成的类的对象,如下所示 private ISEService.Stub binder = new Stub(){} 在该类中实现接口中定义的方法,如下所示: private ISEService.Stub binder = new Stub(){ public String unSymEDcrypt(int type, int atype, String input) throws RemoteException { return fads; } } 在onBind方法中return该对象,如下所示: public IBinder onBind(Intent intent) { return binder; } 在AndroidManifest.xml文件中配置AIDL服务,尤其要注意的是,action标签中android:name的属性值就是客户端要引用该服务的ID,也就是Intent类的参数值,如下所示: application android:icon=@drawable/ic_launcher android:label=@string/app_name service android:name=SEService android:process=:remote intent-filter action android:name=com.ccit.se.aidl.ISEService / /intent-filter /service /application 到此步,AIDL的服务端已经完工。 下面讲下AIDL客户端 AIDL客户端创建步骤 (1)首先在Android工程中创建一个与AIDL文件中packge定义的包名,将刚刚创建的AIDL文件放入此包中。 此时ADT会自动在gen目录下生成一个java文件。 在需要调用服务的Activity中声明一个刚

文档评论(0)

pep2233 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档