初涉IPC,了解AIDL的工作原理及使用方法

初涉IPC,了解AIDL的工作原理及使用方法


今天来讲讲AIDL,这个神秘的AIDL,也是最近在学习的,看了某课大神的讲解写下的blog,希望结合自己的看法给各位同价通俗易懂的讲解

官方文档:http://developer.android.com/guide/components/aidl.html

一.What is AIDL什么是AIDL)

AIDL:Android Interface Definition Language (Android接口定义语言)

首先,我们要知道,进程1和进程2,我们要如何让他通讯/p>

我们首先还是先进Google的API看看

这里提到了两个东西

  • Binder
  • Messenger

我们继续往下看话就知道

  • Binder
  • Messenger

翻译:如果您不需要执行并发IPC在不同的应用程序中 你就用Binder ,或者如果你想执行IPC,但不需要处理多线程,实现你的接口Messenger,无论如何,确保你了解实现AIDL之前绑定服务。

所以我们就能理清楚AIDL的概念了

  • AIDL //IPC 多应用 多线程

二.Defining an AIDL Interface(语法)

我们来做一个简单的演示

我们要使用的编译工具在我们的SDK/buidl-tools/android版本/aidl.bat,不过实际开发中也不需要手动编译,我们新建一个项目ForAIDL,这里我们使用的开发工具是Android Studio,其实Eclipse可能更加让人熟悉,不过用AS也是大势所趋了,而且AS的目录结构我也很喜欢

然后你就会发现多了一个aidl的文件夹

大致的内容

AS默认是不会去重新构建Gradle,我们点击一下构建按钮

三.AIDL Client And Service(客户端和服务端)

现在就好玩了,我们先来理理思路,一般是这样的,我们一个软件有某个功能,也就是服务端,然后客户端通过AIDL去访问

ServiceAidlInterface

现在我们处理的就不是默认的东西了,AIDL的原理就是你自定义语言接口,对的,我们也来

2. Implement the interface(实现一个AIDL)

根据我们的Google文档,第一步Create the .aidl file已经完成了,现在就来进行第二步了,我们这里需要使用到Service,看文档

OK,写完了服务端就可以写客户端了,我们直接new一个Module-AIDLClients

我們先按剛才的逻辑,把界面写了

我们要想客户端调用服务端的内容,那么就一定要定义标准的语言,所以客户端的aidl和服务端必须一致

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年2月14日
下一篇 2016年2月15日

相关推荐