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平台 中, ...
随机推荐
- [POI2012]Salaries
题目大意: 给定一棵n带权树,每个点的权值在[1,n]范围内且互不相等,并满足子结点的权值一定小于父结点. 现在已知一个包含根结点的联通块中个点的权值,求剩下哪些点的权值能够被求出,并求出这些权值. ...
- Linux免密登录
ssh连接上服务器 ssh -p 端口 用户名@ip地址 获取本地的pub ssh key cd ~/.ssh vi id_rsa.pub 拷贝里面的内容 将拷贝的内容放到服务器的authorized ...
- 7.4 (java学习笔记)网络编程之TCP
一.TCP 1.1 TCP(Transmission Control Protocol 传输控制协议),是一种面向连接的,安全的传输协议,但效率相比于UDP而言比较低. TCP传输时需要确保先建立连接 ...
- 缓存处理后,F5刷新页面,css和js返回200,为什么不是304?
最近在Apache上做网站的静态资源缓存,但是各种配置之后,发现css和js返回的状态码都是200,为什么不是304? 找来找去在知乎上得到了答案. 来自知乎的一个回答 http://www.zhih ...
- C# 微信小程序获取openid sessionkey
项目介绍 1.微信小程序获取openid和session_key 2.后台使用C#开发 项目流程 准备工作 1 获取appid 1.1 下载微信web开发工具 https://developers.w ...
- UVALive 6661 Equal Sum Sets
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...
- [Visual Studio] 重置默认设置 还原默认设置
恢复默认设置的2种方法 如果VS出现问题或设置变乱,可以通过恢复默认设置使之回到安装成功时的状态,从而解决出现的问题.VS恢复默认设置的方法有2种,分别是:通过“导入和导出设置”实现和通过命令实现. ...
- MYSQL用户操作管理大杂烩
一.创建用户 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指定该 ...
- MySQL多表联查之ThinkPHP中的实现
创建两个表如图: sp_user表: sp_dept表: 目的:通过sp_user的dept_id查询所属部门即sp_dept中的name. 原生sq方法一:select t1.*,t2.name a ...
- POJ 3468 A Simple Problem with Integers (splay tree入门)
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 47944 ...