理解Binder(草稿)

24 阅读1分钟

来源 bilibii [www.bilibili.com/video/BV19a…]

背景

可以看到APP: QQ、微博项目中等都是使用了多个进程的。截屏2024-07-03 11.29.54.png

那什么时候使用到多进程呢?

  • 比如说是推送 保活 插件化 内存不够用 加载大图 闹钟 电话 等等

那为什么使用多进程呢?

  • 安全:主进程运行App 子进程操作别的。 这样子进程崩溃 主进程不会受到影响
  • 内存不够: OOM 手机运行内存 8G 16G 加载大图OOM 虚拟机为每个进程分配内存,每个进程大小有限制的。根据机型的不同,内存大小也是不一样的。 image.png

那进程之间如何进行通信的呢?

    //进程A
    class A{
    }
    //进程B
    class B{
        new A()🙅‍♂️ 不行 会报错
    }

截屏2024-07-03 11.59.19.png 类比:

截屏2024-07-03 12.02.48.png 类比快递有很多类型。进程之间的通信方式也有很多种 比如: socket 广播 共享内存 管道 文件 信号 信号量 Binder 那选择哪一种呢? 基于不同的目的 选择不同的通信机制 ,Android 选择了Binder.

那为什么要增加Binder呢?

Binder是什么

Binder的作用是什么

怎么使用Binder

在现实场景的使用频率&使用场景

Binder的优势 劣势 [Android为何如此热衷于Binder,相当于其他进程间通信有什么优缺点]

Binder原理

是如何实现进程之间通信的呢?

与其他API的协作

AIDL 和Binder的关系。 扩展到AIDL是什么

对标

同作用的其他Api
各自的优势劣势