1# App startup 的抓取和展示说明
2
3应用启动分析功能主要是提供应用启动分析模板帮助系统调优人员做应用启动慢场景问题分析,快速查找系统侧启动慢阶段和耗时长调用栈信息。
4
5### App startup 抓取参数的配置
6
7![GitHub Logo](../../figures/appstartup/appstartupconfig.jpg)
8配置项说明:
9
10-     App startup:配置项的总开关。
11
12### App startup 展示说明
13
14将抓取的 App startup 文件导入到 smartperf 工具中,查看应用启动各阶段耗时的情况。
15
16### App startup 泳道图展示
17
18App startup 的泳道图展示:
19![GitHub Logo](../../figures/appstartup/appstartuprow.jpg)
20应用启动包括六个阶段,分别是 Process Creating(应用进程创建阶段)、Application Launching(加载应用阶段)、UI Ability Launching(加载 UI Ability)、UI Ability OnForeground(应用进入前台)、First Frame - APP Phase(首帧渲染提交-应用)、First Frame - Render Phase(首帧渲染提交-Render Service)。每个阶段的 Slice 上都会显示出该阶段的时延。
21
22### App startup 泳道图点选功能
23
24可以对启动各个阶段的 Slice 进行点选,点选后在最下方的弹出层中会展示点选数据的统计的 tab 页。
25以 Process Creating 的 Slice 点选为例:
26![GitHub Logo](../../figures/appstartup/appstartupslice.jpg)
27
28-     StartTime(Relative): 应用启动开始时间(相对时间)。
29-     StartTime(Absolute): 应用启动开始时间(绝对时间)。
30-     EndTime(Relative):应用启动的结束时间(相对时间)。
31-     EndTime(Absolute):应用启动的结束时间(绝对时间)。
32-     Duration:应用启动的持续时间。
33
34### App startup 泳道图 Tab 页跳转功能
35
36点击各阶段的起始或者结束时间后面的跳转图标,跳转至关联 Slice,并显示该 Slice 的详细信息。
37以 Process Creating 的跳转为例:
38![GitHub Logo](../../figures/appstartup/appstartupjump.jpg)
39跳转说明:
40
41-     StartTime(Relative)的跳转: 跳转到H:virtual int OHOS::AAFwk::AbilityManagerService::StartAbility关键字函数。
42-     EndTime(Relative)的跳转: 跳转到H:virtual void OHOS::AppExecFwk::AppMgrServiceInner::AttachApplication关键字函数,并且调用栈要带##应用名,如##com.ohos.smartperf43
44### App startup 泳道图的框选功能
45
46应用启动阶段泳道图框选功能主要是框选启动分析泳道图之后,统计应用各个启动阶段的耗费时长信息。
47![GitHub Logo](../../figures/appstartup/appstartupdrag.jpg)
48
49-     Process / Startup: 应用名称和启动阶段名称。
50-     Duration:应用各阶段启动时长。
51-     %:应用各阶段启动时长的占比。
52
53### So 初始化泳道图展示
54
55So 初始化的泳道图展示:
56![GitHub Logo](../../figures/appstartup/staticinitilizationrow.jpg)
57
58### So 初始化泳道图的点选功能
59
60点选 So 初始化的 Slice,展示该 so 初始化信息的 tab 页。
61![GitHub Logo](../../figures/appstartup/staticinitilizationslice.jpg)
62
63-     Name:So的名称。
64-     StartTime(Relative):So初始化开始时间(相对时间)。
65-     StartTime(Absolute):So初始化开始时间(绝对时间)。
66-     Duration:So初始化耗时。
67
68### So 初始化泳道图 Tab 页跳转功能
69
70点击 So 初始化开始时间后面的跳转图标,跳转至关联 Slice,并显示该 Slice 的详细信息。
71![GitHub Logo](../../figures/appstartup/staticinitilizationjump.jpg)
72跳转说明:
73
74-     StartTime(Relative)的跳转: 跳转到dlopen:  system/lib64/extensionability/libinputmethod_extension_module.z.so75
76### So 初始化泳道图的框选功能
77
78So 初始化泳道图框选功能主要是框选 So 初始化泳道图之后,统计各个进程下各个 So 的初始化耗费时长信息。
79![GitHub Logo](../../figures/appstartup/staticinitilizationdrag.jpg)
80
81-     Process / Lib: 应用名称和So名称。
82-     Duration:So的耗费时长。
83