更新时间:2022.08.31 11:06:43
启动分析支持配置启动次数和其他平台相关参数,提供图形图和图表显示、支持启动时长计算等功能。
Android和iOS的使用方法基本一致,区别在于Android需额外提供Launcher,iOS的测试结果除了启动总时长外还包含了分阶段时长。
配置Launcher: 输入全类名。如果Launcher类的包名和app包名一致,也可以如图只输入类名(以「.」开头)。也可以导入apk文件,软件会自动解析出Launcher。
Launcher:App启动后的首个Activity页面。
原理说明:
通过 adb am start
统计的 TotalTime
复用Instruments中App Launch模板数据,绕开Debug证书限制,采集冷启动各个阶段耗时情况。
禁用dyld3闭包(启动闭包将影响dyld init的耗时,导致数据产生波动)
启动后等待时间(启动后等待一段时间后kill app)规避如手淘连续启动crash后进入安全模式的Case
测试周期(单次采集时长,选择性增加采样周期,避免App误判为连续启动crash而进入安全模式)
自定义结束点,默认使用App第一帧渲染时刻作为启动结束点(与Apple统计启动耗时规则一致),可通过OSLog自定义结束点,配置中按#
分隔,如app#launch.event#launch.end
let log = OSLog(subsystem: "app", category: "launch.event") os_log(OSLogType.info, log: log, "launch.end")
#import <os/log.h> os_log_t log = os_log_create("app", "launch.event"); os_log_with_type(log, OS_LOG_TYPE_INFO, "launch.end");
无限启动且无数据
启动测试自动停止