首页 > 移动平台 > 详细

android Init 相关分析

时间:2015-09-15 10:54:42      阅读:200      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!