Binder机制——面试

2022-09-08  本文已影响0人  zmy26

一、Binder是什么?

1、Binder就是Android中的血管。在Android中我们所使用的activity,service等组件都需要和AMS(system_serever)通信,这种跨进程通信就是通过Binder来完成的。

     机制:Binder是一种进程间通信机制。

     驱动:Binder是一个虚拟的物理设备驱动。

     应用:Binder是一个能发起通信的Java类。

2、多进程使用的优势:

       虚拟机为每个进程分配的内存是有限的,使用多进程可以突破内存限制,功能强大的APP大多都不止一个进程。

二、Binder机制和传统IPC机制对比:

1、传统的IPC机制:

传统IPC进程间通信机制

虚拟内存:通常我们程序员所说的内存都是虚拟内存。

物理内存:物理内存是硬件,如内存条等。程序中的虚拟内存会映射到物理内存。

用户空间:APP程序在进程中运行的空间。

内核空间;APP程序运行在进程中运行时,系统运行的空间。每个APP的运行不单是我们应用层开发写的代码在运行,framework层即类库层都会运行(当然不是说只要framework层运行的都在内核空间,具体哪些系统代码运行在内核空间不重要,无需深究)。

用户态:运行在用户空间时状态称之为用户态。

内核态:运行在内核空间时状态称之为内核态。

拷贝:内核态到用户态切换(或者用户态到内核态切换),切换1次称为拷贝1次。也就是copy from user、copy to user的次数

系统调用(上下文切换):cpu运行时多个线程快速切换,会保存当前的一些状态,耗时、耗资源。拷贝1次即上下文切换1次。

2、传统IPC机制与Binder机制对比:

IPC机制

3、Binder机制:

Binder机制通信

mmap机制:将虚拟内存映射到一块指定的物理内存,一般的映射是将虚拟内存映射到一块  随意的物理内存。区别:mmap是指定。

上一篇 下一篇

猜你喜欢

热点阅读