• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Sugars_DJ
博客园    首页    新随笔    联系   管理     

利用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) {...}
还在成长。。。
posted @ 2020-05-09 15:36  Sugars_DJ  阅读(344)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3