如何抓trace
2026/9/24 1:10:36 网站建设 项目流程

1,打开debug模式

2,开发者模式里边,搜索trace,中文名称“系统跟踪”

3,如果需要录制跟踪,可以打开“录制跟踪记录”开关,此时操作机器就能记录下来所有的trace

4,关闭追踪可以在通知里边关闭

会通知你已经生成了trace文件。

5,使用adb把文件传输到电脑:adb pull /data/local/traces/ 你想保存到终端的文件夹名称/,比如:adb pull /data/local/traces/ traces/

PS C:\Users\xxxx> adb pull /data/local/traces/ traces/
/data/local/traces/: 1 file pulled, 0 skipped. 26.9 MB/s (9322379 bytes in 0.331s)

ps:导出ap和cp的ylog(打开ylog:展锐 拨号键盘*#*#8378#*#*)

adb pull /data/ylog/ cp/

adb pull /storage/emulated/0/ylog/ ap/

6,打开分析trace:浏览器打开网页 Perfetto UI ,选择你刚拷贝到本地的trace文件即可加载和展现trace

7,什么是trace:所有操作记录,线程和进程CPU,GPU渲染情况,是否有丢帧,延迟,阻塞等都一目了然,如:

图1,阻塞耗时 113ms

图2:渲染线程死亡

图3:launcher进程中多大阻塞时间723us

图5:Launcher有疯狂掉帧

8,过滤出来最耗时的几个线程:

SELECT t.name AS thread_name, s.name AS slice_name, s.dur / 1000000.0 AS duration_ms FROM slice s JOIN thread_track tt ON s.track_id = tt.id JOIN thread t USING (utid) WHERE s.dur > 50000000 -- 过滤出耗时大于 50ms 的方法 ORDER BY s.dur DESC LIMIT 10;

9,trace使用场景:log里边没有明显的crash,OOM,ANR等报错,没有明确错误指向的时候。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询