
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
@toc
设备开发,通常的问题分析主要靠日志记录,Openharmony的日志记录分很多种,我们用的最多的是Hilog。
此文章以openharmony 3.1代码基础,介绍另外一种记录: 事件打点(HiSysEvent)。
打点调用库目录:base\hiviewdfx\hisysevent\interfaces\native\innerkits\hisysevent
打点信息搜集存储进程:base\hiviewdfx\hiview
打点测试进程(自己添加):myapp\hisysevent_test
源码见附件
system\etc\hiview\plugin_config
,解析函数Plugin::BindWorkLoop
system\etc\hiview\hisysevent.def
,解析函数SysEventService::OnLoad
。hisysevent.def中没有定义的事件,不会存储在/data/log/LogService/sys_event_db/hisysevent.db
中。配置了
线程来处理,则接收消息会调用EventLoop::AddEvent
进行处理存储。未配置
线程处理,则接收消息会调用Pipeline::ProcessEvent
进行处理存储。
源码见附件
build\subsystem_config.json
"myapp": {
"path":"myapp",
"name": "myapp"
}
productdefine\common\products\Hi3516DV300.json
"myapp:hisysevent_test":{}
base\hiviewdfx\hisysevent\interfaces\native\innerkits\hisysevent\include\hisysevent.h
static constexpr char HISYSEVENTTEST[] = "HISYSEVENTTEST";
./build.sh --product-name Hi3516DV300 --ccache
全量编译
,才能将myapp\hisysevent_test\hisysevent_test.yaml
的打点格式编译到hisysevent.def中去。./build.sh --product-name Hi3516DV300 --ccache --build-target hisyseventTest
进入终端:hdc_std.exe shell
修改权限:mount -o remount,rw /
添加test目录:mkdir /data/test/
测试应用: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/
注意:如果hisysevent_test.yaml没有编入hisysevent.def,则需要去掉
–ccache参数重新进行全量编译
切到对应的目录:cd /data/test/
修改成可执行:chmod 0755 hisyseventTest
修改系统时间搓: date 2022-06-21
同步硬件时钟: hwclock -w
查询时间: date
HisysEvTest
的打点消息hisysevent -r -t HisysEvTest
/data/test/hisyseventTest
hisysevent -l