博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Binder原理学习记录
阅读量:5924 次
发布时间:2019-06-19

本文共 590 字,大约阅读时间需要 1 分钟。

hot3.png

Android插件化开发学习笔记

Binder的目的是解决跨进程通信。

1、Binder分为Client 和 Server 两个进程。

Client 和 Server是相对的,谁发消息,谁就是client,谁接收消息,谁就是Server。

2、Binder的组成

ServiceManager负责把Binder Server注册到一个容器中

3、Binder的通信过程

首先:Server在SM容器中注册

其次:Client若要调用Server的add方法,就需要先获取Server对象,但是SM不会把真正的Server对象返回给Client, 而是把Server的一个代理对象,也就是Proxy,返回给Client

再次:Client调用Proxy的add方法,ServiceManager会帮他去调用Server的add方法,并把结果返回给Client

以上3步,Binder驱动出了很多力,但我们不需要知道Binder驱动的底层实现,这涉及C或C++的底层。

综上所述:

1、学习Binder是为了更好地理解AIDL,基于AIDL模型,进而了解四大组件的原理。

2、理解了Binder再看AMS和四大组件的关系,就像是Binder的两个进程Server和Client通信

转载于:https://my.oschina.net/gabriel1215/blog/3048222

你可能感兴趣的文章
Java之JMX 详解
查看>>
iOS开发之JSON & XML
查看>>
Ubuntu安装配置mysql
查看>>
YARN加载本地库Unable to load native-hadoop library解决办法
查看>>
【Go语言】【4】GO语言类型和为类型增加方法
查看>>
Linux挂载ntfs分区
查看>>
软件需求调研“五步法” 收藏
查看>>
Html 语法学习笔记三
查看>>
IIS 服务或万维网发布服务,或者依赖这 服务可能在启动期间发生错误或者已禁用...
查看>>
【斗医】【2】Web应用开发20天
查看>>
图像处理------Mean Shift滤波(边缘保留的低通滤波)
查看>>
大牛解密阿里云直播技术平台
查看>>
laravel吐槽系列之一
查看>>
FTP的主动和被动模式详解
查看>>
CSS之旅——第三站 强大的伪选择器
查看>>
恶补web之七:html DOM知识
查看>>
dubbo源码分析系列(4)dubbo通信设计
查看>>
linux工具之curl与wget高级使用
查看>>
jdk-logging、log4j、logback日志介绍及原理
查看>>
玩聚的Blog&Tweet墙 VI
查看>>