Binder听课记录

来源:互联网 发布:淘宝联盟转链工具 编辑:程序博客网 时间:2024/06/05 21:59

Linux内核的基础知识(和Binder相关)

  1. 进程隔离/虚拟地址空间,为了互相不影响,进程数据不共享,进行隔离,如果要实现共享数据,Android中须使用Binder机制;
  2. 系统调用:对内核保护机制,把内核层和上层应用隔离开,告诉应用程序可访问许可的资源,用户可以通过系统调用访问内核的某些程序;
  3. binder驱动:运行在内核空间中,负责各个用户进程通过Binder通信的内核来进行交互的一个模块,叫作Binder驱动。

Binder通信机制介绍

1. Android使用的Linux内核有着非常多的跨进程通信机制(管道、Socket),为什么Android还需要Binder    1. 性能:移动设备广泛使用跨进程通信对通信机制本身有严格的要求,Binder相当于传统的Socket方式,更加高效。    2. 安全:传统的进程间通信没有严格对双方进行身份验证,只有上层协议才会进行架构,Binder支持身份校验。


2. binder通信模型
1. Binder驱动(通信录)
2. ServiceManager(电话基站)
3. Client只是获取到了SM返给其的代理对象,并不是真的Server的对象

3. 到底什么是Binder
1. 通常意义下,Binder指的是一种跨进程通信机制(不跨进程也可以);
2. 对于Server进程来说,Binder指的是Binder本地对象/对于Client来说,Binder指的是Binder代理对象;
3. 对于传输过程来说,Binder是可以进行跨进程传递的对象,会自动完成Client/Server和代理对象转换。

AIDL实现

AIDL详情学习