Winscope

1,496 阅读2分钟
  1. 启用WinScope跟踪

方法一:通过快速设置(Quick Settings)

  1. 启用开发者选项:首先,需要在设备上启用开发者选项。
  2. 进入开发者选项:依次转到“开发者选项” > “快捷设置开发者图块”。
  3. 启用WinScope跟踪:在快速设置中,找到并启用WinScope跟踪。
  4. 执行窗口转换:在设备上执行所需的窗口转换操作。
  5. 停用跟踪:窗口转换完成后,再次打开快速设置,点击WinScope跟踪以停用跟踪。

方法二:通过ADB(Android Debug Bridge)

  1. 启用跟踪:使用ADB命令adb shell cmd window tracing start 1来启用WindowManager跟踪。
  2. 执行操作:在设备上执行所需的窗口转换或其他操作。
  3. 停用跟踪:使用ADB命令adb shell cmd window tracing stop 1来停用跟踪。
  4. 获取跟踪文件

跟踪记录会被写入以下两个文件:

  • /data/misc/wmtrace/wm_trace.winscope(WindowManager跟踪文件)
  • /data/misc/wmtrace/layers_trace.winscope(SurfaceFlinger跟踪文件)

你可以使用ADB的adb pull命令将这些文件拉取到本地计算机上进行进一步分析。

  1. 使用WinScope工具分析跟踪文件
  2. 准备WinScope HTML 文件:找到Android项目源码中的WinScope HTML文件(通常位于/prebuilts/misc/common/winscope/winscope.html)。
  3. 处理 ADB 问题(如果需要) :如果提示ADB问题,可以使用python3 winscope_proxy.py命令生成一个token,并将该token添加到WinScope HTML文件的主页中。
  4. 加载并分析跟踪文件:使用Chrome浏览器打开WinScope HTML文件,并将从设备上拉取的跟踪文件加载到WinScope中进行分析。
  5. 选择并查看信息:在WinScope中选择你想查看的信息(如SurfaceFlinger和Window的相关数据),点击“Start Trace”开始分析。

注意事项

  • 确保你的设备是userdebug或eng构建的,因为这些构建类型才包含必要的调试工具和功能。
  • 在使用WinScope之前,最好先熟悉Android的窗口管理系统(WindowManager)和SurfaceFlinger的工作原理,以便更好地理解跟踪文件中的内容。
  • 不同版本的源代码启动winscope_proxy.py 目录是不一样的,有些需要进入到src/adb