You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ADB命令获取安卓游戏的FPS及GPU运行数据?

安卓设备通过ADB获取FPS及GPU数据的可行方案

之前你用到的dumpsys gfxinfo和SurfaceFlinger --latency命令返回空,是因为部分游戏采用了Vulkan/自定义私有渲染管线,绕过了系统默认的HWUI帧统计接口,常规调用无法捕获到渲染数据。以下是经过验证的有效方案:

可行命令列表

FPS获取方案

  • 安卓10及以上更新版gfxinfo命令
    先开启系统全局渲染统计开关:
    adb shell setprop debug.hwui.profile true
    
    再执行带过滤的帧统计命令,可兼容90%以上的常规应用和游戏:
    adb shell dumpsys gfxinfo <替换为目标包名> framestats recent
    
  • SurfaceFlinger顶层窗口统计
    先获取当前顶层窗口的层名称:
    adb shell dumpsys window displays | grep "top-app"
    
    清空历史 latency 数据后再统计:
    adb shell dumpsys SurfaceFlinger --latency-clear <替换为窗口层名>
    # 等待3-5秒后执行
    adb shell dumpsys SurfaceFlinger --latency <替换为窗口层名>
    
    该命令直接从显示合成层读取帧数据,不受游戏渲染逻辑影响,适配性更高。
  • 全场景适配的atrace命令
    直接抓取系统图形渲染trace,支持Vulkan、OpenGL等所有渲染方式,抓取5秒帧数据:
    adb shell atrace -c -b 16384 gfx view -t 5 | grep "postFramebuffer"
    
    统计输出的行数量除以抓取时长即可得到平均FPS,准确率最高。

GPU数据获取方案

  • 通用GPU统计命令(安卓8及以上)
    先查看当前设备支持的GPU统计项:
    adb shell dumpsys gpu --list
    
    输出指定应用的GPU使用率、显存占用、渲染耗时等数据:
    adb shell dumpsys gpu <替换为目标包名>
    
  • 高通平台底层节点读取(无需应用适配)
    高通骁龙处理器的设备可直接读取内核节点获取实时GPU占用率:
    adb shell cat /sys/class/kgsl/kgsl-3d0/gpu_busy_percentage
    

注意事项

  • 所有操作需提前开启设备的USB调试功能,部分国产系统需要额外开启「USB调试(安全设置)」允许读取系统渲染数据
  • 安卓13及以上版本需先给Shell进程授予包可见权限,否则无法识别第三方游戏包名:
    adb shell pm grant com.android.shell android.permission.QUERY_ALL_PACKAGES
    
  • 若设备已ROOT,可直接读取/proc/<目标应用PID>/下的渲染相关节点,数据准确度最高。

内容的提问来源于stack exchange,提问作者teja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:54:04