如果心满意足,谁又去准备面试?

面试准备——Android进程间通信(Binder)

2021-04-24  本文已影响0人  So_ProbuING

大厂APP多进程

我们发现常用的大厂App例如微信、微博、今日头条等在后台查看的时候都会发现后台运行的好几个进程。为什么大厂的App会这么做呢

我们知道App是运行在Android的虚拟机上的,而Android的虚拟机是按照进程分配内存的

也就是说,一个进程占用的内存是由Android系统分配的,无论分配多少,所以一个App的内存是有限的。
那么如果一个App有多个进程的话,相当于App的内存变大了,避免了OOM出现

还有就是 当我们的App奔溃时,如果只有一个进程会导致整个App奔溃。但是如果我们如果有多个进程,当一个进程奔溃时还会有其他进程避免奔溃

进程之间是怎么通信的

进程之间的数据是不共享的,也就是说我们无法在一个进程中使用另一个进程中的数据,那么我们如何来进行通信呢?


内存划分

在我们的系统中 不同进程之间的用户空间是互相独立的,进程间的通信机制就是靠内核调用的

Android为什么要使用Binder来进行进程间通信

Binder与传统IPC对比

AIDL

AIDL是Android的接口定义语言。AIDL可以生成通过Binder实现跨进程通信的代码

Binder服务连接总流程
上一篇 下一篇

猜你喜欢

热点阅读