常见问题
没有 QPT 节点还能用吗?
能。QPT 只是分区功耗的数据源。没有它时,以下功能仍然正常:
- CPU 簇频率、每核占用
- GPU 频率与占用、DDR 频率
- 四路温度(CPU / DDR / GPU / 电池)
- 整机功耗(
power_now或电压 × 电流) - FPS 与前台应用记录
只是仪表盘与详情页的分区柱状图、分区功耗曲线会消失。判断方法:
su -c 'ls /sys/class/powercap/qpt'目录不存在就是没有;存在但里面是空的,说明厂商没有启用。
整机功耗一直是 0.00 W,是坏了吗?
不是。不少 BMS 驱动的 power_now 节点只在充电时更新,放电时直接读回字面的 0。
WattScope Next 的处理顺序是:
- 依次探测
/sys/class/power_supply/{battery, Battery, bms, hisi_bk_battery} - 按
current_now × voltage_now计算,并按物理量级自适应单位 power_now仅作最后兜底
如果三种都拿不到,才会显示 --。
双电芯机型功耗显示偏低一半
部分双电芯机型的电池驱动只上报单路电芯电流,于是整机功耗被低估约一半。去 设置 → 采样 → 双电芯机型 打开即可,实时预览、OSD 与落库同步生效。
判断方法:如果整机功耗长期稳定在「实际值的一半」附近,基本就是这个原因。
为什么游戏里 FPS 显示 0?
FPS 主数据源是 SurfaceFlinger 的呈现时间戳,回退才是 dumpsys gfxinfo。
- 大部分 SurfaceView / 游戏渲染路径能被 SurfaceFlinger 捕获
- 少数游戏的合成路径特殊,
gfxinfo里也查不到对应帧,两种源都拿不到数据 - 此时 FPS 显示 0 或空,其余指标不受影响
1.0 版本用 gfxinfo 作主源,这种情况更常见——这也是重构时换数据源的原因之一。
记录本身耗多少电?
按实测剖析,记录态在 5 Hz 默认配置下的额外功耗主要来自三点:shell 采样、落库与预览刷新。重构后:
- 采样链路 0 次 fork(1.0 每 tick 约 32 次)
- 落库批量化,约 1 次事务/秒
- FPS 与前台检测解耦,不再每 tick
dumpsys
完整的方法与数据见记录链路开销剖析。
能和原版 WattScope 一起装吗?
可以。包名不同:
- WattScope Next:
io.github.rusheng920.wattscope - 原版 WattScope:
com.qpt.powermonitor
两者数据完全独立,互不覆盖。但也不会共享历史记录——从原版切过来等于全新开始。
记录数据存在哪?会上传吗?
记录写入应用私有目录下的本地 Room 数据库,导出(JSON / CSV)完全由你手动发起,存在你选择的位置。应用不含任何上传记录的功能。
采样间隔怎么选?
| 场景 | 建议 |
|---|---|
| 日常观察、游戏帧率波动 | 200 ms(默认) |
| 长时间功耗测试(1 小时以上) | 500 ms ~ 1 s,省电且曲线足够密 |
| 抓瞬时尖峰 | 100 ms,但记录自身的开销会稍微显形 |
所有监控项同一采样率
v1.2.3 起,CPU 簇频率、每核占用、整机功耗、GPU、温度与 FPS 不再按 1 秒慢节奏采样,全部跟随你设定的间隔与 SoC 功率同拍落库。详情页八类图表时间轴逐点对齐,跨图对比不用再眯眼对时间。
为什么只支持 Android 13+?
当前 minSdk 为 33。更低版本未做适配与验证,装上也可能因为权限与 API 差异出现异常,故不做承诺。
悬浮球 / OSD 为什么不是毛玻璃?
因为逐帧高斯模糊会持续占用 GPU——而那正好会污染你正在测的功耗。两个浮层用静态液态玻璃底衬代替,只有应用内底栏才开实时模糊。
同理,「记录中降级底栏效果」默认开启:一开始记录,连应用内的玻璃都会退成静态底衬。
支持非高通平台吗?
分区功耗依赖高通 QPT,联发科、三星等平台没有这个节点,只能拿到附加指标(频率、温度、FPS 等)。部分节点名称在不同厂商 ROM 上不一致,缺失的图表会自动隐藏。