简介
HiAppEvent为OpenHarmony应用提供事件打点接口,用于帮助应用记录在运行过程中发生的故障信息、统计信息、安全信息、用户行为信息,以支撑开发者分析应用的运行情况。
目录
/base/hiviewdfx/hiappevent # hiappevent部件代码 ├── frameworks # 框架代码 │ └── native # 打点接口的native实现代码 ├── interfaces # 对外接口存放目录 │ └── js # js接口 │ └── innerkits # js接口内部实现代码 │ └── napi # 基于napi实现的js接口代码 ├── test # 测试用例代码
编译构建
依赖 Clang 编译器(Clang 8.0.0 )及以上,依赖C++11版本及以上。
说明
接口说明
JS接口说明
表 1 JS 打点接口介绍
表 2 JS 事件类型枚举——EventType
类型 | 描述 |
---|---|
FAULT | 故障类型事件。 |
STATISTIC | 统计类型事件。 |
SECURITY | 安全类型事件。 |
BEHAVIOR | 行为类型事件。 |
表 3 JS 打点配置接口介绍
模块 | 方法 | 描述 |
hiAppEvent | configure(config: ConfigOption): boolean | 接口功能:应用事件打点配置方法,可以对打点功能进行自定义配置。 输入参数:
|
表 4 JS 应用打点配置选项——ConfigOption
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
disable | boolean | 否 | 应用打点功能开关。配置值为true表示关闭打点功能,false表示不关闭打点功能。 |
maxStorage | string | 否 | 打点数据本地存储文件所在目录的配额大小,默认限额为“10M”。所在目录大小超出限额后会对目录进行清理操作,会按从旧到新的顺序逐个删除打点数据文件,直到目录大小不超出限额时停止。 |
表 5 JS 预定义事件名称常量接口——Event
常量名 | 类型 | 描述 |
---|---|---|
USER_LOGIN | string | 用户登录事件。 |
USER_LOGOUT | string | 用户登出事件。 |
DISTRIBUTED_SERVICE_START | string | 分布式服务启动事件。 |
表 6 JS 预定义参数名称常量接口——Param
常量名 | 类型 | 描述 |
---|---|---|
USER_ID | string | 用户自定义ID。 |
DISTRIBUTED_SERVICE_NAME | string | 分布式服务名称。 |
DISTRIBUTED_SERVICE_INSTANCE_ID | string | 分布式服务实例ID。 |
Native接口说明
表 1 打点接口介绍
方法 | 返回值 | 描述 |
OH_HiAppEvent_Write(const char* domain, const char* name, enum EventType type, const ParamList list) | int | 接口功能:应用事件打点方法。 输入参数:
|
表 2 事件参数列表构造接口介绍
方法 | 返回值 | 描述 |
---|---|---|
OH_HiAppEvent_CreateParamList() | ParamList | 创建一个ParamList节点。返回指向创建节点的指针。 |
OH_HiAppEvent_DestroyParamList(ParamList list) | void | 从头节点开始逐个删除参数列表的各个节点,并释放内存。 |
OH_HiAppEvent_AddBoolParam(ParamList list, const char* name, bool boolean) | ParamList | 创建一个bool类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddBoolArrayParam(ParamList list, const char* name, const bool* booleans, int arrSize) | ParamList | 创建一个bool数组类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddInt8Param(ParamList list, const char* name, int8_t num) | ParamList | 创建一个int8_t类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddInt8ArrayParam(ParamList list, const char* name, const int8_t* nums, int arrSize) | ParamList | 创建一个int8_t数组类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddInt16Param(ParamList list, const char* name, int16_t num) | ParamList | 创建一个int16_t类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddInt16ArrayParam(ParamList list, const char* name, const int16_t* nums, int arrSize) | ParamList | 创建一个int16_t数组类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddInt32Param(ParamList list, const char* name, int32_t num) | ParamList | 创建一个int32_t类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddInt32ArrayParam(ParamList list, const char* name, const int32_t* nums, int arrSize) | ParamList | 创建一个int32_t数组类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddInt64Param(ParamList list, const char* name, int64_t num) | ParamList | 创建一个int64_t类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddInt64ArrayParam(ParamList list, const char* name, const int64_t* nums, int arrSize) | ParamList | 创建一个int64_t数组类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddFloatParam(ParamList list, const char* name, float num) | ParamList | 创建一个float类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddFloatArrayParam(ParamList list, const char* name, const float* nums, int arrSize) | ParamList | 创建一个float数组类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddDoubleParam(ParamList list, const char* name, double num) | ParamList | 创建一个double类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddDoubleArrayParam(ParamList list, const char* name, const double* nums, int arrSize) | ParamList | 创建一个double数组类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddStringParam(ParamList list, const char* name, const char* str) | ParamList | 创建一个char*类型的参数节点,并将该节点添加到ParamList。 |
OH_HiAppEvent_AddStringArrayParam(ParamList list, const char* name, const char * const *strs, int arrSize) | ParamList | 创建一个char*数组类型的参数节点,并将该节点添加到ParamList。 |
表 3 打点配置接口介绍
方法 | 返回值 | 描述 |
OH_HiAppEvent_Configure(const char* name, const char* value) | bool | 接口功能:应用事件打点配置方法,可以对打点功能进行自定义配置。 输入参数:
|
表 4 配置项常量介绍
常量名 | 类型 | 描述 |
---|---|---|
DISABLE | const char[] | 打点功能开关的配置项名称,对应的默认配置值为“false”表示不关闭打点功能。 |
MAX_STORAGE | const char[] | 打点落盘文件存放目录配额大小的配置项名称,对应的默认配置值为“10M”。 |
表 5 预定义事件名称常量介绍
常量名 | 类型 | 描述 |
---|---|---|
EVENT_USER_LOGIN | const char[] | 用户登录事件名称。 |
EVENT_USER_LOGOUT | const char[] | 用户登出事件名称。 |
EVENT_DISTRIBUTED_SERVICE_START | const char[] | 分布式服务启动事件名称。 |
表 6 预定义参数名称常量介绍
类型 | 描述 | |
---|---|---|
PARAM_USER_ID | const char[] | 用户自定义ID。 |
PARAM_DISTRIBUTED_SERVICE_NAME | const char[] | 分布式服务名称。 |
PARAM_DISTRIBUTED_SERVICE_INSTANCE_ID | const char[] | 分布式服务实例ID。 |
使用说明
JS接口开发实例
-
源代码开发
引入模块:
import hiAppEvent from '@ohos.hiAppEvent'
-
应用执行事件打点
// callback方式 hiAppEvent.write("test_event", hiAppEvent.EventType.FAULT, {"int_data":100, "str_data":"strValue"}, (err, value) => { if (err) { // 事件写入异常:事件存在异常参数或者事件校验失败不执行写入 console.error(`failed to write event because ${err.code}`); return; } // 事件写入正常 console.log(`success to write event: ${value}`); }); // Promise方式 hiAppEvent.write("test_event", hiAppEvent.EventType.FAULT, {"int_data":100, "str_data":"strValue"}) .then((value) => { // 事件写入正常 console.log(`success to write event: ${value}`); }).catch((err) => { // 事件写入异常:事件存在异常参数或者事件校验失败不执行写入 console.error(`failed to write event because ${err.code}`); });
-
应用对打点功能进行自定义配置
// 配置应用事件打点功能开关 hiAppEvent.configure({ disable: true }) // 配置事件文件目录存储限额大小 hiAppEvent.configure({ maxStorage: '100M' })
Native接口开发实例
-
源代码开发
引入模块:
#include "hiappevent/hiappevent.h"
-
应用执行事件打点
// 1. 创建空参数list ParamList list = OH_HiAppEvent_CreateParamList(); // 2. 向list添加要传入的键值对参数 // 2.1 传入int32_t参数值 int32_t num = 1; OH_HiAppEvent_AddInt32Param(list, "int32_key", num); // 2.2 传入int32_t数组参数值 int32_t nums3[] = {1, INT32_MAX, INT32_MIN}; OH_HiAppEvent_AddInt32ArrayParam(list, "int32_arr_key", nums3, sizeof(nums3) / sizeof(nums3[0])); // 2.3 传入字符串数组参数值 char str1[] = "hello"; char str2[] = "world"; char* strs[] = {str1, str2}; OH_HiAppEvent_AddStringArrayParam(list, "string_arr_key", strs, sizeof(strs) / sizeof(strs[0])); // 3. 执行打点操作 int result = OH_HiAppEvent_Write("domain", "name", BEHAVIOR, list); printf("HiAppEvent logging test, res=%d\n", result); // 4. 销毁ParamLIst对象,释放内存 OH_HiAppEvent_DestroyParamList(list);
-
应用对打点功能进行自定义配置
// 关闭应用打点功能 OH_HiAppEvent_Configure(DISABLE, "true"); // 配置打点数据文件目录存储限额为100M OH_HiAppEvent_Configure(MAX_STORAGE, "100M");
最后
有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?但是又不知道从哪里下手,而且学习时频繁踩坑,最终浪费大量时间。所以本人整理了一些比较合适的鸿蒙(HarmonyOS NEXT)学习路径和一些资料的整理供小伙伴学习
点击领取→纯血鸿蒙Next全套最新学习资料希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取~~
一、鸿蒙(HarmonyOS NEXT)最新学习路线
有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,内容包含:(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)…等技术知识点。
获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
二、HarmonyOS Next 最新全套视频教程
三、《鸿蒙 (OpenHarmony)开发基础到实战手册》
OpenHarmony北向、南向开发环境搭建
四、大厂面试必问面试题
五、鸿蒙南向开发技术
六、鸿蒙APP开发必备
完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料
总结
总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。