WinScope实现录制视频与是Timeline时间轴同步设置方法-千里马framework车载手机系统开发实战

frameworks 之 Winscope 工具 阅读详情

hi,粉丝朋友们!

背景:

今天来分享一个粉丝朋友提出的问题,那就是他在学习wms课程时候有用到winscope工具,提出一个疑问,就是google官网说的有录屏可以结合起来一起看。具体如下:
在这里插入图片描述

其实这个以前我也有想过,奈何一直用的手机直接抓取方式,这个因为比较方便,不需要单独的进行什么usb线链接,所以一直也没见过有对应的mp4生成。

不过自己也想了一下,这个mp4其实还并不准确,为啥呢?因为往往mp4这在视频属于录制的,一般会有固定的帧率,比如mp4帧率为30fps,这个时候代表每间隔32毫秒才有一帧图像,但是我们手机真实刷新率可能很高,比如120fps比较普遍,那么这个才8ms一帧,也就是很有可能真实确实产生了一帧的闪黑,但是因为mp4采样率过低,导致mp4不一定可以看到。

在这里插入图片描述

不过这种概率可能小一点,毕竟经常的闪黑都是100ms以上情况,故录制60fps的mp4对应120fps的手机应该问题也不是很大。

开始操作出有视频的winscope

这个也要感谢另一个粉丝学员提供思路,说不用手机抓,用网页抓其实可以的,这个结果确实一下提醒了我,毕竟平时看到网页确实是有一个选项可以在线抓的方式:
在这里插入图片描述

大家看左边确实有adb Connect标志,但是显示个警告导致我们也就没啥兴趣去搞它了,那么下面来研究一下怎么玩,看看它的提示:
注意以下都是再ubuntu环境:

ADB Connect
 Unable to connect to Winscope ADB proxy
Launch the Winscope ADB Connect proxy to capture traces directly from your browser.

Python 3.5+ and ADB is required.

Run:

python3 $ANDROID_BUILD_TOP/development/tools/winscope/adb_proxy/winscope_proxy.py
Or get it from the AOSP repository.


前提条件:
1、python3.5+
2、adb配置链接好的
然后执行:
python3 $ANDROID_BUILD_TOP/development/tools/winscope/adb_proxy/winscope_proxy.py
这里ANDROID_BUILD_TOP其实就是我们aosp的根目录就行,那么就开干:

test@test:~$ python3 aosp/development/tools/winscope/adb_proxy/winscope_proxy.py
2023-04-25 00:17:18,681 - ADBProxy - DEBUG - Loaded token 851493dc864a4e49c6ecbafbb238ab9cc00eb2f75e3c8d2a7d180937ba3947df from /home/test/.config/winscope/.token
Winscope ADB Connect proxy version: 0.8
Winscope token: 851493dc864a4e49c6ecbafbb238ab9cc00eb2f75e3c8d2a7d180937ba3947df

这里执行后有个token,然后刷新网页(file:///home/test/nx563j_xiaomi/prebuilts/misc/common/winscope/winscope.html放到chrome浏览器),输入这个token即可以,一般只要输入一次即可以,接下来就可以看到如下画面:

在这里插入图片描述

点击这个设备按钮(注意手机要可以root的,而且要有su命令不然会报错哈):
在这里插入图片描述

大家是不是看到了对应的START TRACE,点击这个按钮即可以开始抓winscpe了。

在这里插入图片描述

操作手机,然后点击End Trace即可以,会自动跳入如下界面:
在这里插入图片描述

是不是完美哈

不过其实不完美哈,认真看使用时候确实发现了好像视频没有和surfaceflinger的图层画面完全同步情况,不确定这个问题是不是都有哈。不过这个相信google会越做越好,优化这个体验。

更多framework干货请关注“千里马学框架”

Android 使用 Winscope 跟踪窗口转换 Winscope 是一款 Web 工具,可以让用户在动画和转换期间和之后记录、重放和分析多个系统服务的状态。Winscope 将所有相关的系统服务状态记录在一个跟踪文件中。使用带有跟踪文件的 Winscope 界面,您可以通过重放、单步执行和调试转换来针对每个动画帧检查这些服务的状态(无论是否有屏幕录制)。 阅读详情

相关推荐

深入解析 Winscope:Android 动画与转换的调试利器

本文深入解析Winscope工具在Android动画与转换调试中的核心价值与实战应用。作为Android团队开发的Web调试工具,Winscope能同时捕捉WindowManager、SurfaceFlinger等关键系统服务的状态,提供时间旅行调试功能,帮助开发者快速定位动画卡顿、黑屏等问题。文章详细介绍了设备端配置、电脑端分析环境搭建以及进阶调试技巧,是Android开发者的必备利器。

weixin_28366053的博客 450

android display笔记(二)winscope的使用

跟踪记录会被写入 /data/misc/wmtrace/wm_trace.winscope 和 /data/misc/wmtrace/layers_trace.winscope,同时还会包含在错误报告中。通常使用prebuilts/misc/common/winscope下的winscope.html。窗口转换完成后,打开快捷设置,然后点按 Winscope 跟踪记录以停用跟踪记录。依次转到开发者选项 > 快捷设置开发者图块。点按 Winscope 跟踪以启用跟踪。点击Add FILE。

镇元子的博客 5613

WinScope跟踪window/layer pb文件

winscope跟踪window、layer的信息

平凡之路 1440

android车机手机黑屏闪黑终结者-Winscope工具使用介绍

在开发过程中,经常会遇到各种各样的窗口问题,比如动画异常、窗口异常、闪屏、闪黑、黑屏、错位显示…对于这些问题,添加日志,调试分析代码等手段去解决,但这些 UI 问题往往出现在一瞬间,很难把握出现的时机,录制下来的日志往往也是巨大的,从海量的日志中提取有效的信息是一个枯燥且繁琐的事情,而且也根本没有办法把显示时间戳和日志时间戳完全对好。Android 也意识到了这个问题,WinScope 的出现有效的帮助我们跟踪窗口和显示问题。它向开发者提供一个可视化的工具,让开发者能使用工具跟踪整个界面的变化过程。

learnframework的博客 6670

Winscope工具使用

在Android系统开发过程中,我们经常会遇到各种瞬时性的窗口显示问题,比如闪黑、冻屏、动画异常、窗口错位等。传统调试方法如dumpsys SurfaceFlinger和dumpsys window windows虽然能提供有用信息,但对于转瞬即逝的问题往往难以捕捉关键瞬间。即便成功捕获到黑屏瞬间的日志,分析时仍需结合前后帧的上下文信息才能准确定位问题根源。这类UI问题的调试面临三大挑战:首先,问题出现时机难以把握;其次,日志文件通常非常庞大,从中提取有效信息费时费力;

Red风信子的博客 609

winscope使用

winsope

风吹草低见牛羊 426

Android 12 - 跟踪利器 WinScope

1. 简介 在开发过程中,经常会遇到各种各样的窗口问题,比如动画异常、窗口异常、闪屏、黑屏、错位显示… 以前对于这些问题,我们可以通过添加日志,调试分析代码等手段去解决,但这些 UI 问题往往出现在一瞬间,很难把握出现的时机,录制下来的日志往往也是巨大的,从海量的日志中提取有效的信息是一个枯燥且繁琐的事情。 Android 也意识到了这个问题,WinScope 的出现有效的帮助我们跟踪窗口和显示问题。它向开发者提供一个可视化的工具,让开发者能使用工具跟踪整个界面的变化过程,让我们可以观察到细微的变化。迭代了

HansChen的博客 1万+

Android开发中使用的winscope

Android开发中使用的winscope

WinScope

android 跟踪窗口转换利器

PefectWorld的博客 1445

手把手教你用Trae配置Python开发环境(含Claude 3.5代码生成实战)

本文详细介绍了如何使用字节跳动推出的Trae智能开发环境配置Python开发环境,并实战演示了Claude 3.5代码生成功能。从环境准备到项目初始化,再到AI辅助编码和调试优化,全面展示了Trae在提升开发效率方面的强大能力,特别适合Python开发者快速搭建项目和解决复杂问题。

weixin_28309571的博客 976

深入MoveIt与OMPL集成开发:从源码编译到自定义规划算法实战

本文详细介绍了如何从源码编译集成MoveIt与OMPL,并实现自定义规划算法的完整流程。通过清理环境、获取源码、解决编译依赖与错误,最终指导开发者创建并集成名为MyRRT的自定义规划算法,从而实现对机器人运动规划栈的深度定制与优化。

h0i1j2k3l的博客 468

Android15使用Winscope

Winscope 是一款 Web 工具,可以让用户在动画和转换期间和之后记录、重放和分析多个系统服务的状态。Winscope 将所有相关的系统服务状态记录在一个跟踪文件中。使用带有跟踪文件的 Winscope 界面,您可以通过重放、单步执行和调试转换来针对每个动画帧检查这些服务的状态(无论是否有屏幕录制)。

ukynho的博客 6700

ST-Link V2的隐藏技能:多通道串口调试的终极指南

本文深入探讨了ST-Link V2的多通道串口调试功能,突破传统烧录工具的限制。通过详细的硬件配置、Arduino IDE设置和实战案例,展示了如何利用SWD接口实现多通道数据监控,提升STM32F103C8T6等开发板的调试效率。文章还提供了PCB布局优化和性能调优技巧,助力开发者充分发挥ST-Link V2的潜能。

weixin_29285605的博客 355

winscope使用方法

进入目录development/tools/winscope/adb_proxy,有文件winscope_proxy.py。1. 在Android的项目源码中,prebuilts/misc/common/winscope目录下。进入终端执行命令python3 winscope_proxy.py,得到如下的token。Ubuntu下Android T的winscope工具使用方法。直接使用chrome浏览器打开文件winscope.html。把该token添加到winscope.html的主页中就行了。

小马过河的专栏 1975

mstar PQ软件修改方法

1.修改ADC的值 Static code APIXC_AdcGainOffsetSetting tADCSetting[ADC_SET_NUMS]= #define INIT_ADC_RGB_RED_GAIN               0x1000 #define INIT_ADC_RGB_GREEN_GAIN           0x1000 #define INIT_ADC_RGB

qq_18810259的专栏 2565

J-Flash手动添加华大HC32F460型号全攻略

在嵌入式开发中,Flash编程算法是连接调试工具与微控制器的重要桥梁,它定义了芯片存储器的擦除、编程和校验等底层操作规范。其原理是通过调试接口将算法代码加载到目标芯片的RAM中执行,从而实现对Flash存储器的访问与控制。这项技术的核心价值在于打破了工具链对芯片型号的固有支持限制,使得开发者能够灵活适配各种新兴或定制化的微控制器。在工程实践中,当面对J-Link等主流调试器官方支持包更新滞后时,手动添加芯片型号成为保障开发效率的关键技能。本文以华大半导体的HC32F460系列MCU为例,详细解析了如何通过配

weixin_29192365的博客 350

android 常规log、dump、winscope常见抓取方法

则对应的代码可以通过 grep 抓取 writeWmxxx 找出是在哪里打印的该events log。events log开头的字段,比如wm_xxx。应用走到onresume生命周期的log。通知cancel的log。

yimelancholy的博客 4472

保姆级教程:用rosbag录制和回放你的第一个ROS机器人数据(附C++/Python代码)

本文提供了一份详细的ROS机器人数据录制与回放教程,涵盖从命令行操作到C++/Python编程实现的全流程。通过rosbag工具,开发者可以高效记录和回放机器人运行时的传感器数据和控制指令,适用于故障复现、算法调试等多种场景。教程还包含高级技巧如时间同步和大文件处理,帮助用户快速掌握ROS数据管理核心技能。

weixin_29313239的博客 283

WinScopeIDE的使用/晟矽微电子IDE编译器

WinScope IDE 集成开发环境(以下简称 WinScope 或 WinScope IDE)是上海晟 矽微电子有限公司为开发 SINOMCU 单片机产品而开发的一个可实时仿真的专用 开发平台。

2401_85236922的博客 3570

CloudCompare 二次开发(6)——插件中拖拽添加Qt窗口(区域生长算法为例)

手动拖拽的方式搭建Qt对话框界面的制作流程,以PCL中的点云区域生长算法为例进行制作。

点云侠的博客 2153

飞行机械臂设计

其后对飞行机械臂系统的机 理模型和基于 ADAMS 的物理模型进行了控制系统的搭建,对于机理模 型,设计了三个输入通道,分别是俯仰力矩,翻滚力矩与偏航力矩,控 制量为翻滚角,俯仰角,偏航角。四旋翼无人机自身具有独特的优势,在无人机上增加机械臂,整个 机体系统相当于一架空中行动自如的空中机器人,可以适应更多的应用场合,能够实现空中抓取,运输载荷,巡航监视等任务。的函数模块如图 4-8 所示,可见输入为 U1,U2,U3,U4,分别对应总力矩,俯仰力矩,翻滚力矩,偏航力矩,控制 量为俯仰角,翻滚角,偏航角。

coldmood77的博客 2916

Winscope在aosp 13/14/15版本的使用总结

这里说的是一般并不是绝对,其实本质就是只要各个版本之间设备上抓取的Winscope的数格式差异不大可以兼容就可以,但是一般aosp13以后几个版本这块数据格式都有修改,所以13版本Winscope不支持抓取展示14,15设备版本数据。因为Winscope这个网页软件肯定是会考虑老版本兼容的功能,所以一般Winscope网页是新的,是可以兼容抓取老版本安卓设备的Winscope数据,比如aosp 15版本Winscope支持抓取展示aosp13设备的数据。3、Winscope的版本直接兼容原则是怎么样的?

learnframework的博客 2448

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Android winscope生成方法

先把google对winscope的描述写一下。 用于窗口转换跟踪的 WinScope 工具 Android 9 及更高版本包含用于跟踪窗口转换的 WinScope 工具。WinScope 提供了用于在转换期间和转换后记录和分析窗口管理器状态的基础架构和工具。它允许记录和单步调试窗口转换,同时将所有相关窗口管理器状态记录到跟踪文件中。您可以使用此数据重播并单步调试转换。 WinScope 工具源代码位于platform/development/tools/winscope。 第二步:把andr.

lizhenjun114的专栏 2538

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用winscope分析窗口层级

使用winscope分析窗口层级。

不定时记录分享一些有用没用的东西 893

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

安卓Winscope原理

谷歌介绍文档:https://source.android.com/docs/core/graphics/tracing-win-transitions谷歌文档说“跟踪记录会被写入/data/misc/wmtrace/wm_trace.winscope和/data/misc/wmtrace/layers_trace.winscope,同时还会包含在错误报告中。本文分析安卓抓取Winscope代码流程。

SSSxCCC的博客 1231
上一篇: Android ProtoLog动态开启相关wm logging源码分析补充
下一篇: 千里马android framework车机车载手机智能驾驶双屏互动实现方案
千里马学框架
博客等级 码龄6年 1万+粉丝 650原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

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

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

打赏作者

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

抵扣说明:

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

余额充值