zoukankan      html  css  js  c++  java
  • android init.rc action server tiggers 触发机制和原理

     Actions triggers

    除了boot 还有init,early-init等(新版本还会有新的添加),我们可以简单的在init.rc中直接使用。这些信号从system/core/init/init.c 中发出,且有一定的顺序。
    发射这些triggers,及执行tiggers所引发的命令执行函数为(都在system/core/init/init.c 中定义):

        action_for_each_trigger("init", action_add_queue_tail);
        drain_action_queue();

    另外trigger发送和执行在system/core/init/builtins.c 中得到封装:
      int do_trigger(int nargs, char **args)
        {
            action_for_each_trigger(args[1], action_add_queue_tail);
            drain_action_queue();
            return 0;
        }
    从init.rc的解析代码system/core/init/parser.c 来看这个trigger 命令应该在init.rc使用也是有效的。
    至此我们已经知道trigger的名字可以自己定制,

    触发方式分两种:
    1。在代码中触发
    2。在init.rc中命令触发trigger

     目前触发点有:
     1.init.c中代码触发

    server triggers

    server的触发信号的点和方式:<name>=<value>,device-added-<path>,device-removed-<path>,service-exited-<name> 因该很有用,暂没研究。

  • 相关阅读:
    angular 按下回车键触发事件
    vue 父组件与子组件的通信
    最近在开发一个文章聚合的工具
    Martinjingyu的开发环境
    个推push数据统计(爬虫)
    基于redis的订单号生成方案
    电商平台--Mysql主从搭建(2)
    Mysql主从搭建(1)
    mysql物理级别热备脚本
    外键查询及删除
  • 原文地址:https://www.cnblogs.com/leaven/p/1917054.html
Copyright © 2011-2022 走看看