如何用手機(jī)抓取Systrace

和你一起終身學(xué)習(xí),這里是程序員Android
經(jīng)典好文推薦,通過(guò)閱讀本文,您將收獲以下知識(shí)點(diǎn):
一、手機(jī)端打開(kāi)Systrace方法
二、System Traceing的主要功能
三、Systrace 的抓取方法
四、Systrace 的打開(kāi)方法
五、Sytrace 轉(zhuǎn)換成html 的方法
一、手機(jī)端打開(kāi)Systrace方法
Systrace 是研發(fā)人員用來(lái)分析手機(jī)卡頓等性能問(wèn)題的Log,那么如何在手機(jī)端抓取Systrace Log呢?
1.手機(jī)端抓取Systrace 的方法
System Traceing 打開(kāi)方法一
進(jìn)入Settings >> System >> Developer options >> System Traceing點(diǎn)擊即可。

System Traceing 打開(kāi)方法一
System Traceing 打開(kāi)方法二
在Settings 界面直接搜索System Traceing也可以。

System Traceing 打開(kāi)方法二
二、System Traceing的主要功能
System Traceing的主要有以下功能
記錄trace
Debug app trace
配置Trace 抓取的組件內(nèi)容
恢復(fù)系統(tǒng)默認(rèn)trace配置
trace 默認(rèn)緩存大小配置
清除之前已經(jīng)保存的trace
在SystemUI 快速設(shè)置中顯示

System Traceing 的主要功能
1. 記錄trace
點(diǎn)擊開(kāi)始后手機(jī)會(huì)有通知提示,然后我們復(fù)現(xiàn)問(wèn)題,問(wèn)題復(fù)現(xiàn)結(jié)束后,關(guān)閉trace 即可。

會(huì)在traces文件夾下生成某某.ctrace舉例
2. Debug app trace
此功能可以抓取 app 運(yùn)行緩慢以及丟幀等問(wèn)題的trace log。
3. 配置Trace 抓取的組件內(nèi)容
我們可以根據(jù)不同的情況,配置抓取不同的trace 信息。詳細(xì)配置信息如下:

配置Trace 抓取的組件內(nèi)容
4. 恢復(fù)系統(tǒng)默認(rèn)trace配置
此功能主要是為了恢復(fù)默認(rèn)的Trace 配置,因?yàn)榧偃缱ト∨渲玫慕M件信息過(guò)多,我們的緩存大小又有現(xiàn)在,抓取trace時(shí)間長(zhǎng)的話,之前的trace會(huì)被沖掉,導(dǎo)致可能抓取的trace 被沖掉,抓取無(wú)效。
5. trace 默認(rèn)緩存大小配置
trace 默認(rèn)緩存大小 主要有:4M、8M、16M、32M、64M

trace 默認(rèn)緩存大小配置
6. 清除之前已經(jīng)保存的trace
清除trace 會(huì)清空 /data/local/traces 下所有的trace 文件,請(qǐng)謹(jǐn)慎操作。

清除保存在/data/local/traces
7. 在SystemUI 快速設(shè)置中顯示
開(kāi)啟在SystemUI 快速設(shè)置中顯示,可以實(shí)現(xiàn)在SystemUI 設(shè)置欄中快速開(kāi)始關(guān)閉抓取Trace 方法。

在SystemUI 快速設(shè)置中顯示
三、Systrace 的抓取方法
點(diǎn)擊開(kāi)始記錄trace,復(fù)現(xiàn)問(wèn)題,然后點(diǎn)擊關(guān)閉trace,這樣trace 文件就會(huì)保存在/data/local/traces目錄下,然后pull 出來(lái) ,使用舉例如下:
C:\Users\Administrator>adb pull /data/local/traces .
/data/local/traces/: 1 file pulled. 21.6 MB/s (5962270 bytes in 0.263s)
C:\Users\Administrator>
四、Systrace 的打開(kāi)方法
導(dǎo)出的***.cstrace文件可以通過(guò)perfetto網(wǎng)站:https://ui.perfetto.dev/,點(diǎn)擊 open with legacy UI打開(kāi)。


打開(kāi)后的內(nèi)容
五、Sytrace 轉(zhuǎn)換成html 的方法
使用 systrace.py 腳本既可以將手機(jī)抓取的Systrace 轉(zhuǎn)換成Html 文件。
1.systrace.py 文件目錄如下:
sdk\platform-tools\systrace\systrace.py
2.systrace.py 轉(zhuǎn)換命令如下:
systrace.py --from-file=input.ctrace -o output.html
3.systrace.py 源文件如下:
#!/usr/bin/env python
# Copyright (c) 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
import sys
version = sys.version_info[:2]
if version != (2, 7):
sys.stderr.write('Systrace does not support Python %d.%d. '
'Please use Python 2.7.\n' % version)
sys.exit(1)
systrace_dir = os.path.abspath(
os.path.join(os.path.dirname(__file__), 'catapult', 'systrace'))
sys.path.insert(0, systrace_dir)
def RemoveAllStalePycFiles(base_dir):
"""Scan directories for old .pyc files without a .py file and delete them."""
for dirname, _, filenames in os.walk(base_dir):
if '.git' in dirname:
continue
for filename in filenames:
root, ext = os.path.splitext(filename)
if ext != '.pyc':
continue
pyc_path = os.path.join(dirname, filename)
py_path = os.path.join(dirname, root + '.py')
try:
if not os.path.exists(py_path):
os.remove(pyc_path)
except OSError:
# Wrap OS calls in try/except in case another process touched this file.
pass
try:
os.removedirs(dirname)
except OSError:
# Wrap OS calls in try/except in case another process touched this dir.
pass
if __name__ == '__main__':
RemoveAllStalePycFiles(os.path.dirname(__file__))
from systrace import run_systrace
sys.exit(run_systrace.main())
至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺(jué)得很優(yōu)秀,歡迎點(diǎn)擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請(qǐng)聯(lián)系小編刪除。同時(shí)感謝您的閱讀,期待您的關(guān)注。
點(diǎn)個(gè)在看,方便您使用時(shí)快速查找!
