android的init.rc文件的语法
2010-09-14 23:57:00 来源:WEB开发网Android初始化语言包含了四种类型的声明:Actions(行动)、Commands(命令)、Services(服务)和Options(选项)。
所有这些都是以行为单位的,各种记号由空格来隔开。C语言风格的反斜杠号可用于在记号间插入空格。双引号也可用于防止字符串被空格分割成多个记号。行末的反斜杠用于折行。
注释行以井号(#)开头(允许以空格开头)。
Actions和Services声明一个新的分组。所有的命令或选项都属于最近申明的分组。位于第一个分组之前的命令或选项将会被忽略。
Actions和Services有唯一的名字。如果有重名的情况,第二个申明的将会被作为错误忽略。(???我们是否应该以覆盖来代替忽略)
Actions(行动)
----------
Actions其实就是一序列的Commands(命令)。Actions都有一个trigger(触发器),它被用于决定action的执行时间。当一个符合action触发条件的事件发生时,action会被加入到执行队列的末尾,除非它已经在队列里了。
队列中的每一个action都被依次提取出,而这个action中的每个command(命令)都将被依次执行。Init在这些命令的执行期间还控制着其他的活动(设备节点的创建和注销、属性的设置、进程的重启)。
Actions的形式如下:
on < trigger>
< command>
< command>
< command>
Services(服务)
----------
Services(服务)是一个程序,他在初始化时启动,并在退出时重启(可选)。Services(服务)的形式如下:
service < name> < pathname> [ < argument> ]*
< option>
< option>
...
Options(选项)
----------
Options(选项)是一个Services(服务)的修正者。他们影响Services(服务)在何时,并以何种方式运行。
critical(关键)
说明这是一个对于设备关键的服务。如果他四分钟内退出大于四次,系统将会重启并进入recovery(恢复)模式。
disabled(失效)
说明这个服务不会同与他同trigger(触发器)下的服务自动启动。他必须被明确的按名启动。
setenv < name> < value> (设置环境变量)
在进程启动时将环境变量< name>设置为< value>。
更多精彩
赞助商链接