1# HiChecker组件 2 3- [简介](#section11660541593) 4- [架构](#section161941989596) 5- [目录](#section14197309111) 6- [说明](#section1371113476307) 7- [涉及仓](#section1371113476310) 8 9## 简介<a name="section11660541593"></a> 10 11HiChecker,可以作为应用开发阶段使用的检测工具,用于检测代码运行过程中部分易忽略的问题,如应用线程出现耗时调用、应用进程中元能力资源泄露等问题。开发者可以通过日志记录或进程crash等形式查看具体问题并进行修改,提升应用的使用体验。 12 13## 架构<a name="section161941989596"></a> 14 15 <img src="./figures/HiChecker架构图.png" style="zoom:100%;" /> 16 17| 依赖部件 | 依赖描述 | 18| ----------------------------------------------------------- | ------------------------------------------------------------ | 19| 媒体子系统/【image部件】图片基础框架 ImagePacker | 在比较耗时的函数中调用HiChecker接口,通知有耗时调用,同时传入对应的告警提示字符串 | 20| 元能力子系统/ability_runtime/运行管理支持DFX FeatureAbility | 提供注册泄露检测逻辑,通知检测模式相关结果 | 21 22支持特性: 23 24- 提供耗时调用检测功能 25- 提供注册(ability) 泄露检测功能 26- 支持应用增加、删除不同的检测规则 27- 支持应用增加、删除不同的告警通知规则,目前支持记录流水日志(默认),应用崩溃两种规则 28- 相关检测条件满足时,支持Native回栈到关键触发点,暂不支持JS回栈 29 30## 目录<a name="section14197309111"></a> 31 32``` 33/base/hiviewdfx/hichecker 34├── frameworks # 框架代码 35│ └── native # HiChecker native实现代码 36├── interfaces # 接口 37│ └── native # C++接口 38│ └── innerkits # 对内部子系统提供的接口 39| └── js # JS接口 40│ └── kits # 对应用提供的接口 41├── test # 测试用例 42│ └── unittest 43``` 44 45 46 47## 说明<a name="section1371113476307"></a> 48### 接口说明 49 50主要接口说明 51 52| 类 | 方法 | 描述 | 53| --------- | :-------------------------------------------------- | -------------------------- | 54| HiChecker | BigInt RULE_CAUTION_PRINT_LOG = 1<<63; | 告警规则,仅记录日志 | 55| | BigInt RULE_CAUTION_TRIGGER_CRASH = 1<<62; | 告警规则,让应用退出 | 56| | BigInt RULE_THREAD_CHECK_SLOW_PROCESS = 1; | 检测规则,检测耗时函数调用 | 57| | BigInt RULE_CHECK_ABILITY_CONNECTION_LEAK = 1<<33; | 检测规则,检测ability泄露 | 58| | BigInt RULE_CHECK_ARKUI_PERFORMANCE = 1<<34; | 检测规则,用于arkui性能检测 | 59| | addRule(BigInt rule) : void | 增加一个或多个检测项 | 60| | removeRule(BigInt rule) : void | 删除一个或多个检测项 | 61| | getRule() : BigInt | 获取所有检测项 | 62| | contains(BigInt rule) : boolean | 当前是否有某一个检测项 | 63| | NotifySlowProcess(std::string) : void | 通知有耗时调用 | 64| | NotifySlowEvent(std::string) : void | 通知有耗时事件 | 65| | NotifyAbilityConnectionLeak(Caution caution) : void | 通知有ability泄露 | 66| | NotifyCaution(uint64_t rule, const std::string& tag, Caution& caution) : void | 规则检测通用接口 | 67| Caution | GetTriggerRule() : BigInt | 获取触发当前告警的检测规则 | 68| | GetCustomMessage() : String | 获取更多辅助信息 | 69| | GetStackTrace() :String | 获取堆栈信息 | 70 71## 涉及仓<a name="section1371113476310"></a> 72 73[DFX子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/DFX子系统.md) 74 75[hiviewdfx_hilog](https://gitee.com/openharmony/hiviewdfx_hilog/blob/master/README_zh.md) 76 77[hiviewdfx_faultloggerd](https://gitee.com/openharmony/hiviewdfx_faultloggerd/blob/master/README_zh.md) 78