Skip to content

v1.2.0 · 悬浮窗保活

Choose a tag to compare

@jilin0105 jilin0105 released this 14 Sep 15:06
· 11 commits to main since this release

新增:悬浮窗保活(可选)

在屏幕上常驻一个状态小窗,把进程提升到 VISIBLE 优先级。

⚠️ 先说清楚它的能力边界

这个功能不是保活银弹,宣传时必须诚实:

它能做到的 它做不到的
提高 oom_adj 优先级,内存不足(LMK)回收时排在后台服务之后 ❌ 挡不住系统「一键清理」「强力清理」——那类操作走白名单机制,不在白名单里窗口再多也照杀
部分 ROM 判定「速冻」时会参考是否有可见窗口,可降低被速冻概率 ❌ 无法绕过电池优化、自启动等厂商管控

默认关闭,属于以观感换存活率的辅助手段(屏幕上会多一个图标)。
真正的保命线仍是:电池优化白名单 + 自启动 + 后台运行 + 回收后自动重启。

实现细节

  • 新增 FloatingWindowKeeper:权限查询/申请、窗口创建销毁、状态文案
  • 服务 onCreate 显示、onDestroy 移除,与生命周期绑定
  • 设置页新增开关 + 权限引导 + 实时状态说明(区分未启用/缺权限/运行中)
  • Activity onResume 自查补窗口(系统授权页返回无回调)
  • 进程内二次校验窗口是否真的 attached,避免残留引用

完整保活体系

机制 作用
前台服务 + 常驻通知 提升优先级
WakeLock 循环续期 防 CPU 休眠不调度
开机自启 重启/OTA 后自动恢复
精确闹钟兜底 划掉任务后重启(绕过 Android 12+ 限制)
看门狗 冻结恢复后补锁
悬浮窗(新增·可选) 提升到 VISIBLE,降低内存回收概率

安装包为 debug 签名版,仅供测试。