android aidl服务器端,Android aidl学习笔记-服务端

服务端编码步骤

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,注意:parcelable 的p是小写。

6.再次Make Project。

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

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

最后

项目结构如下所示

src.png

build_generated_source.png

hellomsg.png

hellomsg_java.png

iremoteservice.png

iremoteservice_java.png

remoteservice.png

77b7c70cff09

src.png

77b7c70cff09

iremoteservice.png

77b7c70cff09

iremoteservice_java.png

77b7c70cff09

hellomsg.png

77b7c70cff09

hellomsg_java.png

77b7c70cff09

remoteservice.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值