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