没有合适的资源?快使用搜索试试~ 我知道了~
Android面试题集2020版(包含答案整理)第二部分1
需积分: 0 0 下载量 135 浏览量
2022-08-03
17:25:57
上传
评论
收藏 24.66MB PDF 举报
温馨提示
试读
791页
简介跨进程通信的核心原理关于其核心原理:内存映射,具体请看文章:操作系统:图文详解 内存映射3.3 模型原理步骤说明3.4 额外说明ioctl 文件操作函数),
资源详情
资源评论
资源推荐
3.18.2 给我具体讲讲Binder机制。
1. Binder到底是什么?
中文即 粘合剂,意思为粘合了两个不同的进程
网上有很多对 Binder 的定义,但都说不清楚: Binder 是跨进程通信方式、它实现了 IBinder 接口,是连接
ServiceManager 的桥梁blabla,估计大家都看晕了,没法很好的理解
我认为:对于 Binder 的定义,在不同场景下其定义不同
在本文的讲解中,按照 大角度 -> 小角度 去分析 Binder ,即:
先从 机制、模型的角度 去分析 整个 Binder 跨进程通信机制的模型
其中,会详细分析模型组成中的 Binder 驱动
再 从源码实现角度,分析 Binder 在 Android 中的具体实现
从而全方位地介绍 Binder ,希望你们会喜欢。
2. 知识储备
在讲解 Binder 前,我们先了解一些 Linux 的基础知识
2.1 进程空间划分
一个进程空间分为 用户空间 & 内核空间( Kernel ),即把进程内 用户 & 内核 隔离开来
二者区别:
1. 进程间,用户空间的数据不可共享,所以用户空间 = 不可共享空间
2. 进程间,内核空间的数据可共享,所以内核空间 = 可共享空间
所有进程共用1个内核空间
进程内 用户空间 & 内核空间 进行交互 需通过 系统调用,主要通过函数:
1. copy_from_user():将用户空间的数据拷贝到内核空间
2. copy_to_user():将内核空间的数据拷贝到用户空间
2.2 进程隔离 & 跨进程通信( IPC )
进程隔离 为了保证 安全性 & 独立性,一个进程 不能直接操作或者访问另一个进程,即 Android 的进程是相互独
立、隔离的
跨进程通信( IPC ) 即进程间需进行数据交互、通信
跨进程通信的基本原理
3.4 额外说明
说明1: Client 进程、 Server 进程 & Service Manager 进程之间的交互 都必须通过 Binder 驱动(使用 open 和
ioctl 文件操作函数),而非直接交互
原因:
1. Client 进程、 Server 进程 & Service Manager 进程属于进程空间的用户空间,不可进行进程间交互
2. Binder 驱动 属于 进程空间的 内核空间,可进行进程间 & 进程内交互
所以,原理图可表示为以下:
虚线表示并非直接交互
剩余790页未读,继续阅读
华亿
- 粉丝: 39
- 资源: 308
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0