用户体验数据
自定义冷启动耗时
SDK 默认计算 SDK 初始化开始至第一个页面加载结束的时间为「冷启动耗时」,研发人员可以根据自身应用需求更改计算「冷启动耗时」的结束点。
-
开启自定义冷启动耗时控制开关
- 相关接口
/**
* @enable 传入YES,开启设置自定义启动结束功能
*/
+ (void)customLaunchEnd:(BOOL)enable;- 代码示例
int main(int argc, char * argv[]) {
@autoreleasepool {
// 设置开启自定义结束点功能,在启动SDK之前调用。
[NBSAppAgent customLaunchEnd:YES];
[NBSAppAgent startWithAppID:@"appkey"];
...
}
} -
设置自定义冷启动耗时的结束点
该接口需要与「customLaunchEnd」配合使用,当设置「customLaunchEnd」接口为 YES 时,「launchFinish」接口设置生效。
- 相关接口
/**
* 自定义结束时间点,在启动结束时调用。
*/
+ (void)launchFinish:(NSString *)lanuchName;- 代码示例
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[NBSAppAgent launchFinish:@"firstVC"];
}
自定义Trace埋点
由于 TingYun_SDK 默认关注系统类和方法,无法关注「业务代码」的耗时情况,使用「自定义埋点」接口可以补全「页面体验分析」和「操作体验分析」模块中的【分解图】,能够帮助开发者清晰的了解其业务代码的耗时及调用情况。
- 相关接口
注意:「自定义Trace埋点」接口需要成对调用,请勿跨方法、跨进程以及在异步加载和递归调用中使用该接口。
// @String Name为当前方法所在方法名或自定义名称,支持中文、英文、数字、下划线,但不能包含空格或其他的转义字符
beginTracer(@"StringName")
endTracer(@"StringName")
- 代码示例
- (void)doSomething
{
// 用户可以在SDK初始化后的任意方法前后添加自定义Trace
beginTracer(@"TraceName")
// write you code here
endTracer(@"TraceName")
}
自定义操作
通过「自定义操作」来定义一个【业务操作】用以了解其性能表现情况。
- 相关接口
注意:「自定义操作」接口需要成对调用,actionName不可为空,支持跨方法、跨线程调用。
+ (void)customActionStart:(NSString *)actionName;
+ (void)customActionEnd:(NSString *)actionName withTag:(NSString *)tag withCustomInfo:(NSDictionary *)customInfo;