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
android display杂谈(二)winscope的使用_第1张图片
android display杂谈(二)winscope的使用_第2张图片
点击Add FILE

android display杂谈(二)winscope的使用_第3张图片
android display杂谈(二)winscope的使用_第4张图片

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

能看到有window和surfaceflinger两部分内容
android display杂谈(二)winscope的使用_第5张图片
选取surfaceflinger来进行分析,能看到写的demo浮窗相对应的内容,并可以看到父节点。
android display杂谈(二)winscope的使用_第6张图片
通过移动时间戳可以来看该view的移动和对应的事件

你可能感兴趣的:(android,java)