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步


更多相关文章

  1. Android(java)学习笔记135:Android中assets文件夹资源的访问
  2. android Manifest.xml全局配置文件中根标签中package属性及标签
  3. android:layout_alignleft layout_toleftof区别,详解RelativeLayo
  4. Android之应用进程托管
  5. Android基础入门教程——8.4.4 Android动画合集之属性动画-又见
  6. Android系统build/core下.mk文件分析
  7. Android属性动画使用浅析
  8. 关于Android进程知识,你需要知道这些(一)

随机推荐

  1. Android(安卓)与J2ME 虚拟机相关资料
  2. 【Android】广播大全 Intent Action 事件
  3. jdk环境变量的配置和android环境变量及ad
  4. android opengles 实现翻牌效果
  5. TabActivity子类中处理返回键事件
  6. Android(安卓)ADB使用之详细篇
  7. 修改WebView背景颜色为透明
  8. Android(安卓)permission 权限类及中文说
  9. android基础学习之有没有标签基础设置
  10. Android(安卓)STL PORT