init.rc ============= init.rc语法 ---------------- init.rc是一个配置文件,由Android初始化语言(Android Init Language)编写,编写的脚本init.rc是在init进程启动后执行的启动脚本. init.rc主要包含5种类型语句. - Action - Command - Service - Option - Import 1. 所有这些都是以行为单位,各种记号由空格来隔开. 2. C语言风格的反斜杠可用于记号间插入空格. 3. 双引号也可用于防止字符串被空格分割成多个记号 4. 行末的反斜杠用于折行,注释行以井号开头(允许以空格开头) .. note:: 这指示一个语法文件,就像一个xml文件一样,没有执行顺序的,解析器通过读这个文件获取想要的数据,包括service, action. Action和Service声明一个新的分组Section.所有的命令或选项都属于最近声明的分组.位于第一个分组之前的命令或选项将会被 忽略.Action和Service都有唯一的名字.如有重名的情况,第二个申明的将会被作为错误忽略 ``init.rc`` 文件大致分为两大部分 - 一部分是以 ``on`` 关键字开头的"动作列表"(action list) **Action类型语句格式** :: on [&& ] ##设置触发器 ##动作触发之后执行的命令 ... .. note:: trigger触发器本质上是一个字符串,能够匹配某种包含该字符串的事件.trigger又被细分为事件触发器(event trigger)和属性触发器(property trigger). 一个Action可以有多个属性触发器,但是最多有一个事件触发器 几种常见的事件触发器 ============================ ========================================================================= 类型  说明 ---------------------------- ------------------------------------------------------------------------- boot init.rc被装载后触发 device-added- 指定设备被添加时触发 device-removed- 指定设备被移除时触发 service-exited- 在特定服务(service)退出时触发 early-init 初始化之前触发 late-init 初始化之后触发 init 初始化时触发(在/init.conf启动配置文件被装载之后) ============================ ========================================================================= - 另一部分是以"Service"关键字开头的"服务列表"(service list) **Service类型语句格式** :: Service [ ] ##<执行程序路径><传递参数>