Binder

作者: 叙忆 | 来源:发表于2017-10-09 14:14 被阅读0次

一.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是可以进行跨进程传递的对象

相关文章

网友评论

      本文标题:Binder

      本文链接:https://www.haomeiwen.com/subject/vwmuyxtx.html