HarmonyOS SDK 接入

本章节介绍了HarmonyOS SDK的接入方法。

前言

SDK基于HarmonyOS API 12开发,compatibleSdkVersion5.0.0(12)。

准备工作

  1. 请参考HarmonyOS应用开发文档准备HarmonyOS应用开发环境。

  2. 请参考Native应用创建鸿蒙应用,在应用设置中查看AppKeyAppSecret。

第一步:安装SDK

HarmonyOS应用根目录执行以下命令来安装SDK:

ohpm install @aliyun/apm
ohpm install @aliyun/apm_crash

ohpm工具及更多关于OpenHarmony安装第三方SDK的信息请参考OpenHarmony三方库中心仓说明

第二步:初始化SDK、启动崩溃分析

Ability onCreate生命周期回调中执行以下代码初始化配置SDK:

说明

建议SDK初始化代码段,放在所有业务代码之前,确保App在启动时,优先加载崩溃分析服务,保障后续崩溃的信息,可以即时获取并上传至控制台。

import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import { APM, APMConfig, Logger } from '@aliyun/apm';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { crashAnalysisApi } from '@aliyun/apm_crash';

class MyCustomLog implements Logger {
  print(domain: number, tag: string, level: hilog.LogLevel, msg: string): void {
    switch (level) {
      case hilog.LogLevel.DEBUG:
        console.debug(`自定义log msg:${msg}`);
        break;
      case hilog.LogLevel.INFO:
        console.info(`自定义log msg:${msg}`);
        break;
      case hilog.LogLevel.WARN:
        console.warn(`自定义log msg:${msg}`);
        break;
      case hilog.LogLevel.ERROR:
      case hilog.LogLevel.FATAL:
        console.error(`自定义log msg:${msg}`);
        break;
    }
  }
}

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');

    const apm_perf_config: APMConfig = {
      context: this.context,
      appKey: 'appKey参数',
      appSecret: 'appSecret参数',
      nick: '用户昵称参数',
      userId: '用户ID参数',
      channel: '用户渠道参数',
      hiLog: true, // SDK内的hilog开关
      customLogger: new MyCustomLog(), // 自定义日志接口
    }
    APM.init(apm_perf_config, [crashAnalysisApi])
    APM.start();

  }

  // 省略其它代码
}

其中appKey,appSecret请配置为在准备工作中获取的AppKeyAppSecret。

第三步:接入验证

SDK接入完成后,需进行功能验证:

  1. 编写测试代码,模拟/触发移动端崩溃。例如:

     //数组越界
      let tempList = ['a', 'b']
      hilog.info(0x0000, 'apm', 'jsCrash %s', tempList[3].toString())
  2. 重启移动端,大概2分钟后在控制台查看是否显示崩溃信息。

    说明

    崩溃数据从采集到上传到控制台显示,存在大约2~3分钟延迟。

1.0.0版本升级到1.0.1版本

1.0.1版本相对于1.0.0版本,我们主要是优化了初始化接口,以支持更多的APM产品,比如性能分析。

需要调整的是SDK接入的第二步,参考第二步:初始化SDK、启动崩溃分析,修改为最新的接入代码即可。