AndroidBinder机制

Binder通信机制

2019-11-06  本文已影响0人  瑟闻风倾

应用:广播内部实现原理

1. 与Binder相关的linux内核知识

linux相关知识.png

2. Binder通信机制

(1) What is Binder:Binder 是一种跨进程的通信机制
(2) 为什么要使用Binder:Android所基于的Linux内核虽然已有很多的跨进程通信机制(如:管道、Socket等),但是作为应用层,进程间的通信非常频繁,对跨进程通信机制的性能要求更高,Binder在性能上比传统的Socket更高效;而且传统的跨进程通信对通信的双方没有严格的限定(如:socket通信的IP地址是客户端填写,可进行人为地伪造),Binder会使通信更安全(协议本身就支持通信双发的身份校验)。所以android有了特有的跨进程通信机制Binder,他比传统的跨进程通信机制更高效安全
(3) Binder通信模型(c/s)

Binder通信模型.png
通信的步骤:

(4) Binder跨进程通信机制原理


Binder通信机制原理.png

如:Client端(进程A)访问Service端(进程B)的Object对象的add()方法

注意:客户端进程仅持有了服务端的代理对象,代理对象协助驱动去完成跨进程通信

3. AIDL实现

(1) AIDL:AIDL(Android Interface Definition Language:Android接口定义语言)是 Android 提供的一种进程间通信 (IPC) 机制

上一篇 下一篇

猜你喜欢

热点阅读