本文档介绍移动监控 iOS SDK 提供的启动分析 API,包括应用启动采集开关、自定义冷启动结束时间开关、自定义冷启动阶段、结束冷启动。
1. 设置应用启动采集开关
开启或关闭启动数据采集,默认开启
接口定义
+ (void)setDataCollectionEnabled:(BOOL)dataCollectionEnabled;
+ (BOOL)dataCollectionEnabled;class var dataCollectionEnabled: Bool { get set }代码示例
#import "AlicloudApmPerformance/AlicloudApmPerformance.h"
// 开启应用启动采集
[EAPMLaunchConfiguration setDataCollectionEnabled:YES];
// 获取应用启动采集开关
BOOL enabled = [EAPMLaunchConfiguration dataCollectionEnabled];#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
// 开启应用启动采集
LaunchConfiguration.dataCollectionEnabled = true
// 获取应用启动采集开关
let enabled = LaunchConfiguration.dataCollectionEnabled2. 设置自定义冷启动结束时间开关
设置冷启动结束时间是否由业务侧手动指定。
接口定义
+ (void)setCustomColdLaunchEndTime:(BOOL)customColdLaunchEndTime;
+ (BOOL)customColdLaunchEndTime;class var customColdLaunchEndTime: Bool { get set }代码示例
#import "AlicloudApmPerformance/AlicloudApmPerformance.h"
// 设置使用自定义冷启动结束时间
[EAPMLaunchConfiguration setCustomColdLaunchEndTime:YES];
// 获取自定义冷启动结束时间开关
BOOL enabled = [EAPMLaunchConfiguration customColdLaunchEndTime];#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
// 设置使用自定义冷启动结束时间
LaunchConfiguration.customColdLaunchEndTime = true
// 获取自定义冷启动结束时间开关
let enabled = LaunchConfiguration.customColdLaunchEndTime3. 开始冷启动阶段
为当前冷启动链路开启一个自定义阶段,并自动结束上一个自定义阶段。
接口定义
+ (void)startStageNamed:(NSString *)stageName;
+ (void)startStageNamed:(NSString *)stageName startTime:(NSDate *)startTime;class func startStage(name stageName: String)
class func startStage(name stageName: String, startTime: Date)参数说明
参数 | 类型 | 是否必填 | 长度范围 | 说明 |
stageName | NSString | 是 | 1~128 | 阶段名称 |
startTime | NSDate | 否 | 阶段开始时间 |
代码示例
#import "AlicloudApmPerformance/AlicloudApmPerformance.h"
// 以业务传入时间作为自定义阶段开始时间
[EAPMLaunchMonitor startStageNamed:@"stage1" startTime:[NSDate date]];
// 为当前冷启动链路开启自定义阶段
[EAPMLaunchMonitor startStageNamed:@"Stage2"];#import "AlicloudApmPerformance/AlicloudApmPerformance.h"
// 以业务传入时间作为自定义阶段开始时间
LaunchMonitor.startStage(name: "stage1", startTime: Date())
// 为当前冷启动链路开启自定义阶段
LaunchMonitor.startStage(name: "stage2")4. 补录冷启动阶段
补录一个已有开始和结束时间的冷启动阶段.
接口定义
+ (void)addStageNamed:(NSString *)stageName
startTime:(NSDate *)startTime
endTime:(NSDate *)endTime;class func addStage(name stageName: String, startTime: Date, endTime: Date)参数说明
参数 | 类型 | 是否必填 | 长度范围 | 说明 |
stageName | NSString | 是 | 1~128 | 阶段名称 |
startTime | NSDate | 是 | 阶段开始时间 | |
endTime | NSDate | 是 | 阶段结束时间 |
代码示例
#import "AlicloudApmPerformance/AlicloudApmPerformance.h"
NSDate *start = [NSDate dateWithTimeIntervalSinceNow:-0.2];
NSDate *end = [NSDate date];
[EAPMLaunchMonitor addStageNamed:@"read_cache" startTime:start endTime:end];#import "AlicloudApmPerformance/AlicloudApmPerformance.h"
let start = Date(timeIntervalSinceNow: -0.2)
let end = Date()
LaunchMonitor.addStage(name: "read_cache", startTime: start, endTime: end)5. 结束冷启动
以当前时间或者业务传入时间结束冷启动事件
接口定义
+ (void)endColdLaunch;
+ (void)endColdLaunchWithTime:(NSDate *)endTime;class func endColdLaunch()
class func endColdLaunch(endTime: Date)参数说明
参数 | 类型 | 是否必填 | 说明 |
endTime | NSDate | 是 | 结束时间 |
代码示例
#import "AlicloudApmPerformance/AlicloudApmPerformance.h"
// 以当前时间结束冷启动采集
[EAPMLaunchMonitor endColdLaunch];
// 以业务传入时间结束冷启动采集
[EAPMLaunchMonitor endColdLaunchWithTime:[NSDate date]];#import "AlicloudApmPerformance/AlicloudApmPerformance.h"
// 以当前时间结束冷启动采集
LaunchMonitor.endColdLaunch()
// 以业务传入时间结束冷启动采集
LaunchMonitor.endColdLaunch(endTime: Date())该文章对您有帮助吗?