本文档介绍移动监控 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());该文章对您有帮助吗?