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_Application_operation_skills</title>
6fb726d48Sopenharmony_ci
7fb726d48Sopenharmony_ci    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8fb726d48Sopenharmony_ci
9fb726d48Sopenharmony_ci    <style>
10fb726d48Sopenharmony_ci      code[class*='smartperf-'],
11fb726d48Sopenharmony_ci      pre[class*='smartperf-'] {
12fb726d48Sopenharmony_ci        color: #333333;
13fb726d48Sopenharmony_ci        background: none;
14fb726d48Sopenharmony_ci        font-family: Helvetica;
15fb726d48Sopenharmony_ci        line-height: 1.6;
16fb726d48Sopenharmony_ci        text-align: left;
17fb726d48Sopenharmony_ci        white-space: pre;
18fb726d48Sopenharmony_ci        -moz-tab-size: 9;
19fb726d48Sopenharmony_ci        -o-tab-size: 9;
20fb726d48Sopenharmony_ci        tab-size: 8;
21fb726d48Sopenharmony_ci        -webkit-hyphens: none;
22fb726d48Sopenharmony_ci        -moz-hyphens: none;
23fb726d48Sopenharmony_ci        -ms-hyphens: none;
24fb726d48Sopenharmony_ci        hyphens: none;
25fb726d48Sopenharmony_ci      }
26fb726d48Sopenharmony_ci
27fb726d48Sopenharmony_ci      /* Code blocks */
28fb726d48Sopenharmony_ci      pre[class*='smartperf-'] {
29fb726d48Sopenharmony_ci        padding: 0.9em;
30fb726d48Sopenharmony_ci        overflow: auto;
31fb726d48Sopenharmony_ci        border-radius: 2px;
32fb726d48Sopenharmony_ci        background: #f5f5f4;
33fb726d48Sopenharmony_ci      }
34fb726d48Sopenharmony_ci
35fb726d48Sopenharmony_ci      /* Inline code */
36fb726d48Sopenharmony_ci      :not(pre) > code[class*='smartperf-'] {
37fb726d48Sopenharmony_ci        white-space: normal;
38fb726d48Sopenharmony_ci        background: #fcf8f8;
39fb726d48Sopenharmony_ci        padding: 1px 0.2em;
40fb726d48Sopenharmony_ci        border-radius: 1px 0.3em;
41fb726d48Sopenharmony_ci      }
42fb726d48Sopenharmony_ci
43fb726d48Sopenharmony_ci      .tk.comment,
44fb726d48Sopenharmony_ci      .tk.blockquote {
45fb726d48Sopenharmony_ci        color: #8c918c;
46fb726d48Sopenharmony_ci      }
47fb726d48Sopenharmony_ci
48fb726d48Sopenharmony_ci      .tk.cdata {
49fb726d48Sopenharmony_ci        color: #183898;
50fb726d48Sopenharmony_ci      }
51fb726d48Sopenharmony_ci
52fb726d48Sopenharmony_ci      .tk.doctype,
53fb726d48Sopenharmony_ci      .tk.punctuation,
54fb726d48Sopenharmony_ci      .tk.variable,
55fb726d48Sopenharmony_ci      .tk.macro.property {
56fb726d48Sopenharmony_ci        color: #424242;
57fb726d48Sopenharmony_ci      }
58fb726d48Sopenharmony_ci
59fb726d48Sopenharmony_ci      .tk.operator,
60fb726d48Sopenharmony_ci      .tk.important,
61fb726d48Sopenharmony_ci      .tk.keyword,
62fb726d48Sopenharmony_ci      .tk.rule,
63fb726d48Sopenharmony_ci      .tk.builtin {
64fb726d48Sopenharmony_ci        color: #b71d65;
65fb726d48Sopenharmony_ci      }
66fb726d48Sopenharmony_ci
67fb726d48Sopenharmony_ci      .tk.string,
68fb726d48Sopenharmony_ci      .tk.url,
69fb726d48Sopenharmony_ci      .tk.regex,
70fb726d48Sopenharmony_ci      .tk.attr-value {
71fb726d48Sopenharmony_ci        color: #16338d;
72fb726d48Sopenharmony_ci      }
73fb726d48Sopenharmony_ci
74fb726d48Sopenharmony_ci      .tk.property,
75fb726d48Sopenharmony_ci      .tk.number,
76fb726d48Sopenharmony_ci      .tk.boolean,
77fb726d48Sopenharmony_ci      .tk.entity,
78fb726d48Sopenharmony_ci      .tk.atrule,
79fb726d48Sopenharmony_ci      .tk.constant,
80fb726d48Sopenharmony_ci      .tk.symbol,
81fb726d48Sopenharmony_ci      .tk.command,
82fb726d48Sopenharmony_ci      .tk.code {
83fb726d48Sopenharmony_ci        color: #037aa2;
84fb726d48Sopenharmony_ci      }
85fb726d48Sopenharmony_ci
86fb726d48Sopenharmony_ci      .tk.tag,
87fb726d48Sopenharmony_ci      .tk.selector,
88fb726d48Sopenharmony_ci      .tk.prolog {
89fb726d48Sopenharmony_ci        color: #69ad62;
90fb726d48Sopenharmony_ci      }
91fb726d48Sopenharmony_ci
92fb726d48Sopenharmony_ci      .tk.function,
93fb726d48Sopenharmony_ci      .tk.namespace,
94fb726d48Sopenharmony_ci      .tk.pseudo-element,
95fb726d48Sopenharmony_ci      .tk.class,
96fb726d48Sopenharmony_ci      .tk.class-name,
97fb726d48Sopenharmony_ci      .tk.pseudo-class,
98fb726d48Sopenharmony_ci      .tk.id,
99fb726d48Sopenharmony_ci      .tk.url-reference .tk.variable,
100fb726d48Sopenharmony_ci      .tk.attr-name {
101fb726d48Sopenharmony_ci        color: #775d9d;
102fb726d48Sopenharmony_ci      }
103fb726d48Sopenharmony_ci
104fb726d48Sopenharmony_ci      .tk.entity {
105fb726d48Sopenharmony_ci        cursor: help;
106fb726d48Sopenharmony_ci      }
107fb726d48Sopenharmony_ci
108fb726d48Sopenharmony_ci      .tk.title,
109fb726d48Sopenharmony_ci      .tk.title .tk.punctuation {
110fb726d48Sopenharmony_ci        font-weight: bold;
111fb726d48Sopenharmony_ci        color: #1a3773;
112fb726d48Sopenharmony_ci      }
113fb726d48Sopenharmony_ci
114fb726d48Sopenharmony_ci      .tk.list {
115fb726d48Sopenharmony_ci        color: #f56940;
116fb726d48Sopenharmony_ci      }
117fb726d48Sopenharmony_ci
118fb726d48Sopenharmony_ci      .tk.inserted {
119fb726d48Sopenharmony_ci        background-color: #eaffea;
120fb726d48Sopenharmony_ci        color: #509b2f;
121fb726d48Sopenharmony_ci      }
122fb726d48Sopenharmony_ci
123fb726d48Sopenharmony_ci      .tk.deleted {
124fb726d48Sopenharmony_ci        background-color: #fae1e1;
125fb726d48Sopenharmony_ci        color: #ad2d06;
126fb726d48Sopenharmony_ci      }
127fb726d48Sopenharmony_ci
128fb726d48Sopenharmony_ci      .tk.bold {
129fb726d48Sopenharmony_ci        font-weight: bolder;
130fb726d48Sopenharmony_ci      }
131fb726d48Sopenharmony_ci
132fb726d48Sopenharmony_ci      .tk.italic {
133fb726d48Sopenharmony_ci        font-style: normal;
134fb726d48Sopenharmony_ci      }
135fb726d48Sopenharmony_ci
136fb726d48Sopenharmony_ci      /* JSON */
137fb726d48Sopenharmony_ci      .smartperf-json .tk.property {
138fb726d48Sopenharmony_ci        color: #19358c;
139fb726d48Sopenharmony_ci      }
140fb726d48Sopenharmony_ci
141fb726d48Sopenharmony_ci      .smartperf-markup .tk.tag .tk.punctuation {
142fb726d48Sopenharmony_ci        color: #2c2b2b;
143fb726d48Sopenharmony_ci      }
144fb726d48Sopenharmony_ci
145fb726d48Sopenharmony_ci      /* CSS */
146fb726d48Sopenharmony_ci      code.smartperf-css,
147fb726d48Sopenharmony_ci      .smartperf-css .tk.function {
148fb726d48Sopenharmony_ci        color: #047ca4;
149fb726d48Sopenharmony_ci      }
150fb726d48Sopenharmony_ci
151fb726d48Sopenharmony_ci      /* YAML */
152fb726d48Sopenharmony_ci      .smartperf-yaml .tk.atrule {
153fb726d48Sopenharmony_ci        color: #609b5a;
154fb726d48Sopenharmony_ci      }
155fb726d48Sopenharmony_ci
156fb726d48Sopenharmony_ci      code.smartperf-yaml {
157fb726d48Sopenharmony_ci        color: #153491;
158fb726d48Sopenharmony_ci      }
159fb726d48Sopenharmony_ci
160fb726d48Sopenharmony_ci      /* Ruby */
161fb726d48Sopenharmony_ci      .smartperf-ruby .tk.function {
162fb726d48Sopenharmony_ci        color: #3f3e3e;
163fb726d48Sopenharmony_ci      }
164fb726d48Sopenharmony_ci
165fb726d48Sopenharmony_ci      /* Markdown */
166fb726d48Sopenharmony_ci      .smartperf-markdown .tk.url {
167fb726d48Sopenharmony_ci        color: #6e5298;
168fb726d48Sopenharmony_ci      }
169fb726d48Sopenharmony_ci
170fb726d48Sopenharmony_ci      /* Makefile */
171fb726d48Sopenharmony_ci      .smartperf-makefile .tk.symbol {
172fb726d48Sopenharmony_ci        color: #6c5393;
173fb726d48Sopenharmony_ci      }
174fb726d48Sopenharmony_ci
175fb726d48Sopenharmony_ci      .smartperf-makefile .tk.variable {
176fb726d48Sopenharmony_ci        color: #183488;
177fb726d48Sopenharmony_ci      }
178fb726d48Sopenharmony_ci
179fb726d48Sopenharmony_ci      .smartperf-makefile .tk.builtin {
180fb726d48Sopenharmony_ci        color: #027ba4;
181fb726d48Sopenharmony_ci      }
182fb726d48Sopenharmony_ci
183fb726d48Sopenharmony_ci      /* Bash */
184fb726d48Sopenharmony_ci      .smartperf-bash .tk.keyword {
185fb726d48Sopenharmony_ci        color: #027fa9;
186fb726d48Sopenharmony_ci      }
187fb726d48Sopenharmony_ci
188fb726d48Sopenharmony_ci      /* highlight */
189fb726d48Sopenharmony_ci      pre[dl] {
190fb726d48Sopenharmony_ci        position: relative;
191fb726d48Sopenharmony_ci        padding: 1em 1px 1px 0.9em;
192fb726d48Sopenharmony_ci      }
193fb726d48Sopenharmony_ci
194fb726d48Sopenharmony_ci      pre[dl] .line-highlight-wrapper {
195fb726d48Sopenharmony_ci        position: absolute;
196fb726d48Sopenharmony_ci        top: 1px;
197fb726d48Sopenharmony_ci        left: 1px;
198fb726d48Sopenharmony_ci        background-color: transparent;
199fb726d48Sopenharmony_ci        display: block;
200fb726d48Sopenharmony_ci        width: 99%;
201fb726d48Sopenharmony_ci      }
202fb726d48Sopenharmony_ci
203fb726d48Sopenharmony_ci      pre[dl] .line-highlight {
204fb726d48Sopenharmony_ci        position: absolute;
205fb726d48Sopenharmony_ci        left: 1px;
206fb726d48Sopenharmony_ci        right: 1px;
207fb726d48Sopenharmony_ci        padding: inherit;
208fb726d48Sopenharmony_ci        margin-top: 0.9em;
209fb726d48Sopenharmony_ci        background: hsla(25, 21%, 50%, 0.08);
210fb726d48Sopenharmony_ci        background: linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0));
211fb726d48Sopenharmony_ci        pointer-events: none;
212fb726d48Sopenharmony_ci        line-height: inherit;
213fb726d48Sopenharmony_ci        white-space: pre;
214fb726d48Sopenharmony_ci      }
215fb726d48Sopenharmony_ci
216fb726d48Sopenharmony_ci      pre[dl] .line-highlight:before,
217fb726d48Sopenharmony_ci      pre[dl] .line-highlight[data-end]:after {
218fb726d48Sopenharmony_ci        content: attr(data-start);
219fb726d48Sopenharmony_ci        position: absolute;
220fb726d48Sopenharmony_ci        text-shadow: none;
221fb726d48Sopenharmony_ci        top: 0.3em;
222fb726d48Sopenharmony_ci        left: 0.7em;
223fb726d48Sopenharmony_ci        min-width: 0.9em;
224fb726d48Sopenharmony_ci        padding: 1px 0.6em;
225fb726d48Sopenharmony_ci        background-color: hsla(24, 20%, 47%, 0.4);
226fb726d48Sopenharmony_ci        color: hsl(20, 11%, 95%);
227fb726d48Sopenharmony_ci        text-align: center;
228fb726d48Sopenharmony_ci        vertical-align: 0.2em;
229fb726d48Sopenharmony_ci        border-radius: 10000px;
230fb726d48Sopenharmony_ci        box-shadow: 1px 2px #fdf6f6;
231fb726d48Sopenharmony_ci      }
232fb726d48Sopenharmony_ci
233fb726d48Sopenharmony_ci      pre[dl] .line-highlight[data-end]:after {
234fb726d48Sopenharmony_ci        content: attr(data-end);
235fb726d48Sopenharmony_ci        top: auto;
236fb726d48Sopenharmony_ci        bottom: 0.5em;
237fb726d48Sopenharmony_ci      }
238fb726d48Sopenharmony_ci
239fb726d48Sopenharmony_ci      html body {
240fb726d48Sopenharmony_ci        line-height: 1.6;
241fb726d48Sopenharmony_ci        font-size: 16px;
242fb726d48Sopenharmony_ci        color: #333333;
243fb726d48Sopenharmony_ci        overflow: initial;
244fb726d48Sopenharmony_ci        word-wrap: break-word;
245fb726d48Sopenharmony_ci        font-family: Helvetica;
246fb726d48Sopenharmony_ci        box-sizing: border-box;
247fb726d48Sopenharmony_ci      }
248fb726d48Sopenharmony_ci
249fb726d48Sopenharmony_ci      html body > :first-child {
250fb726d48Sopenharmony_ci        margin-top: 0px;
251fb726d48Sopenharmony_ci      }
252fb726d48Sopenharmony_ci
253fb726d48Sopenharmony_ci      html body h1,
254fb726d48Sopenharmony_ci      html body h2,
255fb726d48Sopenharmony_ci      html body h3,
256fb726d48Sopenharmony_ci      html body h4,
257fb726d48Sopenharmony_ci      html body h5,
258fb726d48Sopenharmony_ci      html body h6 {
259fb726d48Sopenharmony_ci        margin-top: 1em;
260fb726d48Sopenharmony_ci        margin-bottom: 16px;
261fb726d48Sopenharmony_ci        color: #000000;
262fb726d48Sopenharmony_ci        line-height: 1.2;
263fb726d48Sopenharmony_ci      }
264fb726d48Sopenharmony_ci
265fb726d48Sopenharmony_ci      html body h1 {
266fb726d48Sopenharmony_ci        font-weight: 300;
267fb726d48Sopenharmony_ci        font-size: 2.25em;
268fb726d48Sopenharmony_ci        padding-bottom: 0.3em;
269fb726d48Sopenharmony_ci      }
270fb726d48Sopenharmony_ci
271fb726d48Sopenharmony_ci      html body h2 {
272fb726d48Sopenharmony_ci        font-weight: 410;
273fb726d48Sopenharmony_ci        font-size: 1.74em;
274fb726d48Sopenharmony_ci        padding-bottom: 0.2em;
275fb726d48Sopenharmony_ci      }
276fb726d48Sopenharmony_ci
277fb726d48Sopenharmony_ci      html body h3 {
278fb726d48Sopenharmony_ci        font-size: 1.6em;
279fb726d48Sopenharmony_ci        font-weight: 501;
280fb726d48Sopenharmony_ci      }
281fb726d48Sopenharmony_ci
282fb726d48Sopenharmony_ci      html body h4 {
283fb726d48Sopenharmony_ci        font-size: 1.26em;
284fb726d48Sopenharmony_ci        font-weight: 601;
285fb726d48Sopenharmony_ci      }
286fb726d48Sopenharmony_ci
287fb726d48Sopenharmony_ci      html body h5 {
288fb726d48Sopenharmony_ci        font-size: 1.2em;
289fb726d48Sopenharmony_ci        font-weight: 601;
290fb726d48Sopenharmony_ci      }
291fb726d48Sopenharmony_ci
292fb726d48Sopenharmony_ci      html body h6 {
293fb726d48Sopenharmony_ci        font-size: 0.9em;
294fb726d48Sopenharmony_ci        font-weight: 601;
295fb726d48Sopenharmony_ci      }
296fb726d48Sopenharmony_ci
297fb726d48Sopenharmony_ci      html body h1,
298fb726d48Sopenharmony_ci      html body h2,
299fb726d48Sopenharmony_ci      html body h3,
300fb726d48Sopenharmony_ci      html body h4,
301fb726d48Sopenharmony_ci      html body h5 {
302fb726d48Sopenharmony_ci        font-weight: 601;
303fb726d48Sopenharmony_ci      }
304fb726d48Sopenharmony_ci
305fb726d48Sopenharmony_ci      html body h5 {
306fb726d48Sopenharmony_ci        font-size: 0.9em;
307fb726d48Sopenharmony_ci      }
308fb726d48Sopenharmony_ci
309fb726d48Sopenharmony_ci      html body h6 {
310fb726d48Sopenharmony_ci        color: #5c5c5c;
311fb726d48Sopenharmony_ci      }
312fb726d48Sopenharmony_ci
313fb726d48Sopenharmony_ci      html body strong {
314fb726d48Sopenharmony_ci        color: #090909;
315fb726d48Sopenharmony_ci      }
316fb726d48Sopenharmony_ci
317fb726d48Sopenharmony_ci      html body del {
318fb726d48Sopenharmony_ci        color: #525252;
319fb726d48Sopenharmony_ci      }
320fb726d48Sopenharmony_ci
321fb726d48Sopenharmony_ci      html body a:not([href]) {
322fb726d48Sopenharmony_ci        color: inherit;
323fb726d48Sopenharmony_ci        text-decoration: none;
324fb726d48Sopenharmony_ci      }
325fb726d48Sopenharmony_ci
326fb726d48Sopenharmony_ci      html body a {
327fb726d48Sopenharmony_ci        color: #0192da;
328fb726d48Sopenharmony_ci        text-decoration: none;
329fb726d48Sopenharmony_ci      }
330fb726d48Sopenharmony_ci
331fb726d48Sopenharmony_ci      html body a:hover {
332fb726d48Sopenharmony_ci        color: #029dea;
333fb726d48Sopenharmony_ci        text-decoration: none;
334fb726d48Sopenharmony_ci      }
335fb726d48Sopenharmony_ci
336fb726d48Sopenharmony_ci      html body img {
337fb726d48Sopenharmony_ci        max-width: 99%;
338fb726d48Sopenharmony_ci      }
339fb726d48Sopenharmony_ci
340fb726d48Sopenharmony_ci      html body > p {
341fb726d48Sopenharmony_ci        margin-top: 1px;
342fb726d48Sopenharmony_ci        margin-bottom: 15px;
343fb726d48Sopenharmony_ci        word-wrap: break-word;
344fb726d48Sopenharmony_ci      }
345fb726d48Sopenharmony_ci
346fb726d48Sopenharmony_ci      html body > ul,
347fb726d48Sopenharmony_ci      html body > ol {
348fb726d48Sopenharmony_ci        margin-bottom: 15px;
349fb726d48Sopenharmony_ci      }
350fb726d48Sopenharmony_ci
351fb726d48Sopenharmony_ci      html body ul,
352fb726d48Sopenharmony_ci      html body ol {
353fb726d48Sopenharmony_ci        padding-left: 1.9em;
354fb726d48Sopenharmony_ci      }
355fb726d48Sopenharmony_ci
356fb726d48Sopenharmony_ci      html body ul.no-list,
357fb726d48Sopenharmony_ci      html body ol.no-list {
358fb726d48Sopenharmony_ci        padding: 0px;
359fb726d48Sopenharmony_ci        list-style-type: none;
360fb726d48Sopenharmony_ci      }
361fb726d48Sopenharmony_ci
362fb726d48Sopenharmony_ci      html body ul ul,
363fb726d48Sopenharmony_ci      html body ul ol,
364fb726d48Sopenharmony_ci      html body ol ol,
365fb726d48Sopenharmony_ci      html body ol ul {
366fb726d48Sopenharmony_ci        margin-top: 1px;
367fb726d48Sopenharmony_ci        margin-bottom: 1px;
368fb726d48Sopenharmony_ci      }
369fb726d48Sopenharmony_ci
370fb726d48Sopenharmony_ci      html body li {
371fb726d48Sopenharmony_ci        margin-bottom: 1px;
372fb726d48Sopenharmony_ci      }
373fb726d48Sopenharmony_ci
374fb726d48Sopenharmony_ci      html body li.task-list-item {
375fb726d48Sopenharmony_ci        list-style: none;
376fb726d48Sopenharmony_ci      }
377fb726d48Sopenharmony_ci
378fb726d48Sopenharmony_ci      html body li > p {
379fb726d48Sopenharmony_ci        margin-top: 1px;
380fb726d48Sopenharmony_ci        margin-bottom: 1px;
381fb726d48Sopenharmony_ci      }
382fb726d48Sopenharmony_ci
383fb726d48Sopenharmony_ci      html body .task-list-item-checkbox {
384fb726d48Sopenharmony_ci        margin: 0 0.3em 0.24em -1.7em;
385fb726d48Sopenharmony_ci        vertical-align: middle;
386fb726d48Sopenharmony_ci      }
387fb726d48Sopenharmony_ci
388fb726d48Sopenharmony_ci      html body .task-list-item-checkbox:hover {
389fb726d48Sopenharmony_ci        cursor: pointer;
390fb726d48Sopenharmony_ci      }
391fb726d48Sopenharmony_ci
392fb726d48Sopenharmony_ci      html body blockquote {
393fb726d48Sopenharmony_ci        padding: 0.1px 15px 0 0.1px;
394fb726d48Sopenharmony_ci        font-size: inherit;
395fb726d48Sopenharmony_ci        color: #5c5c5c;
396fb726d48Sopenharmony_ci        margin: 16px 0.1px 0 0.1px;
397fb726d48Sopenharmony_ci        border-left: 3px solid #cbc9c9;
398fb726d48Sopenharmony_ci        background-color: #e8e6e6;
399fb726d48Sopenharmony_ci      }
400fb726d48Sopenharmony_ci
401fb726d48Sopenharmony_ci      html body blockquote > :first-child {
402fb726d48Sopenharmony_ci        margin-top: 0.2px;
403fb726d48Sopenharmony_ci      }
404fb726d48Sopenharmony_ci
405fb726d48Sopenharmony_ci      html body blockquote > :last-child {
406fb726d48Sopenharmony_ci        margin-bottom: 0.1px;
407fb726d48Sopenharmony_ci      }
408fb726d48Sopenharmony_ci
409fb726d48Sopenharmony_ci      html body hr {
410fb726d48Sopenharmony_ci        height: 5px;
411fb726d48Sopenharmony_ci        background-color: #cbcaca;
412fb726d48Sopenharmony_ci        margin: 32px 0 0.1px 0;
413fb726d48Sopenharmony_ci        border: 0 none;
414fb726d48Sopenharmony_ci      }
415fb726d48Sopenharmony_ci
416fb726d48Sopenharmony_ci      html body table {
417fb726d48Sopenharmony_ci        overflow: auto;
418fb726d48Sopenharmony_ci        border-collapse: collapse;
419fb726d48Sopenharmony_ci        margin: 15px 0.1px 20px 0.1px;
420fb726d48Sopenharmony_ci        border-spacing: 0;
421fb726d48Sopenharmony_ci      }
422fb726d48Sopenharmony_ci
423fb726d48Sopenharmony_ci      html body table th {
424fb726d48Sopenharmony_ci        font-weight: bold;
425fb726d48Sopenharmony_ci        color: #000000;
426fb726d48Sopenharmony_ci      }
427fb726d48Sopenharmony_ci
428fb726d48Sopenharmony_ci      html body table td,
429fb726d48Sopenharmony_ci      html body table th {
430fb726d48Sopenharmony_ci        border: 1px solid #d6d6d6;
431fb726d48Sopenharmony_ci        padding: 2px 14px;
432fb726d48Sopenharmony_ci      }
433fb726d48Sopenharmony_ci
434fb726d48Sopenharmony_ci      html body dl {
435fb726d48Sopenharmony_ci        padding: 0px;
436fb726d48Sopenharmony_ci      }
437fb726d48Sopenharmony_ci
438fb726d48Sopenharmony_ci      html body dl dt {
439fb726d48Sopenharmony_ci        padding: 0px;
440fb726d48Sopenharmony_ci        margin-top: 15px;
441fb726d48Sopenharmony_ci        font-size: 0.9em;
442fb726d48Sopenharmony_ci        font-style: italic;
443fb726d48Sopenharmony_ci        font-weight: bold;
444fb726d48Sopenharmony_ci      }
445fb726d48Sopenharmony_ci
446fb726d48Sopenharmony_ci      html body dl dd {
447fb726d48Sopenharmony_ci        padding: 0px 17px;
448fb726d48Sopenharmony_ci        margin-bottom: 17px;
449fb726d48Sopenharmony_ci      }
450fb726d48Sopenharmony_ci
451fb726d48Sopenharmony_ci      html body code {
452fb726d48Sopenharmony_ci        font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
453fb726d48Sopenharmony_ci        font-size: 0.86em !important;
454fb726d48Sopenharmony_ci        color: #000000;
455fb726d48Sopenharmony_ci        background-color: #f0f0f0;
456fb726d48Sopenharmony_ci        border-radius: 4px;
457fb726d48Sopenharmony_ci        padding: 0.3em 0px;
458fb726d48Sopenharmony_ci      }
459fb726d48Sopenharmony_ci
460fb726d48Sopenharmony_ci      html body code::before,
461fb726d48Sopenharmony_ci      html body code::after {
462fb726d48Sopenharmony_ci        letter-spacing: -0.1em;
463fb726d48Sopenharmony_ci        content: '\00a0';
464fb726d48Sopenharmony_ci      }
465fb726d48Sopenharmony_ci
466fb726d48Sopenharmony_ci      html body pre > code {
467fb726d48Sopenharmony_ci        padding: 1px;
468fb726d48Sopenharmony_ci        margin: 0px;
469fb726d48Sopenharmony_ci        font-size: 0.86em !important;
470fb726d48Sopenharmony_ci        word-break: normal;
471fb726d48Sopenharmony_ci        white-space: pre;
472fb726d48Sopenharmony_ci        background: transparent;
473fb726d48Sopenharmony_ci        border: 0px;
474fb726d48Sopenharmony_ci      }
475fb726d48Sopenharmony_ci
476fb726d48Sopenharmony_ci      html body .highlight {
477fb726d48Sopenharmony_ci        margin-bottom: 17px;
478fb726d48Sopenharmony_ci      }
479fb726d48Sopenharmony_ci
480fb726d48Sopenharmony_ci      html body .highlight pre,
481fb726d48Sopenharmony_ci      html body pre {
482fb726d48Sopenharmony_ci        padding: 0.9em;
483fb726d48Sopenharmony_ci        overflow: auto;
484fb726d48Sopenharmony_ci        font-size: 0.86em !important;
485fb726d48Sopenharmony_ci        line-height: 1.46;
486fb726d48Sopenharmony_ci        border: #d6d6d6;
487fb726d48Sopenharmony_ci        border-radius: 4px;
488fb726d48Sopenharmony_ci      }
489fb726d48Sopenharmony_ci
490fb726d48Sopenharmony_ci      html body .highlight pre {
491fb726d48Sopenharmony_ci        margin-bottom: 0px;
492fb726d48Sopenharmony_ci        word-break: normal;
493fb726d48Sopenharmony_ci      }
494fb726d48Sopenharmony_ci
495fb726d48Sopenharmony_ci      html body pre code,
496fb726d48Sopenharmony_ci      html body pre tt {
497fb726d48Sopenharmony_ci        display: inline;
498fb726d48Sopenharmony_ci        max-width: initial;
499fb726d48Sopenharmony_ci        padding: 1px;
500fb726d48Sopenharmony_ci        margin: 1px;
501fb726d48Sopenharmony_ci        overflow: initial;
502fb726d48Sopenharmony_ci        line-height: inherit;
503fb726d48Sopenharmony_ci        word-wrap: normal;
504fb726d48Sopenharmony_ci        background-color: transparent;
505fb726d48Sopenharmony_ci        border: 1px;
506fb726d48Sopenharmony_ci      }
507fb726d48Sopenharmony_ci
508fb726d48Sopenharmony_ci      html body pre code:before,
509fb726d48Sopenharmony_ci      html body pre tt:before,
510fb726d48Sopenharmony_ci      html body pre code:after,
511fb726d48Sopenharmony_ci      html body pre tt:after {
512fb726d48Sopenharmony_ci        content: normal;
513fb726d48Sopenharmony_ci      }
514fb726d48Sopenharmony_ci
515fb726d48Sopenharmony_ci      html body p,
516fb726d48Sopenharmony_ci      html body blockquote,
517fb726d48Sopenharmony_ci      html body ul,
518fb726d48Sopenharmony_ci      html body ol,
519fb726d48Sopenharmony_ci      html body dl,
520fb726d48Sopenharmony_ci      html body pre {
521fb726d48Sopenharmony_ci        margin-top: 1px;
522fb726d48Sopenharmony_ci        margin-bottom: 17px;
523fb726d48Sopenharmony_ci      }
524fb726d48Sopenharmony_ci
525fb726d48Sopenharmony_ci      html body kbd {
526fb726d48Sopenharmony_ci        color: #000000;
527fb726d48Sopenharmony_ci        border: 3px solid #d6d6d6;
528fb726d48Sopenharmony_ci        border-bottom: 3px solid #c7c7c7;
529fb726d48Sopenharmony_ci        padding: 3px 5px;
530fb726d48Sopenharmony_ci        background-color: #f0f0f0;
531fb726d48Sopenharmony_ci        border-radius: 2px;
532fb726d48Sopenharmony_ci      }
533fb726d48Sopenharmony_ci
534fb726d48Sopenharmony_ci      @media print {
535fb726d48Sopenharmony_ci        html body {
536fb726d48Sopenharmony_ci          background-color: #ffffff;
537fb726d48Sopenharmony_ci        }
538fb726d48Sopenharmony_ci
539fb726d48Sopenharmony_ci        html body h1,
540fb726d48Sopenharmony_ci        html body h2,
541fb726d48Sopenharmony_ci        html body h3,
542fb726d48Sopenharmony_ci        html body h4,
543fb726d48Sopenharmony_ci        html body h5,
544fb726d48Sopenharmony_ci        html body h6 {
545fb726d48Sopenharmony_ci          color: #000000;
546fb726d48Sopenharmony_ci          page-break-after: avoid;
547fb726d48Sopenharmony_ci        }
548fb726d48Sopenharmony_ci
549fb726d48Sopenharmony_ci        html body blockquote {
550fb726d48Sopenharmony_ci          color: #5c5c53;
551fb726d48Sopenharmony_ci        }
552fb726d48Sopenharmony_ci
553fb726d48Sopenharmony_ci        html body pre {
554fb726d48Sopenharmony_ci          page-break-inside: avoid;
555fb726d48Sopenharmony_ci        }
556fb726d48Sopenharmony_ci
557fb726d48Sopenharmony_ci        html body table {
558fb726d48Sopenharmony_ci          display: table;
559fb726d48Sopenharmony_ci        }
560fb726d48Sopenharmony_ci
561fb726d48Sopenharmony_ci        html body img {
562fb726d48Sopenharmony_ci          display: block;
563fb726d48Sopenharmony_ci          max-width: 99%;
564fb726d48Sopenharmony_ci          max-height: 99%;
565fb726d48Sopenharmony_ci        }
566fb726d48Sopenharmony_ci
567fb726d48Sopenharmony_ci        html body pre,
568fb726d48Sopenharmony_ci        html body code {
569fb726d48Sopenharmony_ci          word-wrap: break-word;
570fb726d48Sopenharmony_ci          white-space: pre;
571fb726d48Sopenharmony_ci        }
572fb726d48Sopenharmony_ci      }
573fb726d48Sopenharmony_ci
574fb726d48Sopenharmony_ci      .smartperf-preview {
575fb726d48Sopenharmony_ci        width: 68vw;
576fb726d48Sopenharmony_ci        height: 99%;
577fb726d48Sopenharmony_ci        box-sizing: border-box;
578fb726d48Sopenharmony_ci        overflow: hidden;
579fb726d48Sopenharmony_ci        background-color: #fff;
580fb726d48Sopenharmony_ci      }
581fb726d48Sopenharmony_ci
582fb726d48Sopenharmony_ci      .smartperf-preview .pagebreak,
583fb726d48Sopenharmony_ci      .smartperf-preview .newpage {
584fb726d48Sopenharmony_ci        page-break-before: always;
585fb726d48Sopenharmony_ci      }
586fb726d48Sopenharmony_ci
587fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers {
588fb726d48Sopenharmony_ci        position: relative;
589fb726d48Sopenharmony_ci        padding-left: 3.7em;
590fb726d48Sopenharmony_ci        counter-reset: linenumber;
591fb726d48Sopenharmony_ci      }
592fb726d48Sopenharmony_ci
593fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers > code {
594fb726d48Sopenharmony_ci        position: relative;
595fb726d48Sopenharmony_ci      }
596fb726d48Sopenharmony_ci
597fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers .line-numbers-rows {
598fb726d48Sopenharmony_ci        position: absolute;
599fb726d48Sopenharmony_ci        pointer-events: none;
600fb726d48Sopenharmony_ci        top: 0.9em;
601fb726d48Sopenharmony_ci        font-size: 99%;
602fb726d48Sopenharmony_ci        left: 1px;
603fb726d48Sopenharmony_ci        width: 3em;
604fb726d48Sopenharmony_ci        letter-spacing: -1px;
605fb726d48Sopenharmony_ci        border-right: 1px solid #999;
606fb726d48Sopenharmony_ci        -webkit-user-select: none;
607fb726d48Sopenharmony_ci        -moz-user-select: none;
608fb726d48Sopenharmony_ci        -ms-user-select: none;
609fb726d48Sopenharmony_ci        user-select: none;
610fb726d48Sopenharmony_ci      }
611fb726d48Sopenharmony_ci
612fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers .line-numbers-rows > span {
613fb726d48Sopenharmony_ci        pointer-events: none;
614fb726d48Sopenharmony_ci        display: block;
615fb726d48Sopenharmony_ci        counter-increment: linenumber;
616fb726d48Sopenharmony_ci      }
617fb726d48Sopenharmony_ci
618fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers .line-numbers-rows > span:before {
619fb726d48Sopenharmony_ci        content: counter(linenumber);
620fb726d48Sopenharmony_ci        color: #999;
621fb726d48Sopenharmony_ci        display: block;
622fb726d48Sopenharmony_ci        padding-right: 0.79em;
623fb726d48Sopenharmony_ci        text-align: right;
624fb726d48Sopenharmony_ci      }
625fb726d48Sopenharmony_ci
626fb726d48Sopenharmony_ci      .smartperf-preview .mathjax-exps .MathJax_Display {
627fb726d48Sopenharmony_ci        text-align: center !important;
628fb726d48Sopenharmony_ci      }
629fb726d48Sopenharmony_ci
630fb726d48Sopenharmony_ci      .smartperf-preview:not([for='preview']) .code-chunk .btn-group {
631fb726d48Sopenharmony_ci        display: none;
632fb726d48Sopenharmony_ci      }
633fb726d48Sopenharmony_ci
634fb726d48Sopenharmony_ci      .smartperf-preview:not([for='preview']) .code-chunk .status {
635fb726d48Sopenharmony_ci        display: none;
636fb726d48Sopenharmony_ci      }
637fb726d48Sopenharmony_ci
638fb726d48Sopenharmony_ci      .smartperf-preview:not([for='preview']) .code-chunk .output-div {
639fb726d48Sopenharmony_ci        margin-bottom: 16px;
640fb726d48Sopenharmony_ci      }
641fb726d48Sopenharmony_ci
642fb726d48Sopenharmony_ci      .scrollbar-style::-webkit-scrollbar {
643fb726d48Sopenharmony_ci        width: 8px;
644fb726d48Sopenharmony_ci      }
645fb726d48Sopenharmony_ci
646fb726d48Sopenharmony_ci      .scrollbar-style::-webkit-scrollbar-track {
647fb726d48Sopenharmony_ci        border-radius: 9px;
648fb726d48Sopenharmony_ci        background-color: transparent;
649fb726d48Sopenharmony_ci      }
650fb726d48Sopenharmony_ci
651fb726d48Sopenharmony_ci      .scrollbar-style::-webkit-scrollbar-thumb {
652fb726d48Sopenharmony_ci        border-radius: 6px;
653fb726d48Sopenharmony_ci        background-color: rgba(150, 150, 150, 1);
654fb726d48Sopenharmony_ci        border: 4px solid rgba(150, 150, 150, 1);
655fb726d48Sopenharmony_ci        background-clip: content-box;
656fb726d48Sopenharmony_ci      }
657fb726d48Sopenharmony_ci
658fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]) {
659fb726d48Sopenharmony_ci        position: relative;
660fb726d48Sopenharmony_ci        width: 99%;
661fb726d48Sopenharmony_ci        height: 99%;;
662fb726d48Sopenharmony_ci        overflow: auto;
663fb726d48Sopenharmony_ci      }
664fb726d48Sopenharmony_ci
665fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]) .smartperf-preview {
666fb726d48Sopenharmony_ci        position: relative;
667fb726d48Sopenharmony_ci        top: 1px;
668fb726d48Sopenharmony_ci      }
669fb726d48Sopenharmony_ci
670fb726d48Sopenharmony_ci      @media screen and (min-width: 914px) {
671fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) .smartperf-preview {
672fb726d48Sopenharmony_ci          padding: 2em;
673fb726d48Sopenharmony_ci        }
674fb726d48Sopenharmony_ci      }
675fb726d48Sopenharmony_ci
676fb726d48Sopenharmony_ci      @media screen and (max-width: 914px) {
677fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) .smartperf-preview {
678fb726d48Sopenharmony_ci          padding: 1.9em;
679fb726d48Sopenharmony_ci        }
680fb726d48Sopenharmony_ci      }
681fb726d48Sopenharmony_ci
682fb726d48Sopenharmony_ci      @media screen and (max-width: 450px) {
683fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) .smartperf-preview {
684fb726d48Sopenharmony_ci          font-size: 15px !important;
685fb726d48Sopenharmony_ci          padding: 1.1em;
686fb726d48Sopenharmony_ci        }
687fb726d48Sopenharmony_ci      }
688fb726d48Sopenharmony_ci
689fb726d48Sopenharmony_ci      @media print {
690fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
691fb726d48Sopenharmony_ci          display: none;
692fb726d48Sopenharmony_ci        }
693fb726d48Sopenharmony_ci      }
694fb726d48Sopenharmony_ci
695fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
696fb726d48Sopenharmony_ci        position: fixed;
697fb726d48Sopenharmony_ci        bottom: 9px;
698fb726d48Sopenharmony_ci        left: 9px;
699fb726d48Sopenharmony_ci        font-size: 28px;
700fb726d48Sopenharmony_ci        cursor: pointer;
701fb726d48Sopenharmony_ci        color: inherit;
702fb726d48Sopenharmony_ci        z-index: 99;
703fb726d48Sopenharmony_ci        width: 31px;
704fb726d48Sopenharmony_ci        text-align: center;
705fb726d48Sopenharmony_ci        opacity: 0.5;
706fb726d48Sopenharmony_ci      }
707fb726d48Sopenharmony_ci
708fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] #sidebar-toc-btn {
709fb726d48Sopenharmony_ci        opacity: 1;
710fb726d48Sopenharmony_ci      }
711fb726d48Sopenharmony_ci
712fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc {
713fb726d48Sopenharmony_ci        position: fixed;
714fb726d48Sopenharmony_ci        top: 1px;
715fb726d48Sopenharmony_ci        left: 1px;
716fb726d48Sopenharmony_ci        width: 300px;
717fb726d48Sopenharmony_ci        height: 99%;
718fb726d48Sopenharmony_ci        padding: 32px 0 48px 0;
719fb726d48Sopenharmony_ci        font-size: 14px;
720fb726d48Sopenharmony_ci        box-shadow: 1px 1px 4px rgba(150, 150, 150, 0.33);
721fb726d48Sopenharmony_ci        box-sizing: border-box;
722fb726d48Sopenharmony_ci        overflow: auto;
723fb726d48Sopenharmony_ci        background-color: inherit;
724fb726d48Sopenharmony_ci      }
725fb726d48Sopenharmony_ci
726fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar {
727fb726d48Sopenharmony_ci        width: 9px;
728fb726d48Sopenharmony_ci      }
729fb726d48Sopenharmony_ci
730fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-track {
731fb726d48Sopenharmony_ci        border-radius: 11px;
732fb726d48Sopenharmony_ci        background-color: transparent;
733fb726d48Sopenharmony_ci      }
734fb726d48Sopenharmony_ci
735fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-thumb {
736fb726d48Sopenharmony_ci        border-radius: 6px;
737fb726d48Sopenharmony_ci        background-color: rgba(150, 150, 150, 0.66);
738fb726d48Sopenharmony_ci        border: 3px solid rgba(150, 150, 150, 0.66);
739fb726d48Sopenharmony_ci        background-clip: content-box;
740fb726d48Sopenharmony_ci      }
741fb726d48Sopenharmony_ci
742fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc a {
743fb726d48Sopenharmony_ci        text-decoration: none;
744fb726d48Sopenharmony_ci      }
745fb726d48Sopenharmony_ci
746fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
747fb726d48Sopenharmony_ci        padding: 1px 1.7em;
748fb726d48Sopenharmony_ci        margin-top: 0.9em;
749fb726d48Sopenharmony_ci      }
750fb726d48Sopenharmony_ci
751fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc li {
752fb726d48Sopenharmony_ci        margin-bottom: 0.8em;
753fb726d48Sopenharmony_ci      }
754fb726d48Sopenharmony_ci
755fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
756fb726d48Sopenharmony_ci        list-style-type: none;
757fb726d48Sopenharmony_ci      }
758fb726d48Sopenharmony_ci
759fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
760fb726d48Sopenharmony_ci        left: 301px;
761fb726d48Sopenharmony_ci        width: calc(100% - 300px);
762fb726d48Sopenharmony_ci        padding: 2em calc(50% - 457px - 150px);
763fb726d48Sopenharmony_ci        margin: 1px;
764fb726d48Sopenharmony_ci        box-sizing: border-box;
765fb726d48Sopenharmony_ci      }
766fb726d48Sopenharmony_ci
767fb726d48Sopenharmony_ci      @media screen and (max-width: 1274px) {
768fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
769fb726d48Sopenharmony_ci          padding: 1.9em;
770fb726d48Sopenharmony_ci        }
771fb726d48Sopenharmony_ci      }
772fb726d48Sopenharmony_ci
773fb726d48Sopenharmony_ci      @media screen and (max-width: 450px) {
774fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
775fb726d48Sopenharmony_ci          width: 99%;
776fb726d48Sopenharmony_ci        }
777fb726d48Sopenharmony_ci      }
778fb726d48Sopenharmony_ci
779fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]):not([hsst]) .md-sidebar-toc {
780fb726d48Sopenharmony_ci        display: none;
781fb726d48Sopenharmony_ci      }
782fb726d48Sopenharmony_ci    </style>
783fb726d48Sopenharmony_ci  </head>
784fb726d48Sopenharmony_ci  <body for="html-export" id="body" style="margin:0">
785fb726d48Sopenharmony_ci    <div class="smartperf smartperf-preview" style="min-height: 99vh;">
786fb726d48Sopenharmony_ci    <h2 class="mume-header fontColor">应用操作技巧</h2>
787fb726d48Sopenharmony_ci
788fb726d48Sopenharmony_ci    <p class="fontColor">应用操作技巧主要展示各个小模块的使用技巧。</p>
789fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-1">可导入符号表</h3>
790fb726d48Sopenharmony_ci
791fb726d48Sopenharmony_ci    <p class="fontColor">符号表导入适用于所有支持调用栈的 Tab 页,创建文件夹,然后将需要导入的so文件放进文件夹内,在导入时,选择该文件夹即可,这样,系统将会获取到该文件夹内所有的so文件,更新数据库中符号数据。文件夹内 so 的格式需要与在设备上的路径一致,例如下图中,选择的文件夹为 import,选择导入的 libnative_hook.z.so,在设备上的路径是/system/lib64/,那么在本地选择的文件夹内也需要保证路径是 import/system/lib64/libnative_hook.z.so。<br>
792fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/Operation_soimport_dir.jpg" alt="GitHub Logo"><br>
793fb726d48Sopenharmony_ci      以 NativeMemory 举例,导入 NativeMemory 文件,点击 Call info 的 Tab 页,在搜索框中输入 libnative_hook.z.so,会发现该 so 下的调用栈没有符号化完全。<br>
794fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/Operation_soimport_nativehook.jpg" alt="GitHub Logo"><br>
795fb726d48Sopenharmony_ci      将本地编译的 so 通过导入按钮导入,本地导入路径是 import/system/lib64/libnative_hook.z.so,红框处是导入按钮。<br>
796fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/Operation_soimport_local.jpg" alt="GitHub Logo"><br>
797fb726d48Sopenharmony_ci      导入 so 以后,在搜索框中输入 libnative_hook.z.so,会发现符号化数据已经更新。<br>
798fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/Operation_soimport_new.jpg" alt="GitHub Logo">
799fb726d48Sopenharmony_ci    </p>
800fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-2">网页连接文件打开接口</h3>
801fb726d48Sopenharmony_ci
802fb726d48Sopenharmony_ci    <p class="fontColor">网页连接文件打开接口可以在网址后增加文件地址,打开后直接打开 trace。<br>
803fb726d48Sopenharmony_ci      接口的 url 路径如下:<br>
804fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/Opertion_urltrace.jpg" alt="GitHub Logo"></p>
805fb726d48Sopenharmony_ci    <ul class="fontColor">
806fb726d48Sopenharmony_ci      <li>
807fb726d48Sopenharmony_ci        <pre class="smartperf-text fontColor light">蓝色框:是Smartperf工具的url(https://localhost:9000/application/)。</pre>
808fb726d48Sopenharmony_ci      </li>
809fb726d48Sopenharmony_ci      <li>
810fb726d48Sopenharmony_ci        <pre class="smartperf-text fontColor light">绿色框:trace文件的url,其中
811fb726d48Sopenharmony_ci              第一部分是?trace=(固定格式)。
812fb726d48Sopenharmony_ci              第二部分是trace文件的url(https://iot.itocm.com:9001/upload/ftrace_small.txt),此处根据文件的url实际地址填写。
813fb726d48Sopenharmony_ci              第三部分,&amp;link=true(固定格式)。
814fb726d48Sopenharmony_ci        </pre>
815fb726d48Sopenharmony_ci      </li>
816fb726d48Sopenharmony_ci    </ul>
817fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-3">内容支持宽度可伸缩</h3>
818fb726d48Sopenharmony_ci
819fb726d48Sopenharmony_ci    <p class="fontColor">在表格每行的表头添加一个灰色竖线,拖动时单元格宽度随之改变。<br>
820fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/Tabdrag.jpg" alt="GitHub Logo">
821fb726d48Sopenharmony_ci    </p>
822fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-4">一键展开和收起,逐级展开和收起</h3>
823fb726d48Sopenharmony_ci
824fb726d48Sopenharmony_ci    <p class="fontColor">将树形表格全部改为默认收起,在表头左上角添加双尖箭头图标,默认箭头朝外,点击图标,表格的每一层都展开,图标上的箭头改为朝里面,再次点击表格每一层都收起,图标上的箭头改为朝外面。<br>
825fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/Taboneclick.jpg" alt="GitHub Logo">
826fb726d48Sopenharmony_ci    </p>
827fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-5">支持 shift+m 多次框选,框选列表显示和操作(跳转,取消),快捷键跳转 ctrl+[/]和一键取消</h3>
828fb726d48Sopenharmony_ci
829fb726d48Sopenharmony_ci    <p class="fontColor">每次框选泳道图后,按下 shift+m 键,在当前框选的开始和结束位置出现卡尺,如果只按下 m 键,会将上一次按 m 键出现的卡尺清除,在当前框选位置画卡尺,页面上每个卡尺都放进 tab 页中,在 tab 页中可以给卡尺改变颜色和移除旗子。用快捷键改变当前选中的卡尺。按下快捷键“ctrl+[”或“ctrl+]”的时候,会跳转到当前选中卡尺的上\下一个卡尺上,也就是上\下一个卡尺两侧变为实心,对应表格中的那行背景颜色变浅蓝色。</p>
830fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-6">旗子标记可快速跳转,框选列表显示和操作(跳转,取消),快捷跳转 ctrl+,/.和一键取消</h3>
831fb726d48Sopenharmony_ci
832fb726d48Sopenharmony_ci    <p class="fontColor">在时间刻度下方点击会出现旗子和 tab 页,每次点击都将旗子都放进 tab 页中,在 tab 页中可以给旗子改变颜色和移除旗子。用快捷键改变当前选中的旗子。按下快捷键“ctrl+,”或“ctrl+.”的时候,会跳转到当前选中旗子的上\下一个旗子上,也就是上\下一个旗子变为实心有旗杆,对应表格中的那行背景颜色变浅蓝色。<br>
833fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/rowskillflag.jpg" alt="GitHub Logo">
834fb726d48Sopenharmony_ci    </p>
835fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-7">泳道图支持一键收起和展开(收起前的状态)</h3>
836fb726d48Sopenharmony_ci
837fb726d48Sopenharmony_ci    <p class="fontColor">点击时间刻度的最左边的双箭头,可以对已展开的泳道图进行一键收起和展开。<br>
838fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/rowskilon.jpg" alt="GitHub Logo">
839fb726d48Sopenharmony_ci    </p>
840fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-8">单个泳道图显示为多行时可折叠为 1 行(收藏和非收藏)</h3>
841fb726d48Sopenharmony_ci
842fb726d48Sopenharmony_ci    <p class="fontColor">单个泳道图点击会将泳道图折叠为一行,折腾后的字体是蓝色。<br>
843fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/Tabskillfold.jpg" alt="GitHub Logo">
844fb726d48Sopenharmony_ci    </p>
845fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-9">已支持的泳道图按照模板分类显示,NaitveMemory,Hisysevent,应用内存等</h3>
846fb726d48Sopenharmony_ci
847fb726d48Sopenharmony_ci    <p class="fontColor">导入 trace 文件后,页面右上角的出现漏斗图标,点击会出现 Display Template 页面,Template Select 区域显示已经添加到显示模板中的泳道图,每类泳道图后面会有一个多选框,默认不勾选,如果勾选页面上就只保留勾选的泳道图。<br>
848fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/Tabskilltemple.jpg" alt="GitHub Logo">
849fb726d48Sopenharmony_ci    </p>
850fb726d48Sopenharmony_ci    <p class="fontColor">点击<img src="../figures/OperationSkills/Tabskilltempleshow.jpg" alt="GitHub Logo">图标会以子系统--&gt;部件--&gt;泳道层级去显示:<br>
851fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/Tabskillsubsystem.jpg" alt="GitHub Logo"><br>
852fb726d48Sopenharmony_ci      点击<img src="../figures/OperationSkills/subsystemupload.jpg" alt="GitHub Logo">导入模板的json配置,点击<img src="../figures/OperationSkills/subsystemdownload.jpg" alt="GitHub Logo">下载模板的json配置,模板的配置文件格式如下:<br>
853fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/subsystemsconfig.jpg" alt="GitHub Logo">
854fb726d48Sopenharmony_ci    </p>
855fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-10">所有进程的用户输入事件归一显示,观察操作事件和对象</h3>
856fb726d48Sopenharmony_ci
857fb726d48Sopenharmony_ci    <p class="fontColor">对于用户 InputEvent 会绘制到固定的泳道图。<br>
858fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/rowskillinput.jpg" alt="GitHub Logo">
859fb726d48Sopenharmony_ci    </p>
860fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-11">支持收藏的泳道图整体画布可伸缩</h3>
861fb726d48Sopenharmony_ci
862fb726d48Sopenharmony_ci    <p class="fontColor">收藏以后的泳道图可以在红线位置处上下伸缩拖动。<br>
863fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/collectskilldrag.jpg" alt="GitHub Logo">
864fb726d48Sopenharmony_ci    </p>
865fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-12">用户自定义分组化收藏(2 组),及一键取消所有收藏</h3>
866fb726d48Sopenharmony_ci
867fb726d48Sopenharmony_ci    <p class="fontColor">选择界面上的 G1 和 G2,可以根据自己的需求将泳道图收藏到对应 G1 或者 G2 中,点击 G1 和 G2 旁边的星号可以一键取消所有收藏。<br>
868fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/collectskillg.jpg" alt="GitHub Logo">
869fb726d48Sopenharmony_ci    </p>
870fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-13">trace 顶部的 cpu 负载预览颜色随着负载降低,亮度降低的能力对比度提升</h3>
871fb726d48Sopenharmony_ci
872fb726d48Sopenharmony_ci    <p class="fontColor">CPU 负载颜色的亮度,负载越大颜色更深,负载越小颜色越浅。<br>
873fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/colorcontrast.jpg" alt="GitHub Logo">
874fb726d48Sopenharmony_ci    </p>
875fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-14">导航栏/泳道图背景颜色支持颜色可选,字体颜色可感知 slice 的颜色而进行变化,颜色动态可配</h3>
876fb726d48Sopenharmony_ci
877fb726d48Sopenharmony_ci    <p class="fontColor">给用户提供两种模式,浅色模式(导航栏白底黑字,泳道图颜色偏淡)和深色模式(导航栏黑底白字,泳道图颜色偏深),点击最左下方的小桶标志用户可以按需选择,并且用户可以自定义 systemTrace 页面的颜色,给用户更多自由,自己动手设置自己喜欢的颜色,提升用户体验。<br>
878fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/colorchoose.jpg" alt="GitHub Logo">
879fb726d48Sopenharmony_ci    </p>
880fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-15">Trace 抓取动态可停</h3>
881fb726d48Sopenharmony_ci
882fb726d48Sopenharmony_ci    <p class="fontColor">在抓取 trace 过程中,点击 StopRecord 按钮会对抓取命令进行启停,等待抓取停止命令返回后,将生成的文件拉取下来进行文件的解析。<br>
883fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/tracestop.jpg" alt="GitHub Logo">
884fb726d48Sopenharmony_ci    </p>
885fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-16">Smartperf web 端集成 hdc 命令能力</h3>
886fb726d48Sopenharmony_ci
887fb726d48Sopenharmony_ci    <p class="fontColor">在现有的配置界面上,新增一个 Web 版本的 shell 界面,可以支持 shell 命令。<br>
888fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/shellconfig.jpg" alt="GitHub Logo">
889fb726d48Sopenharmony_ci    </p>
890fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor" id="header-index-17">分布式导入功能</h3>
891fb726d48Sopenharmony_ci
892fb726d48Sopenharmony_ci    <p class="fontColor">在界面的如下入口可以导入分布式文件,将两个文件放到文件夹下,以文件夹的形式导入。<br>
893fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/disimport.jpg" alt="GitHub Logo"><br>
894fb726d48Sopenharmony_ci      导入分布式文件以后,展示如下:<br>
895fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/distributetrace.jpg" alt="GitHub Logo"><br>
896fb726d48Sopenharmony_ci      分布式Trace导入完成后,在泳道界面通过点击节点slice数据(分布式),会构建同进程(线程)或跨进程(线程)、单trace或多trace间的折线。折线绘制规则是:同一调用链,相邻数据的spanId相同或者当前spanId和另一个数据的parentSpanId相同时绘制关联关系的折线。<br>
897fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/distributeline.jpg" alt="GitHub Logo"><br>
898fb726d48Sopenharmony_ci      分布式slice的信息如下:<br>
899fb726d48Sopenharmony_ci      <img src="../figures/OperationSkills/distributetab.jpg" alt="GitHub Logo">
900fb726d48Sopenharmony_ci    </p>
901fb726d48Sopenharmony_ci    <ul class="fontColor">
902fb726d48Sopenharmony_ci      <li>
903fb726d48Sopenharmony_ci        <pre class="smartperf-text fontColor light">Name:数据的名称。</pre>
904fb726d48Sopenharmony_ci      </li>
905fb726d48Sopenharmony_ci      <li>
906fb726d48Sopenharmony_ci        <pre class="smartperf-text fontColor light">Depth:数据的在该泳道中的层级。</pre>
907fb726d48Sopenharmony_ci      </li>
908fb726d48Sopenharmony_ci      <li>
909fb726d48Sopenharmony_ci        <pre class="smartperf-text fontColor light">ChainId:调用链的id, 同一条调用链id是相同的。</pre>
910fb726d48Sopenharmony_ci      </li>
911fb726d48Sopenharmony_ci      <li>
912fb726d48Sopenharmony_ci        <pre class="smartperf-text fontColor light">SpanId:当前节点id。</pre>
913fb726d48Sopenharmony_ci      </li>
914fb726d48Sopenharmony_ci      <li>
915fb726d48Sopenharmony_ci        <pre class="smartperf-text fontColor light">ParentSpanId:当前节点的父节点id。</pre>
916fb726d48Sopenharmony_ci      </li>
917fb726d48Sopenharmony_ci      <li>
918fb726d48Sopenharmony_ci        <pre class="smartperf-text fontColor light">ChainFlag:当前节点在调用链中的flag类型,C(Client)、S(Server)。</pre>
919fb726d48Sopenharmony_ci      </li>
920fb726d48Sopenharmony_ci    </ul>
921fb726d48Sopenharmony_ci  </div>
922fb726d48Sopenharmony_ci
923fb726d48Sopenharmony_ci  <script>
924fb726d48Sopenharmony_ci    window.onload = () => {
925fb726d48Sopenharmony_ci      let isDark = getURLParameter('dark'); 
926fb726d48Sopenharmony_ci      let targetId = getURLParameter('targetId'); 
927fb726d48Sopenharmony_ci      let isBack = getURLParameter('isBack'); 
928fb726d48Sopenharmony_ci      if (isDark === 'true') {
929fb726d48Sopenharmony_ci        document.getElementById('body').setAttribute('style', 'background-color:#272C34;');
930fb726d48Sopenharmony_ci        let header = document.getElementsByClassName('fontColor');
931fb726d48Sopenharmony_ci        for (let i = 0; i < header.length; i++) {
932fb726d48Sopenharmony_ci          header[i].style.color = '#fff';
933fb726d48Sopenharmony_ci        }
934fb726d48Sopenharmony_ci        let lightBackGround = document.getElementsByClassName('light');
935fb726d48Sopenharmony_ci        for (let i = 0; i < lightBackGround.length; i++) {
936fb726d48Sopenharmony_ci          lightBackGround[i].style.backgroundColor = '#32373F';
937fb726d48Sopenharmony_ci        }
938fb726d48Sopenharmony_ci      }
939fb726d48Sopenharmony_ci      function getURLParameter(name) {  
940fb726d48Sopenharmony_ci        return (new URL(document.location)).searchParams.get(name);  
941fb726d48Sopenharmony_ci      }  
942fb726d48Sopenharmony_ci
943fb726d48Sopenharmony_ci      if ( targetId !== null) {
944fb726d48Sopenharmony_ci        let targetElement = document.getElementById(targetId);
945fb726d48Sopenharmony_ci        targetElement.scrollIntoView({ behavior: 'smooth' });
946fb726d48Sopenharmony_ci      }
947fb726d48Sopenharmony_ci    };
948fb726d48Sopenharmony_ci  </script>
949fb726d48Sopenharmony_ci  </body>
950fb726d48Sopenharmony_ci</html>
951