绑定服务获取远程binder流程
匿名binder不会存储ServiceManager里面,所以没法通过getService查询,来看看常用的bindService是如何获取一个匿名Binder的 匿名Binder的创建 应用层传输逻辑 以Service中的onBind函数返回一个binder对象为例子,我们先画下时序图
匿名binder不会存储ServiceManager里面,所以没法通过getService查询,来看看常用的bindService是如何获取一个匿名Binder的 匿名Binder的创建 应用层传输逻辑 以Service中的onBind函数返回一个binder对象为例子,我们先画下时序图
我们基于kernel6.1源码分析 当客户端进程发起binder请求向服务进程传递数据时,客户端获取到BpBinder发起跨进程调用,调用链如下 BpBinder::transact IPCThreadState::transact IPCThreadState::waitForRe
ServiceManager是binder服务的管理者,服务端注册Binder,客户端获取binder都要通过ServiceManager,充当了一个binder路由转发的角色。 ServiceManager是一个独立的进程,在Java层提供了一个ServiceManager的接口类,真正的实现是在
创建PoolThread Zygote创建进程之后通过app_main::onZygoteInit函数初始化ProcessState,这个类代表进程且是一个单例对象,整个进程只有一个,接下来调用函数ProcessState::startThreadPool创建线程池 void ProcessStat