1<!DOCTYPE html>
2<html>
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5    <title>quickstart_app_startup</title>
6
7    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8    <style>
9      code[class*='smartperf-'],
10      pre[class*='smartperf-'] {
11        color: #333333;
12        background: none;
13        font-family: Helvetica;
14        line-height: 1.6;
15        text-align: left;
16        white-space: pre;
17        -moz-tab-size: 9;
18        -o-tab-size: 9;
19        tab-size: 8;
20        -webkit-hyphens: none;
21        -moz-hyphens: none;
22        -ms-hyphens: none;
23        hyphens: none;
24      }
25
26      /* Code blocks */
27      pre[class*='smartperf-'] {
28        padding: 0.9em;
29        overflow: auto;
30        border-radius: 2px;
31        background: #f5f5f4;
32      }
33
34      /* Inline code */
35      :not(pre) > code[class*='smartperf-'] {
36        white-space: normal;
37        background: #fcf8f8;
38        padding: 1px 0.2em;
39        border-radius: 1px 0.3em;
40      }
41
42      .tk.comment,
43      .tk.blockquote {
44        color: #8c918c;
45      }
46
47      .tk.cdata {
48        color: #183898;
49      }
50
51      .tk.doctype,
52      .tk.punctuation,
53      .tk.variable,
54      .tk.macro.property {
55        color: #424242;
56      }
57
58      .tk.operator,
59      .tk.important,
60      .tk.keyword,
61      .tk.rule,
62      .tk.builtin {
63        color: #b71d65;
64      }
65
66      .tk.string,
67      .tk.url,
68      .tk.regex,
69      .tk.attr-value {
70        color: #16338d;
71      }
72
73      .tk.property,
74      .tk.number,
75      .tk.boolean,
76      .tk.entity,
77      .tk.atrule,
78      .tk.constant,
79      .tk.symbol,
80      .tk.command,
81      .tk.code {
82        color: #037aa2;
83      }
84
85      .tk.tag,
86      .tk.selector,
87      .tk.prolog {
88        color: #69ad62;
89      }
90
91      .tk.function,
92      .tk.namespace,
93      .tk.pseudo-element,
94      .tk.class,
95      .tk.class-name,
96      .tk.pseudo-class,
97      .tk.id,
98      .tk.url-reference .tk.variable,
99      .tk.attr-name {
100        color: #775d9d;
101      }
102
103      .tk.entity {
104        cursor: help;
105      }
106
107      .tk.title,
108      .tk.title .tk.punctuation {
109        font-weight: bold;
110        color: #1a3773;
111      }
112
113      .tk.list {
114        color: #f56940;
115      }
116
117      .tk.inserted {
118        background-color: #eaffea;
119        color: #509b2f;
120      }
121
122      .tk.deleted {
123        background-color: #fae1e1;
124        color: #ad2d06;
125      }
126
127      .tk.bold {
128        font-weight: bolder;
129      }
130
131      .tk.italic {
132        font-style: normal;
133      }
134
135      /* JSON */
136      .smartperf-json .tk.property {
137        color: #19358c;
138      }
139
140      .smartperf-markup .tk.tag .tk.punctuation {
141        color: #2c2b2b;
142      }
143
144      /* CSS */
145      code.smartperf-css,
146      .smartperf-css .tk.function {
147        color: #047ca4;
148      }
149
150      /* YAML */
151      .smartperf-yaml .tk.atrule {
152        color: #609b5a;
153      }
154
155      code.smartperf-yaml {
156        color: #153491;
157      }
158
159      /* Ruby */
160      .smartperf-ruby .tk.function {
161        color: #3f3e3e;
162      }
163
164      /* Markdown */
165      .smartperf-markdown .tk.url {
166        color: #6e5298;
167      }
168
169      /* Makefile */
170      .smartperf-makefile .tk.symbol {
171        color: #6c5393;
172      }
173
174      .smartperf-makefile .tk.variable {
175        color: #183488;
176      }
177
178      .smartperf-makefile .tk.builtin {
179        color: #027ba4;
180      }
181
182      /* Bash */
183      .smartperf-bash .tk.keyword {
184        color: #027fa9;
185      }
186
187      /* highlight */
188      pre[dl] {
189        position: relative;
190        padding: 1em 1px 1px 0.9em;
191      }
192
193      pre[dl] .line-highlight-wrapper {
194        position: absolute;
195        top: 1px;
196        left: 1px;
197        background-color: transparent;
198        display: block;
199        width: 99%;
200      }
201
202      pre[dl] .line-highlight {
203        position: absolute;
204        left: 1px;
205        right: 1px;
206        padding: inherit;
207        margin-top: 0.9em;
208        background: hsla(25, 21%, 50%, 0.08);
209        background: linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0));
210        pointer-events: none;
211        line-height: inherit;
212        white-space: pre;
213      }
214
215      pre[dl] .line-highlight:before,
216      pre[dl] .line-highlight[data-end]:after {
217        content: attr(data-start);
218        position: absolute;
219        text-shadow: none;
220        top: 0.3em;
221        left: 0.7em;
222        min-width: 0.9em;
223        padding: 1px 0.6em;
224        background-color: hsla(24, 20%, 47%, 0.4);
225        color: hsl(20, 11%, 95%);
226        text-align: center;
227        vertical-align: 0.2em;
228        border-radius: 10000px;
229        box-shadow: 1px 2px #fdf6f6;
230      }
231
232      pre[dl] .line-highlight[data-end]:after {
233        content: attr(data-end);
234        top: auto;
235        bottom: 0.5em;
236      }
237
238      html body {
239        line-height: 1.6;
240        font-size: 16px;
241        color: #333333;
242        overflow: initial;
243        word-wrap: break-word;
244        font-family: Helvetica;
245        box-sizing: border-box;
246      }
247
248      html body > :first-child {
249        margin-top: 0px;
250      }
251
252      html body h1,
253      html body h2,
254      html body h3,
255      html body h4,
256      html body h5,
257      html body h6 {
258        margin-top: 1em;
259        margin-bottom: 16px;
260        color: #000000;
261        line-height: 1.2;
262      }
263
264      html body h1 {
265        font-weight: 300;
266        font-size: 2.25em;
267        padding-bottom: 0.3em;
268      }
269
270      html body h2 {
271        font-weight: 410;
272        font-size: 1.74em;
273        padding-bottom: 0.2em;
274      }
275
276      html body h3 {
277        font-size: 1.6em;
278        font-weight: 501;
279      }
280
281      html body h4 {
282        font-size: 1.26em;
283        font-weight: 601;
284      }
285
286      html body h5 {
287        font-size: 1.2em;
288        font-weight: 601;
289      }
290
291      html body h6 {
292        font-size: 0.9em;
293        font-weight: 601;
294      }
295
296      html body h1,
297      html body h2,
298      html body h3,
299      html body h4,
300      html body h5 {
301        font-weight: 601;
302      }
303
304      html body h5 {
305        font-size: 0.9em;
306      }
307
308      html body h6 {
309        color: #5c5c5c;
310      }
311
312      html body strong {
313        color: #090909;
314      }
315
316      html body del {
317        color: #525252;
318      }
319
320      html body a:not([href]) {
321        color: inherit;
322        text-decoration: none;
323      }
324
325      html body a {
326        color: #0192da;
327        text-decoration: none;
328      }
329
330      html body a:hover {
331        color: #029dea;
332        text-decoration: none;
333      }
334
335      html body img {
336        max-width: 99%;
337      }
338
339      html body > p {
340        margin-top: 1px;
341        margin-bottom: 15px;
342        word-wrap: break-word;
343      }
344
345      html body > ul,
346      html body > ol {
347        margin-bottom: 15px;
348      }
349
350      html body ul,
351      html body ol {
352        padding-left: 1.9em;
353      }
354
355      html body ul.no-list,
356      html body ol.no-list {
357        padding: 0px;
358        list-style-type: none;
359      }
360
361      html body ul ul,
362      html body ul ol,
363      html body ol ol,
364      html body ol ul {
365        margin-top: 1px;
366        margin-bottom: 1px;
367      }
368
369      html body li {
370        margin-bottom: 1px;
371      }
372
373      html body li.task-list-item {
374        list-style: none;
375      }
376
377      html body li > p {
378        margin-top: 1px;
379        margin-bottom: 1px;
380      }
381
382      html body .task-list-item-checkbox {
383        margin: 0 0.3em 0.24em -1.7em;
384        vertical-align: middle;
385      }
386
387      html body .task-list-item-checkbox:hover {
388        cursor: pointer;
389      }
390
391      html body blockquote {
392        padding: 0.1px 15px 0 0.1px;
393        font-size: inherit;
394        color: #5c5c5c;
395        margin: 16px 0.1px 0 0.1px;
396        border-left: 3px solid #cbc9c9;
397        background-color: #e8e6e6;
398      }
399
400      html body blockquote > :first-child {
401        margin-top: 0.2px;
402      }
403
404      html body blockquote > :last-child {
405        margin-bottom: 0.1px;
406      }
407
408      html body hr {
409        height: 5px;
410        background-color: #cbcaca;
411        margin: 32px 0 0.1px 0;
412        border: 0 none;
413      }
414
415      html body table {
416        overflow: auto;
417        border-collapse: collapse;
418        margin: 15px 0.1px 20px 0.1px;
419        border-spacing: 0;
420      }
421
422      html body table th {
423        font-weight: bold;
424        color: #000000;
425      }
426
427      html body table td,
428      html body table th {
429        border: 1px solid #d6d6d6;
430        padding: 2px 14px;
431      }
432
433      html body dl {
434        padding: 0px;
435      }
436
437      html body dl dt {
438        padding: 0px;
439        margin-top: 15px;
440        font-size: 0.9em;
441        font-style: italic;
442        font-weight: bold;
443      }
444
445      html body dl dd {
446        padding: 0px 17px;
447        margin-bottom: 17px;
448      }
449
450      html body code {
451        font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
452        font-size: 0.86em !important;
453        color: #000000;
454        background-color: #f0f0f0;
455        border-radius: 4px;
456        padding: 0.3em 0px;
457      }
458
459      html body code::before,
460      html body code::after {
461        letter-spacing: -0.1em;
462        content: '\00a0';
463      }
464
465      html body pre > code {
466        padding: 1px;
467        margin: 0px;
468        font-size: 0.86em !important;
469        word-break: normal;
470        white-space: pre;
471        background: transparent;
472        border: 0px;
473      }
474
475      html body .highlight {
476        margin-bottom: 17px;
477      }
478
479      html body .highlight pre,
480      html body pre {
481        padding: 0.9em;
482        overflow: auto;
483        font-size: 0.86em !important;
484        line-height: 1.46;
485        border: #d6d6d6;
486        border-radius: 4px;
487      }
488
489      html body .highlight pre {
490        margin-bottom: 0px;
491        word-break: normal;
492      }
493
494      html body pre code,
495      html body pre tt {
496        display: inline;
497        max-width: initial;
498        padding: 1px;
499        margin: 1px;
500        overflow: initial;
501        line-height: inherit;
502        word-wrap: normal;
503        background-color: transparent;
504        border: 1px;
505      }
506
507      html body pre code:before,
508      html body pre tt:before,
509      html body pre code:after,
510      html body pre tt:after {
511        content: normal;
512      }
513
514      html body p,
515      html body blockquote,
516      html body ul,
517      html body ol,
518      html body dl,
519      html body pre {
520        margin-top: 1px;
521        margin-bottom: 17px;
522      }
523
524      html body kbd {
525        color: #000000;
526        border: 3px solid #d6d6d6;
527        border-bottom: 3px solid #c7c7c7;
528        padding: 3px 5px;
529        background-color: #f0f0f0;
530        border-radius: 2px;
531      }
532
533      @media print {
534        html body {
535          background-color: #ffffff;
536        }
537
538        html body h1,
539        html body h2,
540        html body h3,
541        html body h4,
542        html body h5,
543        html body h6 {
544          color: #000000;
545          page-break-after: avoid;
546        }
547
548        html body blockquote {
549          color: #5c5c53;
550        }
551
552        html body pre {
553          page-break-inside: avoid;
554        }
555
556        html body table {
557          display: table;
558        }
559
560        html body img {
561          display: block;
562          max-width: 99%;
563          max-height: 99%;
564        }
565
566        html body pre,
567        html body code {
568          word-wrap: break-word;
569          white-space: pre;
570        }
571      }
572
573      .smartperf-preview {
574        width: 68vw;
575        height: 99%;
576        box-sizing: border-box;
577        overflow: hidden;
578        background-color: #fff;
579      }
580
581      .smartperf-preview .pagebreak,
582      .smartperf-preview .newpage {
583        page-break-before: always;
584      }
585
586      .smartperf-preview pre.line-numbers {
587        position: relative;
588        padding-left: 3.7em;
589        counter-reset: linenumber;
590      }
591
592      .smartperf-preview pre.line-numbers > code {
593        position: relative;
594      }
595
596      .smartperf-preview pre.line-numbers .line-numbers-rows {
597        position: absolute;
598        pointer-events: none;
599        top: 0.9em;
600        font-size: 99%;
601        left: 1px;
602        width: 3em;
603        letter-spacing: -1px;
604        border-right: 1px solid #999;
605        -webkit-user-select: none;
606        -moz-user-select: none;
607        -ms-user-select: none;
608        user-select: none;
609      }
610
611      .smartperf-preview pre.line-numbers .line-numbers-rows > span {
612        pointer-events: none;
613        display: block;
614        counter-increment: linenumber;
615      }
616
617      .smartperf-preview pre.line-numbers .line-numbers-rows > span:before {
618        content: counter(linenumber);
619        color: #999;
620        display: block;
621        padding-right: 0.79em;
622        text-align: right;
623      }
624
625      .smartperf-preview .mathjax-exps .MathJax_Display {
626        text-align: center !important;
627      }
628
629      .smartperf-preview:not([for='preview']) .code-chunk .btn-group {
630        display: none;
631      }
632
633      .smartperf-preview:not([for='preview']) .code-chunk .status {
634        display: none;
635      }
636
637      .smartperf-preview:not([for='preview']) .code-chunk .output-div {
638        margin-bottom: 16px;
639      }
640
641      .scrollbar-style::-webkit-scrollbar {
642        width: 8px;
643      }
644
645      .scrollbar-style::-webkit-scrollbar-track {
646        border-radius: 9px;
647        background-color: transparent;
648      }
649
650      .scrollbar-style::-webkit-scrollbar-thumb {
651        border-radius: 6px;
652        background-color: rgba(150, 150, 150, 1);
653        border: 4px solid rgba(150, 150, 150, 1);
654        background-clip: content-box;
655      }
656
657      html body[for='html-export']:not([dpm]) {
658        position: relative;
659        width: 99%;
660        height: 99%;;
661        overflow: auto;
662      }
663
664      html body[for='html-export']:not([dpm]) .smartperf-preview {
665        position: relative;
666        top: 1px;
667      }
668
669      @media screen and (min-width: 914px) {
670        html body[for='html-export']:not([dpm]) .smartperf-preview {
671          padding: 2em;
672        }
673      }
674
675      @media screen and (max-width: 914px) {
676        html body[for='html-export']:not([dpm]) .smartperf-preview {
677          padding: 1.9em;
678        }
679      }
680
681      @media screen and (max-width: 450px) {
682        html body[for='html-export']:not([dpm]) .smartperf-preview {
683          font-size: 15px !important;
684          padding: 1.1em;
685        }
686      }
687
688      @media print {
689        html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
690          display: none;
691        }
692      }
693
694      html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
695        position: fixed;
696        bottom: 9px;
697        left: 9px;
698        font-size: 28px;
699        cursor: pointer;
700        color: inherit;
701        z-index: 99;
702        width: 31px;
703        text-align: center;
704        opacity: 0.5;
705      }
706
707      html body[for='html-export']:not([dpm])[hsst] #sidebar-toc-btn {
708        opacity: 1;
709      }
710
711      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc {
712        position: fixed;
713        top: 1px;
714        left: 1px;
715        width: 300px;
716        height: 99%;
717        padding: 32px 0 48px 0;
718        font-size: 14px;
719        box-shadow: 1px 1px 4px rgba(150, 150, 150, 0.33);
720        box-sizing: border-box;
721        overflow: auto;
722        background-color: inherit;
723      }
724
725      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar {
726        width: 9px;
727      }
728
729      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-track {
730        border-radius: 11px;
731        background-color: transparent;
732      }
733
734      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-thumb {
735        border-radius: 6px;
736        background-color: rgba(150, 150, 150, 0.66);
737        border: 3px solid rgba(150, 150, 150, 0.66);
738        background-clip: content-box;
739      }
740
741      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc a {
742        text-decoration: none;
743      }
744
745      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
746        padding: 1px 1.7em;
747        margin-top: 0.9em;
748      }
749
750      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc li {
751        margin-bottom: 0.8em;
752      }
753
754      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
755        list-style-type: none;
756      }
757
758      html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
759        left: 301px;
760        width: calc(100% - 300px);
761        padding: 2em calc(50% - 457px - 150px);
762        margin: 1px;
763        box-sizing: border-box;
764      }
765
766      @media screen and (max-width: 1274px) {
767        html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
768          padding: 1.9em;
769        }
770      }
771
772      @media screen and (max-width: 450px) {
773        html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
774          width: 99%;
775        }
776      }
777
778      html body[for='html-export']:not([dpm]):not([hsst]) .md-sidebar-toc {
779        display: none;
780      }
781    </style>
782  </head>
783  <body for="html-export" id="body" style="margin:0">
784    <div class="smartperf smartperf-preview" style="min-height: 99vh;">
785      <h1 class="mume-header fontColor">App startup的抓取和展示说明</h1>
786      <p class="fontColor">
787        应用启动分析功能主要是提供应用启动分析模板帮助系统调优人员做应用启动慢场景问题分析,快速查找系统侧启动慢阶段和耗时长调用栈信息。
788      </p>
789      <h3 class="mume-header fontColor" id="header-index-1">App startup抓取参数的配置</h3>
790
791      <p class="fontColor">
792        <img src="../figures/appstartup/appstartupconfig.jpg" alt="GitHub Logo" />
793        <br />
794        配置项说明:
795      </p>
796      <ul class="fontColor">
797        <li>
798          <pre class="smartperf-text fontColor light">
799App startup:配置项的总开关。解析时请打开对应的Flags标记(Disabled切换为Enabled)。
800</pre
801          >
802        </li>
803      </ul>
804      <h3 class="mume-header fontColor" id="header-index-2">App startup展示说明</h3>
805
806      <p class="fontColor">将抓取的App startup文件导入到smartperf工具中,查看应用启动各阶段耗时的情况。</p>
807      <h3 class="mume-header fontColor" id="header-index-3">App startup泳道图展示</h3>
808
809      <p class="fontColor">
810        App startup的泳道图展示:
811        <br />
812        <img src="../figures/appstartup/appstartuprow.jpg" alt="GitHub Logo" />
813        <br />
814        应用启动包括六个阶段,分别是Process Creating(应用进程创建阶段)、Application Launching(加载应用阶段)、UI Ability
815        Launching(加载UI Ability)、UI Ability OnForeground(应用进入前台)、First Frame - APP
816        Phase(首帧渲染提交-应用)、First Frame - Render Phase(首帧渲染提交-Render
817        Service)。每个阶段的Slice上都会显示出该阶段的时延。
818      </p>
819      <h3 class="mume-header fontColor" id="header-index-4">App startup泳道图点选功能</h3>
820
821      <p class="fontColor">
822        可以对启动各个阶段的Slice进行点选,点选后在最下方的弹出层中会展示点选数据的统计的tab页。
823        <br />
824        以Process Creating的Slice点选为例:
825        <br />
826        <img src="../figures/appstartup/appstartupslice.jpg" alt="GitHub Logo" />
827      </p>
828      <ul class="fontColor">
829        <li>
830          <pre class="smartperf-text fontColor light">
831StartTime(Relative): 应用启动开始时间(相对时间)。
832</pre
833          >
834        </li>
835        <li>
836          <pre class="smartperf-text fontColor light">
837StartTime(Absolute): 应用启动开始时间(绝对时间)。
838</pre
839          >
840        </li>
841        <li>
842          <pre class="smartperf-text fontColor light">
843EndTime(Relative):应用启动的结束时间(相对时间)。
844</pre
845          >
846        </li>
847        <li>
848          <pre class="smartperf-text fontColor light">
849EndTime(Absolute):应用启动的结束时间(绝对时间)。
850</pre
851          >
852        </li>
853        <li>
854          <pre class="smartperf-text fontColor light">
855Duration:应用启动的持续时间。
856</pre
857          >
858        </li>
859      </ul>
860      <h3 class="mume-header fontColor" id="header-index-5">App startup泳道图Tab页跳转功能</h3>
861
862      <p class="fontColor">
863        点击各阶段的起始或者结束时间后面的跳转图标,跳转至关联Slice,并显示该Slice的详细信息。
864        <br />
865        以Process Creating的跳转为例:
866        <br />
867        <img src="../figures/appstartup/appstartupjump.jpg" alt="GitHub Logo" />
868        <br />
869        跳转说明:
870      </p>
871      <ul class="fontColor">
872        <li>
873          <pre class="smartperf-text fontColor light">
874StartTime(Relative)的跳转: 跳转到H:virtual int OHOS::AAFwk::AbilityManagerService::StartAbility关键字函数。
875</pre
876          >
877        </li>
878        <li>
879          <pre class="smartperf-text fontColor light">
880EndTime(Relative)的跳转: 跳转到H:virtual void OHOS::AppExecFwk::AppMgrServiceInner::AttachApplication关键字函数,并且调用栈要带##应用名,如##com.ohos.smartperf881</pre
882          >
883        </li>
884      </ul>
885      <h3 class="mume-header fontColor" id="header-index-6">App startup泳道图的框选功能</h3>
886
887      <p class="fontColor">
888        应用启动阶段泳道图框选功能主要是框选启动分析泳道图之后,统计应用各个启动阶段的耗费时长信息。
889        <br />
890        <img src="../figures/appstartup/appstartupdrag.jpg" alt="GitHub Logo" />
891      </p>
892      <ul class="fontColor">
893        <li>
894          <pre class="smartperf-text fontColor light">
895Process / Startup: 应用名称和启动阶段名称。
896</pre
897          >
898        </li>
899        <li>
900          <pre class="smartperf-text fontColor light">
901Duration:应用各阶段启动时长。
902</pre
903          >
904        </li>
905        <li>
906          <pre class="smartperf-text fontColor light">
907%:应用各阶段启动时长的占比。
908</pre
909          >
910        </li>
911      </ul>
912      <h3 class="mume-header fontColor" id="header-index-7">So初始化泳道图展示</h3>
913
914      <p class="fontColor">
915        So初始化的泳道图展示:
916        <br />
917        <img src="../figures/appstartup/staticinitilizationrow.jpg" alt="GitHub Logo" />
918      </p>
919      <h3 class="mume-header fontColor" id="header-index-8">So初始化泳道图的点选功能</h3>
920
921      <p class="fontColor">
922        点选So初始化的Slice,展示该so初始化信息的tab页。
923        <br />
924        <img src="../figures/appstartup/staticinitilizationslice.jpg" alt="GitHub Logo" />
925      </p>
926      <ul class="fontColor">
927        <li>
928          <pre class="smartperf-text fontColor light">
929Name:So的名称。
930</pre
931          >
932        </li>
933        <li>
934          <pre class="smartperf-text fontColor light">
935StartTime(Relative):So初始化开始时间(相对时间)。
936</pre
937          >
938        </li>
939        <li>
940          <pre class="smartperf-text fontColor light">
941StartTime(Absolute):So初始化开始时间(绝对时间)。
942</pre
943          >
944        </li>
945        <li>
946          <pre class="smartperf-text fontColor light">
947Duration:So初始化耗时。
948</pre
949          >
950        </li>
951      </ul>
952      <h3 class="mume-header fontColor" id="header-index-9">So初始化泳道图Tab页跳转功能</h3>
953
954      <p class="fontColor">
955        点击So初始化开始时间后面的跳转图标,跳转至关联Slice,并显示该Slice的详细信息。
956        <br />
957        <img src="../figures/appstartup/staticinitilizationjump.jpg" alt="GitHub Logo" />
958        <br />
959        跳转说明:
960      </p>
961      <ul class="fontColor">
962        <li>
963          <pre class="smartperf-text fontColor light">
964StartTime(Relative)的跳转: 跳转到dlopen:  system/lib64/extensionability/libinputmethod_extension_module.z.so965</pre
966          >
967        </li>
968      </ul>
969      <h3 class="mume-header fontColor" id="header-index-10">So初始化泳道图的框选功能</h3>
970
971      <p class="fontColor">
972        So初始化泳道图框选功能主要是框选So初始化泳道图之后,统计各个进程下各个So的初始化耗费时长信息。
973        <br />
974        <img src="../figures/appstartup/staticinitilizationdrag.jpg" alt="GitHub Logo" />
975      </p>
976      <ul class="fontColor">
977        <li>
978          <pre class="smartperf-text fontColor light">
979Process / Lib: 应用名称和So名称。
980</pre
981          >
982        </li>
983        <li>
984          <pre class="smartperf-text fontColor light">
985Duration:So的耗费时长。
986</pre
987          >
988        </li>
989      </ul>
990    </div>
991
992    <script>
993      window.onload = () => {
994        let isDark = getURLParameter('dark'); 
995        let targetId = getURLParameter('targetId'); 
996        let isBack = getURLParameter('isBack'); 
997        if (isDark === 'true') {
998          document.getElementById('body').setAttribute('style', 'background-color:#272C34;');
999          let header = document.getElementsByClassName('fontColor');
1000          for (let i = 0; i < header.length; i++) {
1001            header[i].style.color = '#fff';
1002          }
1003          let lightBackGround = document.getElementsByClassName('light');
1004          for (let i = 0; i < lightBackGround.length; i++) {
1005            lightBackGround[i].style.backgroundColor = '#32373F';
1006          }
1007        }
1008        function getURLParameter(name) {  
1009          return (new URL(document.location)).searchParams.get(name);  
1010        }  
1011  
1012        if ( targetId !== null ) {
1013          let targetElement = document.getElementById(targetId);
1014          targetElement.scrollIntoView({ behavior: 'smooth' });
1015        }
1016      };
1017    </script>
1018  </body>
1019</html>
1020