美文网首页
Android aidl学习笔记-服务端

Android aidl学习笔记-服务端

作者: 小豪豪君 | 来源:发表于2017-07-09 00:13 被阅读16次

    本文参考:http://blog.csdn.net/fwt336/article/details/52587133

    服务端编码步骤

    aidl描述:

    AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication, IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数。

    操作步骤

    1.首先新建一个android项目

    2.main文件夹右键选择aidl,新建一个aidl文件,本项目中文件名为IRemoteService,IRemoteService.aidl中可以任意写几个方法,这步操作之后main文件夹下回多一个aidl目录,目录中包名与java目录中的包名一致。

    3.点击Build - Make Project,等待执行完成,查看app - build - generated - source - aidl - debug下是否生成IRemoteService.java文件,IRemoteService中有一个静态抽象类 Stub,Stub实现了IRemoteService接口,实现了IRemoteService.aidl中的所有方法,需要注意的是Stub中声明了一个asInterface方法,这个方法接受一个Binder对象,并将其转化成Stub对应的接口对象(也就是这里的IRemoteService)并返回。

    4.java目录下新建一个javabean,项目中命名为HelloMsg并实现Parcelable接口。

    5.aidl与IRemoteService.aidl同目录下新建HelloMsg.aidl文件,文件中只需要写入package 包名parcelable HelloMsg,注意:parcelablep是小写。

    6.再次Make Project。

    7.java目录下新建一个service继承Service,本项目中命名为RemoteService,声明IRemoteService.Stub对象,重写onBind方法,用于向客户端返回Binder对象,至此服务端代码已经编写完成,不要忘记在AndroidManifest加上service标签。

    源代码已上传Github,欢迎star:

    https://github.com/uiatnys/AIDLServiceDemo

    最后

    项目结构如下所示

    src.png iremoteservice.png iremoteservice_java.png hellomsg.png hellomsg_java.png remoteservice.png

    相关文章

      网友评论

          本文标题:Android aidl学习笔记-服务端

          本文链接:https://www.haomeiwen.com/subject/zeijhxtx.html