启动体验分析用于监控分析App启动性能及过程中的异常,分为首次启动、冷启动、热启动三大类,包含应用启动时间、启动性能分解、地域分析、异常统计和追踪、慢启动单样本、启动崩溃信息、启动错误信息的展示。
其中启动分类的定义如下:
首次启动:App安装后的第一次启动,属于特殊的冷启动
冷启动:App结束进程,或退出到后台,进程被系统回收后,再次启动的过程
热启动:App程序从后台被唤起,或从其他 App界面切换回来的过程
应用启动时间和性能分解
在应用启动时间和性能分解图表中,选定App、版本和时间范围,可分别查看首次启动、冷启动、热启动的启动时间和次数,及首次启动和冷启动过程的性能拆解。
其中启动时间和性能分解的定义如下:
Android:Application.attachbaseContext()开始到MainActivity.onResume()结束
iOS:main函数启动时间(SDK启动时间)到 FirstVC.viewDidAppear()结束
Android:Home键:Activity.onRestart()开始到Activity.onResume()结束 ;Back键:Activity.onCreate()开始到Activity.onResume()结束
iOS:applicationWillEnterForeground()开始到applicationDidBecomeActive()结束
Android:Application init,Application.attachbaseContext()开始到结束
iOS:main函数启动时间(SDK启动时间)到applicationDelegate.didFinishLaunchingWithOptions()开始
Android:MainActivity init,Application.attachbaseContext()结束到Application.onCreate()结束
iOS:applicationDelegate.didFinishLaunchingWithOptions()开始到FirstVC.loadView()开始
Android:MainActivity onCreate到onResume,Application.onCreate()结束到MainActivity.onResume()结束
iOS:FirstVC.loadView()开始到FirstVC.viewDidAppear()结束
地图分析
在地图分析图表中,展示首次启动、冷启动、热启动,在不同地域、接入方式、运营商组合下的启动时间分布。接入方式、运营商组合可多选。分段区间根据自定义的慢启动阈值计算,分为6个区间,以不同颜色标识,例如:设定阈值3000ms,则区间分为0-600、600-1200、1200-1800、1800-2400、2400-3000、>3000。省份排行展示首次启动、冷启动、热启动时间最长的10个省份。
异常启动统计和追踪
在异常启动统计和追踪里,展示首次启动、冷启动、热启动的异常问题,包含慢启动、崩溃、HTTP错误、网络错误的趋势统计和信息列表。
慢启动统计
慢启动定义为启动时间大于阈值的启动,阈值默认为3000ms。柱状图和折线图展示首次启动、冷启动、热启动的慢启动占比、慢启动次数、正常启动次数的趋势。三个饼图分别展示慢启动App版本、设备型号、操作系统分布,例如:下图所示发生慢启动的操作系统,占比最多的是iOS 10.2,其次是iOS 8.4,iOS 9.0最少。
列表展示慢启动发生时间、User ID、启动时间、App版本、操作系统、设备型号。可按UserID搜索列表,或按设备型号和操作系统过滤列表(仅支持单选)。单击启动时间列的蓝色文字链接,可钻取至慢启动追踪页面。
崩溃统计
柱状图和折线图展示首次启动、冷启动、热启动过程的崩溃率、崩溃次数、启动次数趋的趋势,崩溃率的单位为‰。列表按崩溃message和trace信息聚合数据,展示崩溃发生时间、ID、崩溃问题、App版本、数量、状态。单击崩溃问题列的蓝色文字链接,可钻取至崩溃详情页面。
HTTP错误统计
柱状图展示首次启动、冷启动、热启动过程的HTTP错误次数。列表按URL和出错信息聚合数据,展示HTTP错误发生时间、URL、出错信息、数量、CDN厂商。可按URL搜索列表,或按出错信息和CDN厂商过滤列表(仅支持单选)。单击URL列的蓝色文字链接,可钻取至HTTP错误追踪页面。
网络错误统计
柱状图展示首次启动、冷启动、热启动过程的网络错误次数。列表按URL和出错信息聚合数据,展示网络错误发生时间、URL、出错信息、数量、CDN厂商。可按URL搜索列表,或按出错信息和CDN厂商过滤列表(仅支持单选)。单击URL列的蓝色文字链接,可钻取至网络错误追踪页面。
慢启动追踪
慢启动追踪展示慢的首次启动、冷启动、热启动的详细信息,包含慢启动关键时间、终端用户信息、瀑布图分解。页面头部展示User ID、发生时间和慢启动关键时间,其中指标定义如下:
Android:
应用准备时间:Application.attachbaseContext()开始到结束
主页面初始化时间:Application.attachbaseContext()结束到Application.onCreate()结束
视图填充时间:Application.onCreate()结束到MainActivity.onCreate()结束
交互准备时间:MainActivity.onCreate()结束到MainActivity.onResume()结束
iOS:
初始化时间:main函数启动时间(SDK启动时间)到applicationDelegate. didFinishLaunchingWithOptions()开始
构建时间:applicationDelegate.didFinishLaunchingWithOptions()开始到FirstVC.loadView()开始
页面加载时间:FirstVC.loadView()开始到FirstVC.viewDidAppear()结束
Android:
视图填充时间:Home键:Application.onCreate()结束到MainActivity.onRestart()结束;Back键:Application.onCreate()结束到MainActivity.onCreate()结束
交互准备时间:Home键:MainActivity.onRestart()结束到MainActivity.onResume()结束;Back键:MainActivity.onCreate()结束到MainActivity.onResume()结束
iOS:
页面加载时间:applicationWillEnterForeground()开始到applicationDidBecomeActive()结束
终端用户信息展示设备型号、操作系统、App版本、地域、运营商、接入方式、剩余空间、剩余内存、剩余电量、CPU型号、CPU指令集、CPU用量、UI朝向、GPS信息。
瀑布图分解包含CPU占用趋势、内存占用趋势、各线程调用方法、方法执行时间、方法类型、调用关系、慢启动关键时间标注。悬停瀑布图空白区域,展示时刻、该时刻CPU占用量、内存占用百分比。悬停方法区域,展示方法名称、开始时间、结束时间、耗时。不同方法用不同颜色标识,共分为5类:存储、图像、JSON、网络、自定义。悬停网络类型的方法,展示方法名称、请求URL、开始时间、结束时间、响应码、数据传输量、DNS、TCP、SSL、首包耗时。单击方法调用关系,追溯调用该方法的方法。
崩溃详情
崩溃详情展示首次启动、冷启动、热启动过程中发生的崩溃的详细信息,包含崩溃信息、崩溃列表、崩溃轨迹、调用堆栈、自定义附加信息、上下文信息、统计图表。页面头部展示崩溃message、影响用户、发生次数、状态,支持分享功能。崩溃列表展示启动时间、崩溃时间、App版本、操作系统、设备型号、User ID、设备ID。上下文信息包含设备、剩余内存、CPU用量、剩余设备空间、CPU型号、CPU指令集、是否越狱、剩余电量、GPS、应用UI朝向、运营商、接入方式。统计图表展示App版本、操作系统的分布。
错误追踪
错误追踪展示首次启动、冷启动、热启动过程中发生的错误的详细信息,包含错误信息、统计分布、单样本列表。页面头部展示错误类型、错误代码、错误数量、URL。饼状图展示操作系统、设备型号、App版本、地域、运营商、接入方式、服务器IP的分布情况。列表为错误单样本信息,展示错误发生时间、URL、CDN厂商、设备型号、App版本、SDK版本、操作系统、地域、运营商、接入方式信息。单击列表中的行,可钻取至错误单样本详情页面。
错误单样本详情包含终端用户信息、URL、请求参数、调用堆栈、响应头、响应内容。终端用户信息包含错误代码、发生时间、操作系统、App版本、SDK版本、设备型号、地域、运营商、接入方式、客户端IP、服务器IP、CDN厂商。