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会越做越好,优化这个体验。
千里马wms课程参考链接:https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw