悬浮球与 OSD
两个常驻浮层,作用不同:悬浮球管记录控制,OSD 管实时读数。
悬浮球
交互
| 操作 | 行为 |
|---|---|
| 单击 | 开始 / 停止记录当前前台应用 |
| 长按 | 打开控制面板(顶部显示实时 SOC 功耗与帧率) |
| 拖拽 | 移动位置,松手停在原地;可开启「松手吸附边缘」恢复贴边行为 |
| 闲置 7 秒 | 淡出到 55% 不透明度 |
悬浮球是 FLAG_NOT_FOCUSABLE 的——点击它不会抢走焦点,所以「记录目标」永远是你当时正在用的应用,而不是 WattScope 自己。
记录联动
用悬浮球开始记录后,一旦你退出目标应用,记录会自动停止。判定链路有两个细节:
- 「开始记录」与「是否还在前台」使用同一数据源(root
dumpsys),避免两边结论不一致导致刚记录 1 秒就被判成「已离开」 - 记录开始后的 5 秒宽限期内不做离开判定,覆盖目标应用刚获得焦点、系统前台状态尚未稳定的窗口
尺寸
迷你 40 / 标准 48 / 大 56 dp 三档,默认标准档。改动即时生效,不用重启。
球体是深色玻璃质感:顶部内高光 + 渐变亮边,记录态会多一圈外移的发光状态环。
OSD 浮层
OSD 是纯读数显示,不写入记录——它存在的意义是你在玩游戏时能抬眼看到功耗,而不是替代记录。
可用指标
11 项任选,按需勾选:
| 分组 | 指标 |
|---|---|
| 功耗 | SOC、CPU-L、CPU-M、GPU、整机功耗 |
| 性能 | GPU 频率、GPU 占用、FPS |
| 温度 | CPU、GPU、DDR |
排版与操作
- 两列 HUD:标签左对齐、数值右对齐并固定等宽,快速扫读时不会因为数字位数变化而跳动
- 标题行带 REC / LIVE 状态点,一眼区分「正在记录」与「只是预览」
- 可拖动到任意位置
- 轻点循环三档透明度
- 刷新缓慢的传感器(比如温度)保持上一次有效值,不会闪成
--
为什么两个浮层都不做实时模糊
逐帧高斯模糊会持续占用 GPU,而这恰好会污染你正在测量的功耗。所以悬浮球与 OSD 用的是静态液态玻璃底衬(半透明 + 1 dp 亮边 + 内高光),只有应用内底栏才启用 Backdrop 的实时模糊——因为那时候你不在测量。
同理,「记录中降级底栏」默认开启:一旦开始记录,连应用内的液态玻璃也会退化为静态底衬。