社区编辑申请
注册/登录
OpenHarmony HiSysEvent打点调用实践(L2)
系统 OpenHarmony
此文章以openharmony 3.1代码基础,介绍另外一种记录: 事件打点(HiSysEvent)。

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

简介

设备开发,通常的问题分析主要靠日志记录,Openharmony的日志记录分很多种,我们用的最多的是Hilog。

此文章以openharmony 3.1代码基础,介绍另外一种记录: 事件打点(HiSysEvent)。

  • 打点源码分析。
  • 打点在代码中应用。
  • 打点测试工程的编译配置。
  • 打点测试操作步骤。
  • 本用例开发板(3516开发板:HiSpark_AI_Hi3516D_One_Light_VER.B开发板上测试)。

打点源码

主要的源码目录

  • 打点调用库目录:base\hiviewdfx\hisysevent\interfaces\native\innerkits\hisysevent。
  • 打点信息搜集存储进程:base\hiviewdfx\hiview。
  • 打点测试进程(自己添加):myapp\hisysevent_test 源码见附件。

测试进程和信息搜集进程流程

#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)-开源基础软件社区

  • 打点调用进程通过套接字,发送打点信息。
  • hiview进程通过套接字接收打点信息,进行处理存储。
  • 事件处理插件配置的初始化读取。
    1.事件是否通过线程来处理的配置:​system\etc\hiview\plugin_config​,解析函数Plugin::BindWorkLoop​2.事件格式的配置:system\etc\hiview\hisysevent.def,解析函数SysEventService::OnLoad。hisysevent.def中没有定义的事件,不会存储在/data/log/LogService/sys_event_db/hisysevent.db中。
  • 接收数据的处理。
    1.插件初始化的配置中​配置了​线程来处理,则接收消息会调用EventLoop::AddEvent​进行处理存储。2.插件初始化的配置中​未配置​线程处理,则接收消息会调用Pipeline::ProcessEvent进行处理存储。

测试工程配置

代码目录结构

#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)-开源基础软件社区

源码见附件。

子系统配置

build\subsystem_config.json。

"myapp": {
"path":"myapp",
"name": "myapp"
}

#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)-开源基础软件社区

产品配置

productdefine\common\products\Hi3516DV300.json。

"myapp:hisysevent_test":{}

#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)-开源基础软件社区

事件domain配置(myapp源文件不包含,需要学习者自行配置)

base\hiviewdfx\hisysevent\interfaces\native\innerkits\hisysevent\include\hisysevent.h。

static constexpr char HISYSEVENTTEST[] = "HISYSEVENTTEST";

#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)-开源基础软件社区

bundle.json配置

#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)-开源基础软件社区

格式定义和打点调用对比

#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)-开源基础软件社区

编译

  1. 全量编译:./build.sh --product-name Hi3516DV300 --ccache​需要全量编译,才能将myapp\hisysevent_test\hisysevent_test.yaml的打点格式编译到hisysevent.def中去。
  2. 测试工程编译:./build.sh --product-name Hi3516DV300 --ccache --build-target hisyseventTest。

测试

  • 修改开发板的读写权限。
进入终端:hdc_std.exe shell
修改权限:mount -o remount,rw /
添加test目录:mkdir /data/test/

#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)-开源基础软件社区

  • 将编译文件发送到开发板对应目录:
测试应用:hdc_std.exe file send Z:\L2.31\out\hi3516dv300\myapp\hisysevent_test\hisyseventTest /data/test/
打点信息格式文件:hdc_std.exe file send Z:\L2.31\out\hi3516dv300\packages\phone\system\etc\hiview\hisysevent.def /system/etc/hiview/

#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)-开源基础软件社区

注意:如果hisysevent_test.yaml没有编入hisysevent.def,则需要去掉–ccache参数重新进行全量编译。

  • 修改打点测试应用的执行权限。
切到对应的目录:cd /data/test/
修改成可执行:chmod 0755 hisyseventTest
  • 修改系统时间,便于查看打点消息。
修改系统时间搓: date 2022-06-21
同步硬件时钟: hwclock -w
查询时间: date
  • 终端1:实时查看tag为HisysEvTest的打点消息。
hisysevent -r -t HisysEvTest
  • 终端2:执行测试打点的应用。
/data/test/hisyseventTest
  • 终端3:查看存储的打点消息。
hisysevent -l

#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)-开源基础软件社区

#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)-开源基础软件社区

​事件数据格式配置​​。

文章相关附件可以点击下面的原文链接前往下载:

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​​。

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2022-04-15 14:31:02

鸿蒙操作系统

2022-06-06 10:55:51

本地服务鸿蒙

2022-05-24 15:06:57

AbilityeTS FA鸿蒙

2022-04-06 11:27:05

harmonyeTS 开发NAPI开发

2022-05-11 15:08:52

驱动开发系统移植

2022-04-18 10:37:01

鸿蒙操作系统开发工具

2022-06-07 10:33:29

Camera组件鸿蒙

2022-05-24 15:55:37

避障小车华为

2022-02-17 16:47:40

OpenharmonIPC通信鸿蒙

2022-06-15 16:16:21

分布式数据库鸿蒙

2022-06-13 14:18:39

电源管理子系统耗电量服务

2022-06-09 14:40:14

系统移植鸿蒙

2022-04-02 20:45:04

Hi3516开发板操作系统鸿蒙

2022-03-29 10:04:44

APIHarmony文件管理

2022-05-11 14:54:02

输入法框架鸿蒙

2022-04-20 20:28:40

HDF 驱动框架鸿蒙操作系统

2022-05-23 10:45:34

DAYU200鸿蒙

2022-05-30 15:21:27

Hi3861TCP通信

2022-02-09 19:45:41

2022-03-28 15:40:34

harmony鸿蒙操作系统

同话题下的热门内容

HarmonyOS - HDC命令与ADB命令使用对比OHOS构建自定义服务实战啃论文俱乐部—数据密集型应用内存压缩HarmonyOS - 自定义组件之计时器HarmonyOS - 方舟开发框架ArkUI 流光按钮效果基于OpenHarmony3.1的购物车应用的实现OpenHarmony3.1-Ace-Formcomponent源码解析OpenHarmony HiSysEvent打点调用实践(L2)

编辑推荐

HarmonyOS 2.0鸿蒙第二期开发者Beta公测申请指南HarmonyOS LYEVK-3861开发板播放《蜜雪冰城》鸿蒙HarmonyOS分布式软总线:构建低时延、高带宽的多设备虚拟网络华为HarmonyOS的强势突围: 直面物联网迷宫的蓄力进击鸿蒙HarmonyOS2.0发布会现场回忆录
我收藏的内容
点赞
收藏

51CTO技术栈公众号