嗨,伙伴们,计划了一周的想法最终要在这一刻实现了。

一直都想写一个博客专栏,但是总是鼓不起勇气来写。感觉自己的水量还不太够。哈哈。这次下定决心,与小伙伴们一起分享下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的使用过程

AIDL旅行记之开篇AIDL基本介绍的更多相关文章

  1. javascript大神修炼记(1)——入门介绍

    读者朋友们好,从今天开始,我将带领新朋友们,从了解javascript开始,一步一步地进阶到大神境界,别的不废话,现在开始,我们就一点一点地从入门阶段开始. 我们还是介绍一下javascript的身世 ...

  2. 深入理解JVM虚拟机开篇:JVM介绍与知识脉络梳理

    微信公众号[Java技术江湖]一位阿里 Java 工程师的技术小站.作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux.网络.多线程,偶尔 ...

  3. “介绍一下自己吧”——记2020BUAA软工团队介绍和采访

    写在前面 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 团队作业-团队介绍和采访 团队介绍 团队名称 我们是 BUAA软软软件工程小队 ,简称 ...

  4. AIDL进程间调用与Binder的简单介绍

    Binder是安卓中特有的一种进程间通信(IPC)方式,从Unix发展而来的手段,通信双方必须处理线程同步.内存管理等复杂问题,传统的Socket.匿名通道(Pipe).匿名管道(FIFO).信号量( ...

  5. AIDL介绍和实例讲解

    前言 为使应用程序之间能够彼此通信,Android提供了IPC (Inter Process Communication,进程间通信)的一种独特实现: AIDL (Android Interface ...

  6. aidl介绍

    (1)远程服务 运行在其他应用里面的服务     (2)本地服务 运行在自己应用里面的服务    (3)进行进程间通信  IPC   (4)aidl Android interface Definat ...

  7. 【Android - IPC】之AIDL简介

    参考资料: 1.<Android开发艺术探索>第二章2.4.4 2.Android AIDL Binder框架解析:http://blog.csdn.net/lmj623565791/ar ...

  8. AIDL原理分析

    季春初始,天气返暖,新冠渐去,正值学习好时机.在Android系统中,AIDL一直在Framework和应用层上扮演着很重要的角色,今日且将其原理简单分析.(文2020.03.30) 一.开篇介绍 1 ...

  9. 了解AIDL

    1.什么是AIDL? Android Interface Definition Lauguage(android接口描述语言)是一个IDL语言. 2.AIDL的作用? 背景:在android平台 中, ...

随机推荐

  1. 课下测试ch17&ch18

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

  2. [POI2015]Wilcze doły

    [POI2015]Wilcze doły 题目大意: 给定一个长度为\(n(n\le2\times10^6)\)的数列\(A(1\le A_i\le10^9)\),可以从中选取不超过\(d\)个连续数 ...

  3. 【洛谷】4304:[TJOI2013]攻击装置【最大点独立集】【二分图】2172: [国家集训队]部落战争【二分图/网络流】【最小路径覆盖】

    P4304 [TJOI2013]攻击装置 题目描述 给定一个01矩阵,其中你可以在0的位置放置攻击装置. 每一个攻击装置(x,y)都可以按照“日”字攻击其周围的8个位置(x-1,y-2),(x-2,y ...

  4. GIT(5)----常用命令:新分支,切换,删除,远程推送,标签,日志

    常用命令 1.新分支 创建新分支:git branch <branch_name> 创建分支并切换到新的分支上:git checkout -b <branch_name> 2. ...

  5. oracle开发学习篇之集合函数

    集合函数; declare type list_nested ) not null; v_all list_nested := list_nested('changan','hubei','shang ...

  6. 使用HAproxy如何实现web站点的动静分离

    HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.      HAProxy特别 适用于那些负载特大的web站点,这些站点通常 ...

  7. windows下git命令的使用

    一.写在前面 关于git,出于自己的爱好,前段时间玩了一下,也自己上网查了一下资料,现简单记录一下,以备查看. 当然,本文并不是介绍配置git服务器的文章,而是以github服务器作为git的远程仓库 ...

  8. PowerDesigner关系线显示名称

    选中关联关系线,右击选择“格式”,打开如下窗口,将“Name” 选项进行勾选上即可. 参考: http://loginleft.iteye.com/blog/2400980

  9. CentOS 7挂载磁盘提示: mount: unknown filesystem type 'LVM2_member'

    说明:CentOS 7采用新的分区格式xfs以及LVM的模式,造成挂载硬盘的方式有变化. 解决: 使用lvdisplay命令查看LVM最终的卷路径,然后再进行挂载. 比如: mount /dev/Vo ...

  10. A* search算法解迷宫

    这是一个使用A* search算法解迷宫的问题,细节请看:http://www.laurentluce.com/posts/solving-mazes-using-python-simple-recu ...