2018-01-30Binder机制
2018-01-30 本文已影响17人
默默_大魔王
为什么使用binder,binder是一种跨进程通信机制。
部分参考该文章:https://www.jianshu.com/p/bdef9e3178c9
从下往上依次为
内核层:Linux 内核和各类硬件设备的驱动,这里需要注意的是,Binder IPC 驱动也是在这一层实现,比较特殊
硬件抽象层:封装「内核层」硬件驱动,提供可供「系统服务层」调用的统一硬件接口
系统服务层:提供核心服务,并且提供可供「应用程序框架层」调用的接口
Binder IPC 层:作为「系统服务层」与「应用程序框架层」的 IPC 桥梁,互相传递接口调用的数据,实现跨进层的通讯
应用程序框架层:这一层可以理解为 Android SDK,提供四大组件,View 绘制体系等平时开发中用到的基础部件
1,Android使用的linux内核,应用了很多跨进程通信
2,binner性能比较高
3,安全性比较高。
Binder IPC 属于 C/S 架构,包括 Client、Driver、Server 三个部分
Client 可以手动调用 Driver 的 transact 接口,也可以通过 AIDL 生成的 Proxy 调用
Server 中会启动一个「线程池」来处理 Client 的调用请求,处理完成后将结果返回给 Driver,Driver 再返回给 Client。