【Android7.1.2源码解析系列】android中init.rc文件的语法

译自:system/core/init/readme.txt


译文




Android初始化语言
===================


Android 初始化语言由动作(Action)、命令(Command)、服务(Service)、条件(Option)四类状态组成。


这四类状态都是行定向的,由空格分开的记号(token)组成。c风格的斜杠可能被用来向记号(token)里插入空格。双引号可以被用来避免空格把文字分割为不同的片段。最后一行的斜杠可能被用来进行行连接。


以#开头的行是注释(允许在之前插入空格)。


动作(Actions)和服务(Services)明确地指出了一个新的片段。所有的命令(Command)或者条件(Option)将属于最新定义的模块。先于第一个片段的命令(Command)和条件(Option)将被忽略。


动作(Actions)和服务(Services)有唯一的名称。如果有第二个动作(Aciton)或者服务(Service)被定义为和一个已存在的动作(Action)或服务(Service)同样的名称,它将会作为一个错误来被忽略。(???我们是不是应该覆盖掉而不是忽略的)


动作(Actions)
=======
动作(Actions)是命令(Commands)的已命名的序列。动作(Action)有一个指明何时动作(Action)应该发生的触发器。当一个满足动作(Action)的触发器的事件发生时,该动作(Action)就被加入到一个需要执行的动作(action)列表的尾部(除非它已经存在于该队列)。


每一个队列当中的动作(action)从序列当中出列,并且每一个动作(action)中的命令(command)在序列当中被执行。init程序掌握了在命令(command)执行之间的其他动作(硬件设备的创建与销毁、属性设置、进程重启)。


动作(Action)的格式如下:


on <触发器(trigger)>
   
   
   






服务(Services)
========
服务(Service)是程序初始化进行或者退出时重新启动的方案。
服务(Service)的格式如下:


service []*
   

你可能感兴趣的:(一块砖的android源码之路,一块砖的android源码之旅)