android Init 相关分析
2015-09-15 09:23
501 查看
Init.c主要工作
1. 初始化属性(包括建立/dev、/proc等目录、初始化属性、log、执行init.rc等初始化文件中的action等)。
2. 解析配置文件的命令(主要是init.rc文件),包括处理各种Action。
3. 初始化属性服务器
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);
case:K_service: //service section
parse_service(state, nargs,args);
service->classname=”default”;
…
1. 初始化属性(包括建立/dev、/proc等目录、初始化属性、log、执行init.rc等初始化文件中的action等)。
2. 解析配置文件的命令(主要是init.rc文件),包括处理各种Action。
3. 初始化属性服务器
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);
case:K_service: //service section
parse_service(state, nargs,args);
service->classname=”default”;
…
相关文章推荐
- Android中JNI的使用方法
- Android中的Item添加各种小图标
- Android listView同时展示多种不同数据的item
- Android Studio 简单介绍和使用问题小结
- 简单的android ant 批量打包
- Android 代码性能优化建议
- android定位方式
- 关于ExpandableListView用法的一个简单小例子
- android之ViewFlipper实现左右滑动动画效果
- Android Selector 与 Shape 基本用法
- Picasso源码解析
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- android dp
- Android开展Exception:ActivityNotFoundException: Unable to find explicit activity class
- Android Handler机制
- Android中的Handler的post方法详解
- ADT活動
- 优化Android Studio/Gradle构建
- Android Fragment 真正的完全解析(上)
- Android Api Demos登顶之路(六十九)Graphics-->Bitmap Mesh