Android 的初始化语言脚本init.rc 解析 Android init.rc (Android init language) Android 初始化语言由四大类声明组成:行为类(Actions),命令类(Commands),服务类(Services),选项类(Options). * 初始化语言以行为单位,由以空格间隔的语言符号组成。C 风格的反斜杠转义符可以用来插入空白到语言符号。双引号也可以用来防止文本被空格分成多个语言符号。当反斜杠在行末时,作为折行符。 * 以 #开始(前面允许有空格)的行为注释行。 * Actions 和 Services 隐含声明一个新的段落。所有该段落下Commands 或 Options 的声明属于该段落。第一段落前的Commands 或 Options 被忽略。 * Actions 和 Services 拥有独一无二的命名。在它们之后声明相同命名的类将被当作错误并忽略。 Actions ------- Actions 是一系列命令的命名。Actions 拥有一个触发器(trigger)用来决定action 何时执行。当一个action 在符合触发条件被执行时,如果它还没被加入到待执行队列中的话,则加入到队列最后。 队列中的action 依次执行,action 中的命令也依次执行。Init 在执行命令的中间处理其它活动(设备创建/销毁,property 设置,进程重启)。 Actions 表现形式为: on
Services -------- Services 是由init 启动,在它们退出时重启(可选)。 Service 表现形式为: service [ ]*