Android init进程

  1. init进程是我们user space中所有进程的父进程,位置在root的/init进程
  2. init进程主要做的事情都在init.c的main函数中
  3. 我们kernel相关的log信息都在/proc/kmsg中
    ——PS:通过这个特性有时候我们没法连接adb logcat的时候可以直接从/proc/kmsg来打印出来内核错误信息
  4. init最重要的几个事:创建挂载目录(比如说/proc)、解析init.rc启动脚本、启动服务等

init.rc

这个是启动的脚本
主要有以下几个关键字:

  • import
    导入其他的脚本
  • on
    这个表示在…时候执行对应的指令
on early-init
on early-boot
on boot
on init

on early-init; 在初始化早期阶段触发;
on init; 在初始化阶段触发;
on late-init; 在初始化晚期阶段触发;
on boot/charger: 当系统启动/充电时触发,还包含其他情况,此处不一一列举;
启动顺序:on early-init -> init -> late-init -> boot
Android init进程_第1张图片

Android init进程_第2张图片
可以看到有大量的环境变量property在.rc中被设置

  • service
    主要与后台服务相关
    Android init进程_第3张图片
    oneshot:表示服务仅启动一次
    disable:表示服务关闭

你可能感兴趣的:(总结,android)