来源 bilibii [www.bilibili.com/video/BV19a…]
背景
可以看到APP: QQ、微博项目中等都是使用了多个进程的。
那什么时候使用到多进程呢?
- 比如说是推送 保活 插件化 内存不够用 加载大图 闹钟 电话 等等
那为什么使用多进程呢?
- 安全:主进程运行App 子进程操作别的。 这样子进程崩溃 主进程不会受到影响
- 内存不够: OOM 手机运行内存 8G 16G 加载大图OOM 虚拟机为每个进程分配内存,每个进程大小有限制的。根据机型的不同,内存大小也是不一样的。
那进程之间如何进行通信的呢?
//进程A
class A{
}
//进程B
class B{
new A()🙅♂️ 不行 会报错
}
类比:
类比快递有很多类型。进程之间的通信方式也有很多种 比如: socket 广播 共享内存 管道 文件 信号 信号量 Binder 那选择哪一种呢? 基于不同的目的 选择不同的通信机制 ,Android 选择了Binder.
那为什么要增加Binder呢?
Binder是什么
Binder的作用是什么
怎么使用Binder
在现实场景的使用频率&使用场景
Binder的优势 劣势 [Android为何如此热衷于Binder,相当于其他进程间通信有什么优缺点]
Binder原理
是如何实现进程之间通信的呢?
与其他API的协作
AIDL 和Binder的关系。 扩展到AIDL是什么