Repository navigation
进程保活 v3.4.4(build 4028)
进程保活 v3.4.4(build 4028)
本版主要针对两类反馈:激活后系统卡顿、桌面无响应,以及保活应用切到后台就停任务。
前者来自两处:一处是系统每次调整应用优先级时,模块都要把全机上千个进程逐个解析一遍;另一处是一个拦截逻辑的返回值有误,触发系统进程异常,严重时整个系统重启。两处都已修掉。
稳定性
修复导致系统重启的崩溃
拦截系统「批量结束进程」时返回了空值,系统拿它去判断真假时抛异常,而异常发生在系统进程里,整个系统随之重启。现已修复,并加了一层通用保护:任何拦截都按方法要求的类型返回合适值,同类问题不会再出现。
大幅降低系统开销
系统每次调整应用优先级,模块都要对全机上八百个进程逐个判断。现在非保活目标一次查表就返回,不再逐个解析。设备越弱、进程越多,这项改善越明显。
按设备性能自动调整
读取 CPU 核数与内存,分低端 / 中端 / 高端。性能有限的设备自动放慢巡检节奏,不再用同一套参数硬扛。
保活
切后台仍按前台对待
之前只阻止页面被销毁,应用仍然会收到「你不可见了」的信号并停掉任务。现在从页面状态到窗口可见性全部接管,应用始终认为自己还在前台,后台下载、播放、长连接不会因为切走而中断。
回前台还是原来的界面
补充了状态机路径,覆盖更多切后台的情形。
推送
后台收消息不再被掐断
- 息屏久置后消息不会被拖到下次唤醒:省电白名单 + 应用待机状态置为活跃
- 系统询问「是否限制该应用」时一律答否,应用不会误以为自己被限而主动断开长连接
- 守护进程不会被系统回收,推送通道不因进程消失而重连
唤醒路径也保住了
开机自启、被杀后拉起、从停止态唤醒,三条路径都已打通;拉起时不再触发备份、迁移类后台任务,避免顺带挂出通知。
网络
卡死自动恢复
原来判断「连接是否僵死」依赖系统连接表,在部分设备上读不到,功能等于没开。现在改为按流量判断:先确认正在传输,之后突然归零超过约 36 秒,自动触发一次网络恢复,等价于手动暂停再继续。
WiFi 高性能
只要目标近一分钟有流量就持有高性能 WiFi 锁,无流量自动释放,压住省电策略导致的丢包。
拉起
不再顺带启动备份类服务
拉起目标进程需要借它的某个服务作为入口。之前按声明顺序取第一个,常常启到备份、迁移、媒体这类服务,顺带挂出常驻通知。现在优先选择无副作用的服务,只有在别无选择时才回退,并记录日志。
诊断
诊断包只带本模块日志
按包名过滤,体积从几 MB 降到几百 KB,覆盖的时间范围反而更长。
自动带崩溃现场
读取系统的崩溃记录,并在包内标注「是否包含本模块」,软重启后不需要再单独抓日志。
文件名带版本与时间
不再互相覆盖,一眼能看出是哪个版本、哪一刻导出。
其它
- 后台静默:空闲的媒体会话不再常驻通知栏;非消息类常驻通知不再顶到通知栏(消息、通话、闹钟不受影响)
- 版本号显示修正:不再重复显示构建号
- 应用列表:主应用行显示「有分身」并优先展示自身状态
- 更新提示:打开应用即检查,有新版本立刻提示;同一版本一天内不重复打扰
安装后请在 LSPosed 中勾选「系统框架(android)」作用域,并重启一次系统,新钩子才会生效。