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