更多开源内容请访问:51CTO开源基础软件社区https://ost.51cto.com设备开发介绍,平时问题分析主要靠日志记录。Openharmony的日志记录有很多种,我们用的最多的就是Hilog。本文基于openharmony3.1的代码,介绍另外一个记录:事件管理(HiSysEvent)。做一些源代码分析。点应用于代码。打点测试工程的编译配置。点测操作步骤。本用例开发板(3516开发板:HiSpark_AI_Hi3516D_One_Light_VER.B开发板测试)。dot源码主要源码目录dot调用库目录:base\hiviewdfx\hisysevent\interfaces\native\innerkits\hisysevent。打点信息采集存储进程:base\hiviewdfx\hiview。打点测试流程(自己添加):myapp\hisysevent_test源码见附件。测试流程和信息收集流程打点调用流程通过套接字发送打点信息。hiview进程通过socket接收打点信息,并进行处理和存储。事件处理程序插件配置的初始读取。1.配置事件是否通过线程处理:system\etc\hiview\plugin_config,分析函数Plugin::BindWorkLoop2.事件格式配置:system\etc\hiview\hisysevent.def,解析函数SysEventService::OnLoad。hisysevent.def中未定义的事件将不会存储在/data/log/LogService/sys_event_db/hisysevent.db中。接收数据的处理。1、如果在插件初始化配置中配置了线程,那么会调用EventLoop::AddEvent对接收到的消息进行处理和存储。2.如果插件初始化配置中没有配置线程处理,接收到的消息会调用Pipeline::ProcessEvent进行处理和存储。测试项目配置代码目录结构源码见附件。子系统配置build\subsystem_config.json。"myapp":{"path":"myapp","name":"myapp"}产品配置productdefine\common\products\Hi3516DV300.json。"myapp:hisysevent_test":{}事件域配置(myapp源文件不包含,学习者需要自行配置)base\hiviewdfx\hisysevent\interfaces\native\innerkits\hisysevent\include\hisysevent.h。staticconstexprcharHISYSEVENTTEST[]="HISYSEVENTTEST";bundle.json配置格式定义和dot调用对比编译全编译:./build.sh--product-nameHi3516DV300--ccache在myapp\hisysevent_test\打点前需要全编译hisysevent_test.yaml格式编译成hisysevent.def。编译测试工程:./build.sh--product-nameHi3516DV300--ccache--build-targethisyseventTest。测试并修改开发板的读写权限。进入终端:hdc_std.exeshell修改权限:mount-oremount,rw/添加测试目录:mkdir/data/test/将编译后的文件发送到开发板对应目录:测试应用:hdc_std.exe文件发送Z:\L2。31\out\hi3516dv300\myapp\hisysevent_test\hisyseventTest/data/test/dot信息格式文件:hdc_std.exe文件发送Z:\L2.31\out\hi3516dv300\packages\phone\system\etc\hiview\hisysevent.def/system/etc/hiview/注意:如果hisysevent_test.yaml没有编译成hisysevent.def,需要去掉-ccache参数,重新全量编译。修改打点测试应用的执行权限。切换到对应目录:cd/data/test/修改为可执行:chmod0755hisyseventTest修改系统时间,方便查看打点信息。修改系统时间:date2022-06-21同步硬件时钟:hwclock-w查询时间:date终端1:实时查看标签为HisysEvTest的打点信息。hisysevent-r-tHisysEvTestTerminal2:执行测试管理应用。/data/test/hisyseventTest终端3:检查存储的打点消息。hisysevent-l事件数据格式配置。您可以点击下方链接下载文章相关附件:myapp.rar。点代码分析.ppt。了解更多开源信息,请访问:51CTO开源基础软件社区https://ost.51cto.com。
