一.Linux内核的基础知识
1.进程隔离/虚拟地址空间
eg:每一个应用程序apk运行都有一个进程,为了保护操作系统之间的进程互不干扰,所以设计了进程隔离:防止进程A去操作进程B的数据;进程A的虚拟地址空间和进程B的空间是不同的
同另一个进程进行通信,则需要一个通信机制:android中是Binder
2.系统调用
eg用户可以通过系统调用,在用户空间,访问内核的某些程序
3.binder驱动
二.Binder通信机制
1.为什么使用binder
1)Android使用的Linux内核有非常多的跨进程通信机制(java已经有管道,socket.为什么还要binder)
2)性能
eg:binder高效
3)安全
eg:socket通信双方,地址由客户端填写,可以进行数据伪造;而binder是支持双方数据身份校验
2.binder通信模型
1)通信录:binder驱动
2)电话基站:serviceManager
步骤:1.向内核申请成为serviceManager
2.需要使用的信息在serviceManager中注册
3.两者之间进行通信,首先查询serviceManger,然后告诉client,再告诉用户

binder
1)Binder是一种通信机制,跨进程
2)对于Server进程,Binder指Binder本地对象/对于client来说,Binder指代理对象
3)对于传输过程而言,Binder是可以进行跨进程传递的对象
网友评论