服装 公司 网站建设,辽宁省住房和城乡建设厅网站上不去,网页编辑平台,做 理财网站好上一篇文章介绍到 servicemanager 的 main 函数中主要做了四件事: 1)初始化 binder 驱动。 2)将自身以“manager”添加到 servicemanager 中的 map 集合中。 3)注册成为 binder 驱动的上下问管理者。 4)给 Looper 设置 callback,进入无限循环,处理 client 端发来的请求。… 上一篇文章介绍到 servicemanager 的 main 函数中主要做了四件事: 1)初始化 binder 驱动。 2)将自身以“manager”添加到 servicemanager 中的 map 集合中。 3)注册成为 binder 驱动的上下问管理者。 4)给 Looper 设置 callback,进入无限循环,处理 client 端发来的请求。 这里我们对其进行详细介。
一、驱动初始化
1、main.cpp
源码位置:system/core/init/main.cpp
spProcessState 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
spProcessState ProcessState::initWithDriver(const char* driver)
{return init(driver, true /*requireDefault*/);
}spProcessState ProcessState::init(const char *driver,