启动分析 API

更新时间:
复制为 MD 格式

本文档介绍移动监控 Flutter SDK 提供的启动分析 API,包括自定义冷启动结束时间开关自定义冷启动阶段、结束冷启动等

1. 设置自定义冷启动结束时间开关

设置冷启动结束时间是否由业务侧手动指定,默认 false ,通常应在 Apm.start 前调用。

接口定义

class LaunchConfiguration {
  static Future<void> setCustomColdLaunchEndTime(bool enabled);
  static Future<bool> getCustomColdLaunchEndTime();
}

自定义冷启动结束时间开关参数说明

参数

类型

是否必填

说明

enabled

bool

true 表示业务手动调用 endColdLaunch 结束冷启动

代码示例

await LaunchConfiguration.setCustomColdLaunchEndTime(true);

2. 开始冷启动阶段

为当前冷启动链路开启一个自定义阶段,连续调用时会自动结束上一个阶段。

接口定义

class LaunchMonitor {
  static Future<void> startStage(String name, {DateTime? startTime});
}

开始冷启动阶段参数说明

参数

类型

是否必填

长度范围

说明

name

String

1~128

阶段名称

startTime

DateTime

阶段开始时间

代码示例

final stageStart = DateTime.now();
await LaunchMonitor.startStage('load_home', startTime: stageStart);

3. 补录冷启动阶段

补录一个已有开始和结束时间的冷启动阶段

接口定义

class LaunchMonitor {
  static Future<void> addStage({
    required String name,
    required DateTime startTime,
    required DateTime endTime,
  });
}

补录冷启动阶段参数说明

参数

类型

是否必填

长度范围

说明

name

String

1~128

阶段名称

startTime

DateTime

阶段开始时间

endTime

DateTime

阶段结束时间

代码示例

final stageStart = DateTime.now();

await LaunchMonitor.addStage(
  name: 'preload_config',
  startTime: stageStart,
  endTime: DateTime.now(),
);

4. 结束冷启动

以当前时间或者业务传入时间结束冷启动事件,如果存在开启的阶段,会自动结束阶段。

接口定义

class LaunchMonitor {
  static Future<void> endColdLaunch({DateTime? endTime});
}

结束冷启动参数说明

参数

类型

是否必填

长度范围

说明

endTime

DateTime

阶段结束时间,为空取当前时间

代码示例

await LaunchMonitor.endColdLaunch(endTime: DateTime.now());