0
点赞
收藏
分享

微信扫一扫

Android Binder机制

古得曼_63b6 2024-05-05 阅读 19

一.简介

Binder是什么?

Android系统中,涉及到多进程间的通信底层都是依赖于Binder IPC机制。

例如当进程A中的Activity要向进程B中的Service通信,这便需要依赖于Binder IPC。不仅于
此,整个Android系统架构中,大量采用了Binder机制作为IPC(进程间通信,Interprocess Communication)方案。
也存在部分其他的IPC方式,如管道、SystemV、Socket等。

二.Binder的原理

在讲解Binder前,我们先了解一些Linux的基础知识。

进程空间划分:

  • 一个进程空间分为 用户空间 & 内核空间(Kernel),即把进程内 用户 & 内核 隔离开来
  • 二者区别:
    1. 进程间,用户空间的数据不可共享,所以用户空间 = 不可共享空间
    2. 进程间,内核空间的数据可共享,所以内核空间 = 可共享空间
  • 进程内 用户空间 & 内核空间 进行交互 需通过 系统调用,主要通过函数:
copy_from_user():将用户空间的数据拷贝到内核空间
copy_to_user():将内核空间的数据拷贝到用户空间

a. 而Binder的作用则是:连接 两个进程,实现了mmap()系统调用,主要负责 创建数据接收的缓存空间 & 管理数据接收缓存
b. 注:传统的跨进程通信需拷贝数据2次,但Binder机制只需1次,主要是使用到了内存映射,具体下面会详细说明。

Binder 跨进程通信机制 模型 :

Binder 跨进程通信机制 模型 基于 Client - Server 模式。

  • Binder驱动的作用 & 原理:

  • 跨进程通信的核心原理

  • 模型原理步骤说明

 

举报

相关推荐

0 条评论