/frameworks/native/cmds/servicemanager/service_manager.c
int main(int argc, char const *argv[])
{
/**
struct binder_state
{
int fd; //open()系统调用返回的文件描述符
void *mapped; //mmap系统调用返回的映射区的起始地址
unsigned mapsize;//映射区的大小
};
*/
struct binder_state * bs;
void * svcmgr = BINDER_SERVICE_MANAGER;
bs = binder_open(128 * 1024);
if (binder_become_context_manager(bs))
{
ALOGE("cannot become context manager (%s)\n", strerror(errno));
return -1;
}
svcmgr_handle = svcmgr;
binder_loop(bs, svcmgr_handler);
return 0;
}
Android--Binder驱动浅析
最新推荐文章于 2025-12-02 15:59:56 发布
本文详细解析了Android系统中ServiceManager的启动流程。通过分析service_manager.c源代码,揭示了binder机制如何初始化并成为上下文管理器,以及后续的服务注册与循环处理机制。
729

被折叠的 条评论
为什么被折叠?



