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 第三部分,&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">图标会以子系统-->部件-->泳道层级去显示:<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