手机帧率获取 实现 android_Android NDK实现离线FPS实时获取方方法

声明:本文只提供实现的思路。一、FPS获取方法当前android获取FPS的方法有几种,但大部分使用的原理都是基于dumpsys SurfaceFlinger –latency 的数据计算的。使用python和shell脚本实现自动化解析,根据一定的方法可以计算出实时FPS,但缺点是测试过程中要一直连着USB。另外,如果通过APK内部执行adb命令,需要手机有root权限或者APK有系统...
摘要由CSDN通过智能技术生成

4a69088251660c7d32a79637e5bfecb1.gif

声明:本文只提供实现的思路。

一、FPS获取方法

当前android获取FPS的方法有几种,但大部分使用的原理都是基于dumpsys SurfaceFlinger –latency 的数据计算的。

使用python和shell脚本实现自动化解析,根据一定的方法可以计算出实时FPS,但缺点是测试过程中要一直连着USB。

另外,如果通过APK内部执行adb命令,需要手机有root权限或者APK有系统签名,也无法做到通用。

shell脚本也可以实现在android后台运行,但是因为涉及到数据处理,需要使用到awk编程,而android没有awk,因此需要手机root并通过busybox实现。脚本见附录1

参考市面上GameBench等应用获取方式,实现无需USB连接、无需设备root和apk签名就可以实时获取到当前测试应用的实时FPS。

1)首先看一篇文章 GameBench FPS获取猜想

2)另外网络上还有 快否科技 发布的一个获取实时帧率的APK,详见github地址官网。(链接见附件文档)

发现有这几种实现方式都有个相同点,就是有一个没有扩展名(如frametracer文件,二进制文文件打开都是乱码,后续都称daemon)的文件,并且都使用了如下命令push到手机的/data/local/tmp目录,然后执行,之后APK才能获取到数据:

adb push daemon /data/local/tmpadb shell chmod 777  /data/local/tmp/daemonadb shell "./data/local/tmp/daemon & "

二、NDK编译文件并执行

1、 准备工具和开发环境

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值