先上一张Binder 的工作流程图。(如果不清晰,可以 复制图片链接到浏览器 或 保存到本地 查看,我经常都是这样看图的哈)
一开始上手,陌生的东西比较多,But,其实并不复杂。喔,流程图是用 ProcessOn 画的。很棒的在线画图工具。
出发前预备子弹
我们知道进程之间,虚拟地址不同,是不能直接通信的,这是一种保护机制。打开任务管理器,查看一下N多的进程,试想一下如果这些进程直接通信会带来什么后果?
而用户空间可以通过System calls(系统回调)与内核空间通信的,如果在内核空间中有一个模块,能够完成数据的转发,那么是不是两个进程就可以通信了呢?如下图:
上面提到一些用户空间、内核空间的概念,用户空间也能大概猜到是什么东西,而内核空间,就知道它是很底层的东西好了。而模块呢,可以简单的理解为实现一个功能的程序或一个硬件电路等,比如玩单片机的时候,会有红外线模块,蓝牙模块,wifi模块等