本文参考: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

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Android(安卓)Telechips89xx背光控制流程
  6. Android(安卓)View 绘制流程之四:绘制流程触发机制
  7. Android中的文件存储
  8. Android(安卓)mk文件中引入第三方jar包的方法
  9. Handler使用总结

随机推荐

  1. 华清远见专家解读Android开发者成长之路
  2. android 如何完全卸载Android Studio
  3. Android开发学习笔记之 获得Android 可使
  4. 史上最强Android木马”现身
  5. Android面试系列文章2018之Android部分As
  6. 【Android 开发入门】Android设备监视器
  7. handle的用法
  8. android 下动画结束时闪烁问题
  9. Flutter(Android 混合开发)
  10. [hessdroid]Android下使用Hessian与Java