本文档是基于Android8.1进行分析,对init进程的启动初始化工作进行了分析,包括解析init.rc配置文件,开启属性服务,开启socket监听子进程终止并处理,创建epoll_fd监听创建的其他fd,用来调用对应的处理函数;添加了几个触发器,会将添加的触发添加到列表,在while循环中,会根据列表添加的触发器去找到actions_容器,遍历执行on定义的一系列command,当然,service也是有class_start关键字定义的函数启动的,class_start命令启动classname名字为后面参数的service,例如zygote服务,classname是main. class_start对于函数会调用到Start()函数,创建servicefork()子进程。 更多的可参考文档。。
1