前端时间,打算自己写一个使用 ADB 获取游戏 FPS 的脚本,在网上搜索后,打算使用 adb shell dumpsys SurfaceFlinger --lantency 命令,收集手机的 FPS 信息,写脚本过程中,遇到了上述命令打印出的信息错误的情况,在这里写一篇帖子总结下。
1、layerName 的获取:
layerName,可以通过命令 adb shell dumpsys SurfaceFlinger 获取,在输出信息中搜索 HWC layers,找到如下的信息:
PS:不同的安卓版本,输出的内容会有一定的区别,安卓 12、13,top layer 会使用 “[*]"来进行标注,安卓 10、11,是根据 layer 层级依次排序的。安卓 9 展示的
layerName,会出现在表格的最后,具体情况各位可以自己尝试一下。
这里的输出展示不全,可以通过命令 adb shell dumpsys SurfaceFlinger --list 获取完整的 layerName
2、adb shell dumpsys SurfaceFlinger --lantency 命令不输出信息
实践过程中遇到命令只输出一行 166666,没有详细信息。如果保证 layerName 没有输错的话(输入命令时 layerName 建议使用双引号括起来),可以尝试先在电脑上输入 adb shell,进入 shell 命令后,输入 dumpsys SurfaceFlinger --lantency 再次尝试一下。这个问题我在安卓 10 手机上遇到过,不确定是否具有代表性,大家可以尝试一下。
以上记录的都是自己遇到过的坑,小白玩家,有说错的,还望各位大佬指正