嗨,伙伴们,计划了一周的想法最终要在这一刻实现了。
一直都想写一个博客专栏,但是总是鼓不起勇气来写。感觉自己的水量还不太够。哈哈。这次下定决心,与小伙伴们一起分享下Android中的AIDL,从此,也就有了以下的故事。我把它叫做:AIDL旅行记。
第一篇,我想以AIDL简单介绍,什么叫AIDL介绍的方式来開始。
编写博文技术有限,存在的问题还希望大家多多指正。准备好了吗,让我们一起走进AIDL的世界吧。
在手机中,我们所安装的App应用,普通情况下都是互相独立的执行,之间并没有什么关联。
比方,当我们启动QQ音乐App,播放一首动听的歌曲,此时再去QQ中与好友进行聊天。两者同一时候进行,互不干扰。
从操作系统方面理解,这是CPU前进的里程碑。
而从我们的Android中理解,这是多个进程的相互转化。在Android中,小伙伴们都知道,每一个应用(Application)执行在它自己的进程中,无法直接调用到其它应用的资源,这就是所谓的“沙箱”。所谓沙箱,简单地说意指部分地或所有地隔离应用程序。
因此。在Android中。当一个应用被运行时。一些操作是被限制的,比方訪问内存。訪问传感器。等等。这样做能够最大化地保护系统,免得应用程序“为所欲为”。
那我们有时须要在应用间(即不同的App)交互。怎么办呢?于是,Google为我们提供了非常好的实现方式。
即IPC协议。IPC全称为:interprocess communication(跨进程间通信)。单独编写这个协议还是有点复杂的,主要考虑到须要实如今进程或线程间传递数据。
只是没关系。Google考虑到了我们的痛楚,为我们提供了一个利器:AIDL。
以下,我们一起开启学习AIDL的快乐之旅。
在Android中,Google为我们提供了三种IPC通信方式,分别为:
(1)AIDL:
(2)Binder:
(3)Messager:
(4)既然Google为我们提供了三种IPC通信方式。三者之间肯定是有差别的,从官方文档中,我们能够了解到三者的下面差别:
(5)AIDL:适合多线程,多个应用程序,进行IPC通信。
(6)Binder:适合多个应用程序,不是多线程的情况下进行IPC通信。
(7)Messager:仅仅是进行IPC通信,不适合多线程多应用的情况。
从上面能够看到,AIDL为我们所做的工作是最多的。也是最强大的。
这里又会反射出一个问题,即AIDL在底层的占用消耗也是最大的。
所以,使用AIDL要适宜。
Ok,AIDL的简介就到这里了。相信小伙伴们对AIDL都有了一个简单的认识,以及在Android开发过程中使用AIDL的场景。下一篇。我们将会详细分析AIDL的使用过程。