Repository navigation
进程保活 v3.4.4(build 4025)
ProcessKeepAlive v3.4.4 (build 4025)
本次更新围绕「分身保活做全」与「性能开销治理」两条线,共 20 项改动。
新增
- 分身扫描「桌面入口」通道:此前分身只有跑起来才看得到,现在双开应用即使从未打开过,也能在「分身应用」页列出并直接勾选保活。(仅限系统分身 / 应用双开;第三方双开容器内部的应用系统扫不到,只能管理容器本身)
- 页面保活「三保险」:① 进程伪装前台;② 拦截活动进入销毁队列(只拦被遮挡的情况,用户按返回键正常退出不受影响);③ 抑制系统给不可见进程派发的内存回收信号。回前台不再重载页面。
- 进程出生瞬间打标:应用进程记录诞生的那一刻就写入常驻 / 核心级标记,补上「进程刚起来、系统还没算过优先级」这段窗口期内的保护。
- 主身 / 分身两个页面各自独立的「显示系统应用」开关:分身页默认只看第三方分身,不再被分身用户里上百个预装应用淹没;两个页面各记各的,互不干扰。
- 分身行的系统属性判定更准:不再靠主用户同名应用近似判断,直接用扫描时读到的真实系统标志,分身页过滤更干净。
修复
- 设置页长按复制无效:诊断包、备份 / 恢复等几行的长按复制此前点不动(内层布局吞掉了触摸事件),现已全部可长按复制。
- 双开应用扫不到,三个堵点一并修掉:
- 部分 ROM 的用户枚举不返回分身用户(pre-created 用户被过滤)→ 多种签名合并枚举;
- 分身用户被 ROM 从用户列表里隐藏 → 用运行中进程暴露的用户 id 补齐;
- 分身用户不带标准 clone profile 标记而被误排除 → 改为只按「非主用户」判定。
- 分身扫描一条通道失败会拖垮整轮:已改为各通道独立成败,不再互相连坐。
- 分身配置可能与主包串在一起:uid 字段候选补全,避免分身键退化成主包名。
- 合成内存回收与页面保活目标相反:开了页面保活的应用不再被主动催促释放界面缓存。
- 配置弹窗黑边:「实际生效档位」提示框的显隐逻辑修正。
性能
本次针对「安装模块后手机变卡」的真实反馈做了专项治理,把 system_server 里的周期性开销压下来,同时不牺牲任何响应速度:
- 心跳进程扫描改为零文件读取:原本每 4 秒遍历 /proc 读几百个进程,现改为直接读系统内存中的进程列表,这部分开销降为原来的千分之一,保活补拉节奏保持不变。
- 全量进程扫描改为自适应节奏:间隔按实测耗时自动调整(机器越快刷新越勤,最快 2 秒;进程特别多时自动放宽),不再固定高频扫描拖慢整机调度。
- 分身扫描改为按需触发:2 分钟兜底 + 打开分身页 / 下拉刷新时即时扫描,既省掉常驻开销,也不用干等。
- 高频调用路径减负:系统每次优先级重算都会对一批进程走一遍钩子,现已确认非目标的进程一次查表即返回,省掉反复反射。
安装后务必在 LSPosed 中勾选「系统框架 (android)」作用域,否则模块不生效。
versionCode 4024 → 4025,versionName v3.4.3 → v3.4.4,签名不变,可直接覆盖安装。更新后需重启一次系统(或重启 system_server)让新钩子生效;签名不变,无需卸载。
升级后首次打开「分身应用」页,请下拉刷新一次触发即时扫描,双开应用会立即列出。