OpenHarmony HiSysEvent打點調用實踐(L2)
簡介
設備開發,通常的問題分析主要靠日志記錄,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 源碼見附件。
測試進程和信息搜集進程流程
- 打點調用進程通過套接字,發送打點信息。
- 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進行處理存儲。
測試工程配置
代碼目錄結構
源碼見附件。
子系統配置
build\subsystem_config.json。
"myapp": {
"path":"myapp",
"name": "myapp"
}
產品配置
productdefine\common\products\Hi3516DV300.json。
"myapp:hisysevent_test":{}
事件domain配置(myapp源文件不包含,需要學習者自行配置)
base\hiviewdfx\hisysevent\interfaces\native\innerkits\hisysevent\include\hisysevent.h。
static constexpr char HISYSEVENTTEST[] = "HISYSEVENTTEST";
bundle.json配置
格式定義和打點調用對比
編譯
- 全量編譯:./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
- 終端1:實時查看tag為HisysEvTest的打點消息。
hisysevent -r -t HisysEvTest
- 終端2:執行測試打點的應用。
/data/test/hisyseventTest
- 終端3:查看存儲的打點消息。
hisysevent -l
??事件數據格式配置??。
文章相關附件可以點擊下面的原文鏈接前往下載:
- ??myapp.rar??。
- ??打點代碼分析.ppt???。