基本流程
Systrace是android性能調試優(yōu)化的常用工具悦冀,它可以收集進程的活動信息,如界面布局咖熟、UI渲染圃酵、binder通信等;也可以收集內核信息馍管,如cpu調度郭赐、IO活動、中斷等确沸;這些信息會統(tǒng)一時間軸捌锭,在Chrome瀏覽器中顯示出來,非常方便工程師性能調試罗捎、優(yōu)化卡頓等工作观谦。
簡易的流程圖如下,systrace是基于ftrace實現(xiàn)的桨菜,而ftrace 是 Linux 內核中的調試跟蹤機制豁状。
首先systrace指定抓取trace的類別等參數(shù),然后觸發(fā)手機端的/system/bin/atrace 開啟對應文件節(jié)點的信息記錄倒得,接著atrace會讀取 ftrace 的緩存泻红,生成只包含ftrace信息的atrace_raw。
Systrace會進一步收集系統(tǒng)的ps霞掺、task等信息谊路,這些信息是為了協(xié)助解析atrace_raw中的ftrace信息,比如ps信息可以得到進程的名稱菩彬,而不是難記的pid號缠劝。處理后的ftrace信息將和systrace目錄下的prefix.html、systrace_trace_viewer.html骗灶、suffix.html整合為一體惨恭,成為單個的html文件。
當瀏覽systrace信息時耙旦,Chrome瀏覽器借助systrace解析器(通過chrome://tracing訪問)脱羡,解析上面生成的trace.html文件,把其中原始的ftrace信息分門別類,再按照時間軸聚合排列轻黑,繪制出不同色塊,簡潔可觀的顯示在html頁面上琴昆。