码迷,mamicode.com
首页 > 移动开发 > 详细

android Init 相关分析

时间:2015-09-15 10:57:15      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

Init.c

1. 初始化属性(包括建立/dev、/proc等目录、初始化属性、执行init.rc等初始化文件中的action等)。

2. 处理配置文件的命令(主要是init.rc文件),包括处理各种Action。

3. 性能分析(使用bootchart工具)。

4. 无限循环执行command(启动其他的进程)。

 

ramdisk.img中存放init.c文件

property_init();

  1.import /init.${ro.hardware}.rc导入其他配置文件。

  2.加载default.prop文件

  3.把属性内存区域创建在共享内存上,(init_workspace()),映射到本地进程空间。

  4.当属性服务器收到客户端请求uevent=POLLIN时

       执行handle_property_set_fd()

       (setprop ctl.start bootanim命令就执行开机动画。

  5.客户端发送请求(properties.c)-》property_set()中

get_hardware_name(hardware, &revision);

  打开/proc/cpuinfo文件中获取Hardware字段的值(小写)

  不难看出获取到的hardware字段值是用在import /init.${ro.hardware}.rc中。

process_kernel_cmdline();

  import CMD命令,通过内核的属性设置应用层配置文件的属性。

 

Init.rc

1.文件内容:

    On init: section init

    On boot: section boot

           …

   Class_start defult 这是一个COMMAND,对应函数do_class_start

    service  也是一个section

2.解析section的函数:

parse_new_section(state,kw,nargs,args);

   K_service:

  parse_service(state, nargs,args);

    service->classname=”default”;

android Init 相关分析

标签:

原文地址:http://www.cnblogs.com/hongguang-kim/p/4809257.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!