檢測(cè)模式

2024-01-23 17:17 更新

HiChecker可以作為應(yīng)用開發(fā)階段使用的檢測(cè)工具,用于檢測(cè)代碼運(yùn)行過程中部分易忽略的問題,如應(yīng)用線程出現(xiàn)耗時(shí)調(diào)用、應(yīng)用進(jìn)程中Ability資源泄露等問題。開發(fā)者可以通過日志記錄或進(jìn)程crash等形式查看具體問題并進(jìn)行修改,提升應(yīng)用的使用體驗(yàn)。

說明

本模塊首批接口從API version 8開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。

導(dǎo)入模塊

  1. import hichecker from '@ohos.hichecker';

常量

提供了所有規(guī)則類型的常量。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiChecker

名稱

參數(shù)類型

說明

RULE_CAUTION_PRINT_LOG

bigint

告警規(guī)則,當(dāng)有告警時(shí)記錄日志。

RULE_CAUTION_TRIGGER_CRASH

bigint

告警規(guī)則,當(dāng)有告警時(shí)讓應(yīng)用推出。

RULE_THREAD_CHECK_SLOW_PROCESS

bigint

檢測(cè)規(guī)則,檢測(cè)是否有耗時(shí)函數(shù)被調(diào)用。

RULE_CHECK_ABILITY_CONNECTION_LEAK

bigint

檢測(cè)規(guī)則,檢測(cè)是否發(fā)生ability泄露。

hichecker.addCheckRule9+

addCheckRule(rule: bigint): void

添加一條或多條規(guī)則到系統(tǒng),系統(tǒng)根據(jù)添加的規(guī)則進(jìn)行檢測(cè)或反饋。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiChecker

參數(shù):

參數(shù)名

類型

必填

說明

rule

bigint

需要添加的規(guī)則。

示例:

  1. try {
  2. // 添加一條規(guī)則
  3. hichecker.addCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
  4. // 添加多條規(guī)則
  5. // hichecker.addCheckRule(
  6. // hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
  7. } catch (err) {
  8. console.error(`code: ${err.code}, message: ${err.message}`);
  9. }

hichecker.removeCheckRule9+

removeCheckRule(rule: bigint): void

刪除一條或多條規(guī)則,刪除的規(guī)則后續(xù)將不再生效。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiChecker

參數(shù):

參數(shù)名

類型

必填

說明

rule

bigint

需要?jiǎng)h除的規(guī)則。

示例:

  1. try {
  2. // 刪除一條規(guī)則
  3. hichecker.removeCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
  4. // 刪除多條規(guī)則
  5. // hichecker.removeCheckRule(
  6. // hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
  7. } catch (err) {
  8. console.error(`code: ${err.code}, message: ${err.message}`);
  9. }

hichecker.containsCheckRule9+

containsCheckRule(rule: bigint): boolean

當(dāng)前已添加的規(guī)則集中是否包含了某一個(gè)特定的規(guī)則,如果傳入的規(guī)則級(jí)別為線程級(jí)別,則僅在當(dāng)前線程中進(jìn)行查詢。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiChecker

參數(shù):

參數(shù)名

類型

必填

說明

rule

bigint

需要查詢的規(guī)則。

返回值:

類型

說明

boolean

查詢結(jié)果,true 表示規(guī)則已添加,false 表示規(guī)則未添加。

示例:

  1. try {
  2. // 添加一條規(guī)則
  3. hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
  4. // 查詢是否包含
  5. hichecker.containsCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
  6. hichecker.containsCheckRule(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
  7. } catch (err) {
  8. console.error(`code: ${err.code}, message: ${err.message}`);
  9. }

hichecker.addRule(deprecated)

addRule(rule: bigint): void

說明

從 API version 9 開始廢棄,建議使用hichecker.addCheckRule替代。

添加一條或多條規(guī)則到系統(tǒng),系統(tǒng)根據(jù)添加的規(guī)則進(jìn)行檢測(cè)或反饋。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiChecker

參數(shù):

參數(shù)名

類型

必填

說明

rule

bigint

需要添加的規(guī)則。

示例:

  1. // 添加一條規(guī)則
  2. hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG);
  3. // 添加多條規(guī)則
  4. hichecker.addRule(
  5. hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);

hichecker.removeRule(deprecated)

removeRule(rule: bigint): void

說明

從 API version 9 開始廢棄,建議使用hichecker.removeCheckRule替代。

刪除一條或多條規(guī)則,刪除的規(guī)則后續(xù)將不再生效。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiChecker

參數(shù):

參數(shù)名

類型

必填

說明

rule

bigint

需要?jiǎng)h除的規(guī)則。

示例:

  1. // 刪除一條規(guī)則
  2. hichecker.removeRule(hichecker.RULE_CAUTION_PRINT_LOG);
  3. // 刪除多條規(guī)則
  4. hichecker.removeRule(
  5. hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);

hichecker.getRule

getRule(): bigint

獲取當(dāng)前線程規(guī)則、進(jìn)程規(guī)則、告警規(guī)則的合集。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiChecker

返回值:

類型

說明

bigint

當(dāng)前系統(tǒng)中添加的規(guī)則。

示例:

  1. // 添加一條規(guī)則
  2. hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
  3. // 獲取已添加的規(guī)則
  4. hichecker.getRule(); // return 1n;

hichecker.contains(deprecated)

contains(rule: bigint): boolean

說明

從 API version 9 開始廢棄,建議使用hichecker.containsCheckRule替代。

當(dāng)前已添加的規(guī)則集中是否包含了某一個(gè)特定的規(guī)則,如果傳入的規(guī)則級(jí)別為線程級(jí)別,則僅在當(dāng)前線程中進(jìn)行查詢。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiChecker

參數(shù):

參數(shù)名

類型

必填

說明

rule

bigint

需要查詢的規(guī)則。

返回值:

類型

說明

boolean

查詢結(jié)果,true 表示規(guī)則已添加,false 表示規(guī)則未添加。

示例:

  1. // 添加一條規(guī)則
  2. hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
  3. // 查詢是否包含
  4. hichecker.contains(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
  5. hichecker.contains(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)