NoActive 中文文档 下载 App

NoActive 网络解冻 - 冻结消息 App 正常接收消息的方案

问题背景

当消息类应用被冻结后,进程暂停执行,网络连接可能被系统回收。这导致即使有新消息到达,应用也无法接收,直到被手动解冻。

网络解冻方案

NoActive 提供了网络解冻功能,专为需要在冻结状态下正常接收消息的应用设计。

工作原理

网络解冻的核心思路是:在保持应用进程冻结的同时,为其保留必要的网络连接能力。当有新消息到达时,短暂解冻应用以处理消息,处理完成后重新冻结。

这需要内核模块(ReKernel 系列配合)的底层支持,才能实现"进程暂停但网络活跃"的状态。

适合的应用

网络解冻主要服务于以下消息类应用:

网络质量与消息延迟

网络不稳定的情况

网络质量低时(信号弱、网络切换、Wi-Fi 不稳定),网络解冻的连接会出现不稳定,消息接收会有明显延迟。

权衡说明

开启网络解冻后,应用在冻结状态下会维持网络连接,这会带来一定的额外耗电。相比白名单(应用始终活跃),网络解冻的耗电更低,但消息接收时效性稍差。

与其他消息接收方案的对比

方案消息时效性耗电适用条件
白名单即时较高核心应用
网络解冻准即时(秒级延迟)较低有内核模块支持
FCM 推送解冻依赖 Google 服务最低开启 FCM 配置
不做任何配置差(冻结期间丢失)最低非核心应用

配合 FCM 使用

NoActive 还支持 FCM 全局解冻和单独配置 FCM 解冻应用。FCM(Firebase Cloud Messaging)是 Google 的推送服务,可在应用进程冻结时通过系统级通道推送消息。

但由于 FCM 的设计原理,NoActive 不保证 FCM 推送的到达率。如果你依赖 FCM 接收重要消息,建议配合其他方案使用。

配置方法

在应用的独立配置页面开启网络解冻开关。如果需要批量配置或 FCM 全局解冻,需要通过配置文件 AdvanceConfig.json 中的 receiveFCM 和 fcmAppSet 字段设置。

内核模块要求

网络解冻功能需要 ReKernel 系列内核模块支持。NkBinder 不支持网络解冻,使用 NkBinder 的设备无法使用此功能。

→ 继续 允许自启配置