现在的位置: 首页 > 综合 > 正文

Android init.rc

2018年02月10日 ⁄ 综合 ⁄ 共 595字 ⁄ 字号 评论关闭

1. init.rc 中Service的三种启动方式?

    a. 自动启动;即属性值不含有disable的service,会在init进程启动过程中启动。

    b. 通过属性触发来启动;通过设置属性,当属性满足的时候,启动service;

    c. 通过ctl.start来启动。

  

   其中a是在on boot中通过command 

    class_start core
    class_start main

来启动。

   b 的例子如下:

on property:ro.kernel.qemu=1
    start adbd

  c的例子如下:

service console /system/bin/sh
    class core
    console
    disabled
    user shell
    group log

设置console为disable,然后通过property_set("ctl.start", name)来启动。

ServiceManager.cpp封装了start,stop,还有isRunning函数,分别用来启动一个service,停止一个service,获取service的状态。

2. init.rc文件的解析方式

init.rc文件的解析是以行为单位,以空格或者tab键位分割符号。

每一行的开头,都是一个关键字,对应于action,command,service或者option中的一个。余下的就是参数。

抱歉!评论已关闭.