android display笔记(二)winscope的使用

WinScope 提供了用于在窗口转换期间和转换后记录和分析 WindowManager 状态和 SurfaceFlinger 状态的基础架构和工具。WinScope 将所有相关的系统服务状态记录在一个跟踪文件中,您可以使用该文件重现并逐步查看转换。

抓winscope相关文件:

快捷键

通过快捷设置记录跟踪情况,请执行以下操作:

启用开发者选项。

依次转到开发者选项 > 快捷设置开发者图块。

启用 WinScope 跟踪。

打开快捷设置。

点按 Winscope 跟踪以启用跟踪。

在设备上执行窗口转换。

窗口转换完成后,打开快捷设置,然后点按 Winscope 跟踪记录以停用跟踪记录。

跟踪记录会被写入 /data/misc/wmtrace/wm_trace.winscope 和 /data/misc/wmtrace/layers_trace.winscope,同时还会包含在错误报告中。

通过adb pull /data/misc/wmtrace 拉到本地。
在这里插入图片描述

adb

WindowManager 跟踪记录
启用跟踪:

adb shell cmd window tracing start

停用跟踪:

adb shell cmd window tracing stop

获取跟踪文件:

adb pull /data/misc/wmtrace/wm_trace.winscope wm_trace.winscope

SurfaceFlinger 跟踪

启用跟踪:

adb shell su root service call SurfaceFlinger 1025 i32 1

停用跟踪

adb shell su root service call SurfaceFlinger 1025 i32 0

获取跟踪文件

adb pull /data/misc/wmtrace/layers_trace.winscope layers_trace.winscope

生成状态转储文件
WinScope 可以从错误报告中读取 WindowManager 状态和 SurfaceFlinger 状态的快照。错误报告会将状态信息以单独的 proto 文件的形式存储在 proto 文件夹中。如需使用 adb 生成状态转储文件,请运行以下命令。

WindowManager

adb exec-out dumpsys window --proto > window_dump.winscope

SurfaceFlinger

adb exec-out dumpsys SurfaceFlinger --proto > sf_dump.winscope

使用web进行分析

通常使用prebuilts/misc/common/winscope下的winscope.html
在这里插入图片描述
在这里插入图片描述
点击Add FILE

在这里插入图片描述
在这里插入图片描述

结合上篇文章的Demo,对window和surfaceflinger来进行分析,
https://blog.csdn.net/u013574207/article/details/133921524?spm=1001.2014.3001.5502

能看到有window和surfaceflinger两部分内容
在这里插入图片描述
选取surfaceflinger来进行分析,能看到写的demo浮窗相对应的内容,并可以看到父节点。
在这里插入图片描述
通过移动时间戳可以来看该view的移动和对应的事件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那天的烟花雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值