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) {...}
  • 相关阅读:
    【Leetcode】23. Merge k Sorted Lists
    【Leetcode】109. Convert Sorted List to Binary Search Tree
    【Leetcode】142.Linked List Cycle II
    【Leetcode】143. Reorder List
    【Leetcode】147. Insertion Sort List
    【Leetcode】86. Partition List
    jenkins 配置安全邮件
    python 发送安全邮件
    phpstorm 同步远程服务器代码
    phpUnit 断言
  • 原文地址:https://www.cnblogs.com/lingjiajun/p/12857863.html
Copyright © 2011-2022 走看看