![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
binder
fanxiaoyu321
天道酬勤
展开
-
binder驱动之初始化
binder驱动在内核源码树中的如下路径:kernel/drivers/ (不同Linux分支路径略有不同)staging/android/binder.candroid/binder.c模块初始化static int __init binder_init(void){ int ret; // 创建一个工作队列 binder_deferred_workqueue ...原创 2020-01-19 23:07:53 · 247 阅读 · 0 评论 -
servicemanager之启动过程
相关代码文件如下:代码路径说明frameworks/native/cmds/servicemanager/service_manager.cservicemanager守护进程启动文件frameworks/native/cmds/servicemanager/binder.cservicemanager在实现时,并没有引用libbinder库,所以将一些和binde...原创 2020-01-21 22:25:02 · 713 阅读 · 0 评论 -
Native空间binder核心类
这篇笔记粗略的介绍下libbinder中,代理端和服务端相关的核心类以及它们之间的继承关系。代理端类继承关系如下(IServiceManager和BpServiceManager是具体的代理端需要实现的类):服务端类继承关系如下(INetd、BnNetd和NetdNativeService是具体的服务端需要实现的类):IInterface无论是代理端还是服务端,描述接口的类都会从IIn...原创 2020-02-15 19:10:18 · 849 阅读 · 1 评论 -
servicemanager的客户端代理: BpServiceManager
servicemanager作为一个守护进程在开机时被启动,此后就可以说servicemanager的服务端已经就绪,其它服务(如MediaService等具体服务)就可以向servicemanager注册自己了,为了实现和servicemanager的交付,在libbinder库中也为servicemanager提供了客户端(即代理部分),相关核心类就是下图中的IServiceManager和B...原创 2020-02-15 20:07:23 · 1153 阅读 · 0 评论 -
servicemanager之事件处理
在servicemanager之启动过程中,有看到servicemanager在一切准备工作就绪后,就进入binder_loop()开始不停的处理事件,这篇笔记重点分析下这些核心事件时如何处理的。命令解析: binder_parse()首先要解析命令,根据不同的命令进行不同的动作。从下面的代码看,servicemanager支持的命令并不太多。int binder_parse(struct ...原创 2020-02-16 18:50:58 · 453 阅读 · 0 评论