Android系统学习总结之深入理解init

深入理解init

  1. init是一个进程,确切地说,它是Linux系统中用户空间的第一个进程。由于Android是基于Linux内核的,所以init也是Android系统中用户空间的第一个进程,它的进程号是1。
  2. init的工作流程:
    a) 解析两个配置文件;
    b) 执行各个阶段的动作,创建zygote的工作就是在其中某个阶段完成的。
    c) 调用property_init初始化属性相关的资源,并且通过property_start_service启动属性服务;
    d) init进入一个无限循环,并且等待一些事情的发生。
  3. keywords.h的作用:
    a) 第一次包含keywords.h时,它声明了一些诸如do_class_start的函数,另外还定义了一个枚举。
    b) 第二次包含keywords.h后,得到一个keyword_info结构体数组,这个keyword_info结构体数组以前面定义的枚举值作为索引,存储对应的关键字信息,这些信息包括关键字名称、处理函数、处理函数的参数个数,以及属性。
  4. **属性服务:**先创建存储空间,在properyty_init函数中,先调用init_property_area函数,创建一块用于存储属性的存储区域,然后加载default.prop文件中的内容。
  5. init进程绘启动一个属性服务器,而客户端只能通过与属性服务器交互来设置属性。
  6. 接收请求的地方在init进程中,当属性服务器收到客户端请求时,init会调用handle_property_set_fd进行处理。
发布了39 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43443900/article/details/103238566