AIDL简单demo彻底玩转AIDL调用

概述

本文通过一个客户端demo和服务端demo共两个app,使用不超过100行代码,向你展示极简、傻瓜级AIDL使用教程,让你彻底玩转AIDL使用方法。附件包含客户端demo和服务端demo,演示客户端app如何调用服务端app的接口方法。

详细

AIDL是一种广泛使用的Binder通信机制,Android系统的四大组件,AMS,PMS等系统服务无一不与Binder挂钩;如果对Binder不甚了解,那么就很难了解这些系统机制,从而仅仅浮游与表面,不懂Binder你都不好意思说自己会Android开发;要深入Android,AIDL 是理解Binder是必须迈出的一步。

一、实现效果图:

AIDL简单demo彻底玩转AIDL调用_第1张图片

二、实现思路:

服务端Demo:

1:创建AIDL文件比如ICompute.aidl,在该文件创建供别人调用的接口

2:build后,ICompute.aidl会自动生成ICompute.java类,新建Service远程服务,继承ICompute类里面的Stub类,实现ICompute.aidl里面的接口

4:最后在清单文件里 注册服务,其中属性要加上export:true 让外部程序可以访问。

客户端Demo:

1:将服务端的ICompute.AIDL文件拷贝到main文件夹下,

2:重建一下项目检查一下ICompute.aidl是否构建成功

3:连接绑定服务,定义ICompute对象aaa,通过绑定服务连接成功的asInteface接口返回对象赋值给aaa。之后就可以随意调用服务端接口了

三、实现过程:

结合我们demo,只需简单4步,理解客户端app调用服务端app的接口方法。

1.新建一个Android项目,也就是我们ServerDemo,作为服务端app,使用模板自动生成后,新建一个aidl文件,这里暂且命名ICompute.aidl,然后make Project.

AIDL简单demo彻底玩转AIDL调用_第2张图片

2.在ServerDemo项目里面,新建一个Service,实现ICompute接口方法

AIDL简单demo彻底玩转AIDL调用_第3张图片

记得注册服务,这里就不贴图了。

3.新建一个客户端Android项目,这里我们命名为ClientDemo,然后把服务端的ICompute.aidl拷贝到客户端目录下,在主界面绑定服务端Service.

AIDL简单demo彻底玩转AIDL调用_第4张图片

4.最后一步,在客户端app调用服务端app的接口。我们在ClientDemo里面写个点击事件,演示调用服务端app的接口

AIDL简单demo彻底玩转AIDL调用_第5张图片

以下是运行结果:

AIDL简单demo彻底玩转AIDL调用_第6张图片

四、项目文件结构截图:

服务端Demo

AIDL简单demo彻底玩转AIDL调用_第7张图片

客户端Demo

AIDL简单demo彻底玩转AIDL调用_第8张图片

你可能感兴趣的:(移动技术,android,java)