zoukankan      html  css  js  c++  java
  • 利用init进程监控底层节点的方法架构

    native层利用底层节点变化,再针对变化进行相应的函数调用,实现某些功能。

    架构如下:

    底层提供节点更新,以及healthd读取节点的实现,都比较简单。而其余部分比较关键。 

    特别注意init监控prop,并触发接口,调用具体函数的这个路径。

    具体关键实现点如下:

    Running Service:修改prop的方法

    property_set("batt.consist", "1");

    init进程:do work的函数实现

    void write_batt_data(void) {...}

    init进程:监控property的实现(建立监控,触发do work,并传参)

    on property:batt.consist=*
        write_consist_data ${batt.consist}      #这块还不理解配置的格式和具体意义,write_consist_data为触发的接口

    builtins.cpp:

    BuiltinFunctionMap::Map& BuiltinFunctionMap::map() const {
        constexpr std::size_t kMax = std::numeric_limits<std::size_t>::max();
        static const Map builtin_functions = {
    。。。
            {"write_consist_data",         {1,     1,    do_write_consist_data}},  //触发的接口链接到具体函数:do_write_consist_data
    。。。
    }
    static int do_write_consist_data(const std::vector<std::string>& args) {
        write_batt_consist_data();
        return 0;
    }

    对应文件中具体函数实现:

    void write_batt_consist_data(void) {...}
  • 相关阅读:
    三级菜单打怪升级,young -> plus -> pro
    Python注释是什么东东
    腾讯云中的mysql镜像数据定时同步到本机数据库
    linux重复命令的简洁化
    快速查询mysql中每个表的数据量
    MGR与MHA
    mysql基础练习
    mongo日常操作备忘
    MongoDB:删除操作
    MongoDB插入数据的3种方法
  • 原文地址:https://www.cnblogs.com/lingjiajun/p/12857863.html
Copyright © 2011-2022 走看看