首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Android init.rc浅析

Android init.rc浅析

本文主要来自$ANDROID_SOURCE/system/init/readme.txt的翻译.由于最近要准备视频的教程,因此花了很长时间准备了一点相关的资料,中文太少啊,所以根据自己的水平加上几位朋友的帮助,完成了以下文档的翻译相关工作,在此表示感谢!
1 简述
    Android init.rc文件由系统第一个启动的init程序解析,此文件由语句组成,主要包含了四种类型的语句:Action,Commands,Services,Options.init.rc文件中一条语句通常是占据一行.单词之间是通过空格符来相隔的.如果需要在单词内使用空格,那么得使用转义字符"\",如果在一行的末尾有一个反斜杠,那么是换行折叠符号,应该和下一行合并成一起来处理,这样做主要是为了避免一行的字符太长,与C语言中的含义是一致的。注释是以#号开头。 Actionservices显式声明了一个语句块,而commandsoptions属于最近声明的语句块。在第一个语句块之前 的commandsoptions会被忽略.

在具体讲解这之前,有些关键词得先了解.
2 关键字
token:计算机语言中的一个单词,就跟英文中的单词差不多一人概念.
section:语句块,相当于C语言中大括号内的一个块。一个SectionServiceOn开头的语句块.Service开头的Section叫做服务,而以On开头的叫做动作(Action).
services:服务.

action: 动作
commands:命令.
options:选项.
trigger:触发器,或者叫做触发条件.

class: 类属,即可以为多个service指定一个相同的类属,方便操作同时启动或停止.


3 语句解析
3.1 动作(Action)
动作表示了一组命令(commands)组成.动作包含一个触发器,决定了何时执行这个动作。当触发器的条件满足时,这个动作会被加入到已被执行的队列尾。如果此动作在队列中已经存在,那么它将不会执行.
一个动作所包含的命令将被依次执行。动作的语法如下所示:
on <trigger>
   <command>
   <command>
   <command>



3.2 服务(services)
服务是指那些需要在系统初始化时就启动或退出时自动重启的程序.
它的语法结构如下所示:
service <name> <pathname> [ <argument> ]*
   <option>
   <option>
   ...


3.3 选项(options)

选项是用来修改服务的。它们影响如何及何时运行这个服务.
选项
描述
c


当服务重启时执行一条指令,

3.4 触发器(trigger)


[table][/table]
返回列表