android init进程说明

android是基于linux内核的,所以android的init进程是android应用程序的第1个进程。下面简要说明一下该进程的处理流程,后续还要进一步细化。linux

1.注册处理子进程的信号处理函数android

2.在根目录下建立系统目录以及mount必要的文件系统socket

3.在/dev目录下建立null和kmsg设备节点函数

4.解析/init.rc文件ui

5.解析/proc/cmdline文件获取必要的参数,如:qmeu, console, bootloader等队列

6.经过分析/proc/cpuinfo获取硬件类型,从而进一步解析/init.硬件类型.rc文件进程

7.执行early-init部分的服务cmd

8.根据netlink(/sys/block,/sys/class,/sys/devices)在/dev目录下生成设备节点虚拟机

9.读取/default.prop文件描述的属性it

10.对于启动内核的cmdline中有console的状况则在/dev/目录下建立该设备节点

11.在屏幕上显示“ANDROID”字样(android虚拟机上能看到)

12.进一步解析/proc/cmdline文件且设置对应的属性和值

13.根据第5步骤分析的参数设置指定的属性和值

14.执行init部分的服务

15.读取系统属性文件且建立socket监听

16.建立本地socket监听退出的子进程

17.执行early-boot和boot部分的服务

18.执行全部属性对应的服务

19.执行全部的action队列

20.从新启动须要启动的进程

21.监听子进程退出文件描述符、属性socket文件描述符、设备变化文件描述符,当对应的文件描述符有变化则调用对应的处理函数处理

22.从新回到第19步

相关文章
相关标签/搜索