AIDL旅行记之开篇AIDL基本介绍
嗨,伙伴们,计划了一周的想法最终要在这一刻实现了。
一直都想写一个博客专栏,但是总是鼓不起勇气来写。感觉自己的水量还不太够。哈哈。这次下定决心,与小伙伴们一起分享下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基本介绍的更多相关文章
- javascript大神修炼记(1)——入门介绍
读者朋友们好,从今天开始,我将带领新朋友们,从了解javascript开始,一步一步地进阶到大神境界,别的不废话,现在开始,我们就一点一点地从入门阶段开始. 我们还是介绍一下javascript的身世 ...
- 深入理解JVM虚拟机开篇:JVM介绍与知识脉络梳理
微信公众号[Java技术江湖]一位阿里 Java 工程师的技术小站.作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux.网络.多线程,偶尔 ...
- “介绍一下自己吧”——记2020BUAA软工团队介绍和采访
写在前面 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 团队作业-团队介绍和采访 团队介绍 团队名称 我们是 BUAA软软软件工程小队 ,简称 ...
- AIDL进程间调用与Binder的简单介绍
Binder是安卓中特有的一种进程间通信(IPC)方式,从Unix发展而来的手段,通信双方必须处理线程同步.内存管理等复杂问题,传统的Socket.匿名通道(Pipe).匿名管道(FIFO).信号量( ...
- AIDL介绍和实例讲解
前言 为使应用程序之间能够彼此通信,Android提供了IPC (Inter Process Communication,进程间通信)的一种独特实现: AIDL (Android Interface ...
- aidl介绍
(1)远程服务 运行在其他应用里面的服务 (2)本地服务 运行在自己应用里面的服务 (3)进行进程间通信 IPC (4)aidl Android interface Definat ...
- 【Android - IPC】之AIDL简介
参考资料: 1.<Android开发艺术探索>第二章2.4.4 2.Android AIDL Binder框架解析:http://blog.csdn.net/lmj623565791/ar ...
- AIDL原理分析
季春初始,天气返暖,新冠渐去,正值学习好时机.在Android系统中,AIDL一直在Framework和应用层上扮演着很重要的角色,今日且将其原理简单分析.(文2020.03.30) 一.开篇介绍 1 ...
- 了解AIDL
1.什么是AIDL? Android Interface Definition Lauguage(android接口描述语言)是一个IDL语言. 2.AIDL的作用? 背景:在android平台 中, ...
随机推荐
- disable_functions php-fpm root
php.ini disable_functions 禁用某些函数 需要时注意打开 php-fpm 对应conf user group为root时 ERROR: [pool www] please sp ...
- bzoj 3283 扩展BSGS + 快速阶乘
T2 扩展BSGS T3 快速阶乘 给定整数n,质数p和正整数c,求整数s和b,满足n! / pb = s mod pc 考虑每次取出floor(n/p)个p因子,然后将问题转化为子问题. /*** ...
- ZOJ 3235 Prototype
Prototype Time Limit: 1 Second Memory Limit: 32768 KB Prototype is a 3D game which allow you to ...
- TensorFlow安装和HelloWorld
TensorFlow安装 TensorFlow可以在各种操作系统上面安装.安装的时候要注意TensorFlow的类型,一种是普通的版本,仅支持CPU,安装简单.另外一种类型带GPU的,可以利用GPU来 ...
- Python3使用setuptools
旧版的setuptools已经不能用于Python3上了,国外有大神fork出了另一分支distribute,它可以支持Python3: 1 2 3 4 5 6 7 #下载 wget http ...
- CareerCup之1.3字符串去重
[题目] 原文: 1.3 Design an algorithm and write code to remove the duplicate characters in a string witho ...
- 通过adb把apk安装到系统分区
通过adb把apk安装到系统分区 以谷歌拼音为例:GooglePinyin1.4.2.apk提取出so文件libjni_googlepinyinime_4.solibjni_googlepinyini ...
- JTAG Level Translation
http://www.freelabs.com/~whitis/electronics/jtag/ One of the big issues in making a JTAG pod is leve ...
- 支付宝支付-常用支付API详解(查询、退款、提现等)-转
所有的接口支持沙盒环境的测试 1.前言 前面几篇文件详细介绍了 支付宝提现.扫码支付.条码支付.Wap支付.App支付 支付宝支付-提现到个人支付宝 支付宝支付-扫码支付 支付宝支付-刷卡支付(条码支 ...
- ConcurrentHashMap JDK 1.6 源码分析
前言 前段时间把 JDK 1.6 中的 HashMap 主要的一些操作源码分析了一次.既然把 HashMap 源码分析了, 就顺便把 JDK 1.6 中 ConcurrentHashMap 的主要一些 ...