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