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

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

    一:运行环境 JDK:1.8 ES:5.6.4 二:学习内容 如何构建spring-data-elasticsearch环境? 如何实现常用的增删改查? 如何实现对象嵌套也就是1对多这种关系? 三:J ...

  2. bzoj 2961

    根据“点在圆内”关系,列出点P(x0,y0)在圆C(x,y)内的关系: (x-x0)^2+(y-y0)^2 <= x^2+y^2 化简得: 2*x0*x+2*y0*y >= x0^2+y0 ...

  3. Linux性能监控分析命令(五)—free命令介绍

    性能监控分析的命令包括如下:1.vmstat2.sar3.iostat4.top5.free6.uptime7.netstat8.ps9.strace10.lsof 命令介绍:free命令是监控Lin ...

  4. windows下git命令的使用

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

  5. Leetcode 树 Populating Next Right Pointers in Each Node II

    本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie Populating Next Right Pointers in Each Node II ...

  6. 使用 soapUI 测试 REST 服务

    REST 服务介绍 REST(Representational State Transfer)是 Roy Fielding 博士在 2000 年提出的一种新的软件架构风格,它以资源(resource) ...

  7. F​l​e​x​4​+​s​p​r​i​n​g​+​h​i​b​e​r​n​a​t​e​+​B​l​a​z​e​D​S​整合案例

    http://wenku.baidu.com/link?url=7v5xAyD2nvChQRT60QewpvAASFHMZNvD0OxX11OASYvae8jbVNsr5I000TwwYOlChzq0 ...

  8. Jquery ajax传递复杂参数给WebService

    参考: http://www.cnblogs.com/kingge/archive/2011/08/04/2127642.html http://www.cnblogs.com/micromouse/ ...

  9. [Asp.net MVC]Bundle合并,压缩js、css文件

    摘要 在web优化中有一种手段,压缩js,css文件,减少文件大小,合并js,css文件减少请求次数.asp.net mvc中为我们提供一种使用c#代码压缩合并js和css这类静态文件的方法. 一个例 ...

  10. C#程序集系列07,篡改程序集

    以下几个方面用来区分不同的程序集:○ 程序集名称:Name○ 程序集版本:Version○ 程序集公匙: Public Token○ 程序集文化:Culture 如果没有很严格地按照上面的几个方面来创 ...