声明:
init.c 位置:system/core/init/init.c
init.rc 位置:system/core/rootdir/init.rc
一、概述:
init是一个进程,确切的说,它是Linux用户空间的第一个进程。由于Android是基于Linux内核的,所以init也是Android系统中用户空间的第一个进程,它的进程号是1。作为天字第一号进程,init被赋为了很多及其重要的工作职责。
二、init分析。
1、解析配置文件。
在init.c中会解析两个配置文件,其中一个是系统配置文件init.rc,另外一个是与硬件平台相关的配置文件。以HTC G7手机为例,这个配置文件名为init.bravo.rc,其中bravo是硬件平台的名称。对这两个配置文件进行解析,调用的是同一个parse_config_file函数。
2、解析service。
3、init控制service。
4、属性服务。
在windos中,有一种叫做注册表的东西,组册表可以储存一些类似于key/value的键值对。一般而言,系统或某些应用程序会把自己的一些属性储存在注册表中,即使系统重启或者应用程序重启,它还能根据之前在注册表中设置的属性,进行相应的初始化工作。Android平台也提供了类似的机制,称之为“属性服务”。应用程序可通过这个属性机制。用户可以用adb shell 登录到真机上或者模拟器上,输入getprop命令查看当前系统中有哪些属性。