本文主要是介绍Android Binder——ServiceManager初始化(六),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上一篇文章介绍到 servicemanager 的 main 函数中主要做了四件事:
1)初始化 binder 驱动。
2)将自身以“manager”添加到 servicemanager 中的 map 集合中。
3)注册成为 binder 驱动的上下问管理者。
4)给 Looper 设置 callback,进入无限循环,处理 client 端发来的请求。
这里我们对其进行详细介。
一、驱动初始化
1、main.cpp
源码位置:system/core/init/main.cpp
sp<ProcessState> ps = ProcessState::initWithDriver(driver);
ps->setThreadPoolMaxThreadCount(0);
ps->setCallRestriction(ProcessState::CallRestriction::FATAL_IF_NOT_ONEWAY);
2、ProcessState.cpp
源码位置:/frameworks/native/libs/binder/ProcessState.cpp
initWithDriver
sp<ProcessState> ProcessState::initWithDriver(const char* driver)
{return init(driver, true /*requireDefault*/);
}sp<ProcessState> ProcessState::init(const char *driver,
这篇关于Android Binder——ServiceManager初始化(六)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!