Android Graphics 显示系统 - 通过dumpsys SurfaceFlinger --latency计算FPS

本文给大家推荐一个网络上找到的shell脚本工具,利用dumpsys SurfaceFlinger --latency的数据计算FPS,目前我测试在Android 14上依然可以使用,可以满足某些场景下的测试需求,或者基于此做二次开发。

一、原文地址

https://testerhome.com/topics/4775

还有一个较新的版本,不过我并未测试,大家可以自行查阅

https://testerhome.com/topics/20187

自行复制到浏览器中查看吧!

二、使用方法

1. 设备端需存在/data/local/tmp/busybox (busybox可到官网对应cpu架构下载) ,https://busybox.net/downloads/binaries/

命令:

adb push busybox /data/local/tmpadb shell chmod 755 /data/local/tmp/busybox

2. 把shell脚本放到/data/local/tmp/fps_monitor.sh

3. dumpsys SurfaceFlinger找到要监测的layer name

4. 旧版本可以类似执行:​​​​​​​

adb shellsh /data/local/tmp/fps_monitor.sh -w "MultiDisplayDemo#104" -t 30

三、结果展示

播放一个30FPS的视频时,监测对应Surface Layer的帧率

图片

播放一个25FPS的视频时,监测对应Surface Layer的帧率

图片

Settings APP UI 界面的刷新FPS

图片

四、小结

这个开源工具还可以生成可视化的报告,暂未试用,其实console log打印出的实时监测信息就可以满足需求。基于此做二次开发来满足自己的测试场景是个不错选择。

当然,主要目的还是了解使用dumpsys SurfaceFlinger --latency获得的数据来计算FPS的方法。多一种思路,少一点烦恼!

阅读原文

Android Graphics 显示系统 - 通过dumpsys SurfaceFlinger --latency计算FPS

更多Android Graphics知识,请关注公众号专栏

Android Graphics显示系统知识

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值