1

我想测量我的 Android 增强现实应用的 FPS。我正在尝试遵循使用 dumpsys framestats 的文档

这是我的程序:

  1. 通过 USB 将设备 (Galaxy Tab S5e) 连接到计算机 (MacBook Pro)
  2. 启动程序
  3. 打开终端并输入adb shell dumpsys gfxinfo <PACKAGE_NAME> framestats

我得到结果。文档说我应该得到一些 CSV 数据(我这样做了)。这里是:

Flags,IntendedVsync,Vsync,OldestInputEvent,NewestInputEvent,HandleInputStart,AnimationStart,PerformTraversalsStart,DrawStart,SyncQueued,SyncStart,IssueDrawCommandsStart,SwapBuffers,FrameCompleted,DequeueBufferDuration,QueueBufferDuration,
1,270900288236110,270901404902732,9223372036854775807,0,270901406732543,270901407052751,270901407062751,270901480932022,270901488003689,270901488511137,270901489180876,270901502575459,270901504554157,1520000,1026000,
1,270901416955482,270901500288812,9223372036854775807,0,270901507061241,270901507131709,270901507732074,270901524054574,270901524125251,270901524430720,270901524804834,270901531068480,270901534144522,3249000,1831000,

首先,为什么只有两行,如果:

“此输出的每一行代表应用程序生成的一帧”

如果我等待然后重新运行命令,我再次只得到 2 行。有时值已更新,但有时它们没有...

文档说我可以计算帧时间:

(FRAME_COMPLETED - INTENDED_VSYNC)

所以,我想我可以在说 1 分钟后运行 ADB 命令,输出大量帧时间然后绘制它,但是如果我一次只输出 2 帧......并且如果重新运行 ADB 命令没有更新数据...如何测量帧时间?我在这里想念什么?

4

1 回答 1

0

我正在写我的学士论文并使用这个 adb 命令来获取帧率。根据我的经验,帧率数据仅在屏幕更改时更新。例如,您有一个很长的清单。如果不滚动,只能看到有限的帧率数据,但是如果滚动,帧率数据会更多(但最大帧数为 122 )

于 2021-10-09T12:52:56.497 回答