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

发布于:2025-07-05 ⋅ 阅读:(21) ⋅ 点赞:(0)

背景:

经常有学员朋友会问到关于Winscope相关的一些使用问题,这块本来之前也分享过比较多的文章,这些文章主要涉及aosp13,14,15版本的。
学员们涉及的问题主要有如下几个:

1、每个版本的Winscope应该如何使用,每个版本都有差异,搞不明白应该怎么样

2、Winscope是否可以用于windows呢?

3、Winscope的版本直接兼容原则是怎么样的?

各个版本Winscope使用方式汇总:

aosp13版本:

抓取方式1,adb 命令方式离线抓取Winscope数据:

1、启用抓取windows和sf数据

WindowManager:

adb shell cmd window tracing start

SurfaceFlinger:adb shell su root service call SurfaceFlinger 1025 i32 1

2、停用抓取

WindowManager: adb shell cmd window tracing stop

SurfaceFlinger:adb shell su root service call SurfaceFlinger 1025 i32 0

3、获取抓取pb文件

WindowManager: adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb

SurfaceFlinger:adb pull /data/misc/wmtrace/layers_trace.pb layers_trace.pb

抓取方式2,手机上设置开启抓取按钮
手机直接设置中开启相关抓取按钮,文章窗口

https://blog.csdn.net/learnframework/article/details/129432374

抓取方式3,html在线抓取Winscope数据
打开html后,会有提示,要基于aosp源码执行对应的python既可以

在这里插入图片描述

test@test:~/aosp$ python3 $ANDROID_BUILD_TOP/development/tools/winscope/adb_proxy/winscope_proxy.py

在这里插入图片描述

使用查看Winscope方式

直接使用html进行查看既可以:

直接在aosp源码的如下目录有html文件进行打开

prebuilts/misc/common/winscope/winscope.html

aosp14版本:

抓取方式:

抓取方式基本和aosp13没有大的差异可以完全适用参考

使用查看方式:

这个asop14以后aosp源码不会再自带Winscope的html,需要大家aosp源码进行编译,编译参考下面文章
android 14版本的winscope编译使用-手把手教你编译成功不报错

编译出来了html后,14版本是可以直接使用html的,所以可以共享编译html给别人直接chrome浏览器打开。

aosp15版本:

抓取方式:
adb方式抓取方式

这块和老版本有较大差异,adb方式抓取方式(这个请购买了马哥ShellTransition课程中有说明)。

aosp手机界面抓取抓取方式,参考如下:

安卓aosp15手机上如何离线获取winscope文件

html在线抓取和老版本一样

使用查看方式:
这块其实也是和14一样,参考14如何编译的html,但是15版本哪怕编译出来了html,也无法直接传递给别人使用,要传递html给其他人使用还需要参考如下文章:

aosp15上winscope离线html如何使用?

Windows系统是否可以使用Winscope?

这个Winscope其实本质上是就是一个网页,所以关于Winscope在Windows的使用有如下结论:

1、Winscope的数据获取后,只是查看分析完全可以使用html在chrome浏览器进行打开

2、抓取数据方式,一般不可以使用html在线抓取方式,因为无法成功执行如下winscope_proxy.py 的python脚本

总结:
windows可以正常使用Winscope进行相关分析,只是不支持在线实时抓数据,需要使用adb抓取或者手机抓取到Winscope数据,导入html方式。

多个安卓版本兼容问题

兼容的原则如下:

1 高版本的Winscope相关功能支持低版本的安卓设备抓取和展示

因为Winscope这个网页软件肯定是会考虑老版本兼容的功能,所以一般Winscope网页是新的,是可以兼容抓取老版本安卓设备的Winscope数据,比如aosp 15版本Winscope支持抓取展示aosp13设备的数据。

2 低版本的Winscope相关功能一般不支持高版本的安卓设备

这里说的是一般并不是绝对,其实本质就是只要各个版本之间设备上抓取的Winscope的数格式差异不大可以兼容就可以,但是一般aosp13以后几个版本这块数据格式都有修改,所以13版本Winscope不支持抓取展示14,15设备版本数据。

总结就是Winscope这个网页或者软件版本一般不可以比设备版本低,当然如果两个版本差异比较小这种也是可以的。

下面举个案例:

下面以一个安卓设备版本是13
在这里插入图片描述
但是用aosp15的Winscope来进行抓取

在这里插入图片描述
抓取后结果如下:
在这里插入图片描述
可以发现确实aosp15版本是完全可以抓取和展示aosp13版本的设备数据。

文章来源:https://mp.weixin.qq.com/s/j7lzAurE2K5PBjMrjGcfCw

更多framework实战干货,请关注下面“千里马学框架”