android14多屏幕帧率刷新率统计显示开发及成果展示

背景

SurfaceFlinger课程专题有做了一个帧率显示的工具,大部分在当时的代码大部分在SurfaceFlinger层面实现的。
在这里插入图片描述
当时帧率主要还是针对主屏幕这个单一的屏幕。
在这里插入图片描述
但是近来有学员提到一个疑问,那就是如果是存在多屏的情况下,而且多屏都在刷新的情况下,那么帧率显示起来就比较乱,因为原来方案基本上都是有layer显示就会累计,根本不管到底是哪个屏幕的。

所以针对上面学员提出的问题,那么就需要考虑对多屏幕的帧率进行区分,各自帧率统计可以针对单独屏幕各自分开,具体设计图如下:
在这里插入图片描述
即可以实现有多少屏幕就有多少个对应的帧率,彼此独立。

修改方案

方案设计图:
在这里插入图片描述
SurfaceFlinger层面

1、针对layer需要获取每个layer的对应的displayID
2、把displayId需要保存到FrameTimeline类中
3、通过getprop debug.fps.displayId获取当前要求显示哪个displayId
4、在computFps时候,针对拿layer的dispkayID和prop获取的displayID进行比较,相等则可以统计

app层面

1、通过DisplayManager接口获取系统中存在的所有display数组
2、针对display的数组进行list展示,接受点击
3、用户点击具体的display的Item则调用setprop debug.fps.displayId displayID

详细成果视频:
https://www.bilibili.com/video/BV1Vd4negE6b/

相关完整源码可以私聊获取(限vip学员朋友)

hal+perfetto+surfaceflinger

https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg
在这里插入图片描述更多framework假威风耗:androidframework007

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

千里马学框架

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

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

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

打赏作者

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

抵扣说明:

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

余额充值