android init进程说明
16lz
2021-01-23
android是基于linux内核的,因此android的init进程是android应用程序的第1个进程。下面简要说明一下该进程的处理流程,后续还要进一步细化。
1.注册处理子进程的信号处理函数
2.在根目录下创建系统目录以及mount必要的文件系统
3.在/dev目录下创建null和kmsg设备节点
4.解析/init.rc文件
5.解析/proc/cmdline文件获取必要的参数,如:qmeu, console, bootloader等
6.通过分析/proc/cpuinfo获取硬件类型,从而进一步解析/init.硬件类型.rc文件
7.执行early-init部分的服务
8.根据netlink(/sys/block,/sys/class,/sys/devices)在/dev目录下生成设备节点
9.读取/default.prop文件描述的属性
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步
更多相关文章
- Android(java)学习笔记135:Android中assets文件夹资源的访问
- android Manifest.xml全局配置文件中根标签中package属性及标签
- android:layout_alignleft layout_toleftof区别,详解RelativeLayo
- Android之应用进程托管
- Android基础入门教程——8.4.4 Android动画合集之属性动画-又见
- Android系统build/core下.mk文件分析
- Android属性动画使用浅析
- 关于Android进程知识,你需要知道这些(一)