Tidyvo 与 Clean / PDF / Recover 竞品保活、拉活及通知最终对比
Tidyvo 与 Clean / PDF / Recover 竞品保活、拉活及通知最终对比返回竞品库
报告口径本页直接渲染本地报告真源;静态能力、动态观察、推断和线上未验证项不得互相替代。

Tidyvo 与 Clean / PDF / Recover 竞品保活、拉活及通知最终对比#

报告日期:2026-08-31
对比范围:Clean 7 个 APK、PDF 6 个 APK、Recover 1 个 APK,另含 Ora 1 个仅公开资料样本;与 Tidyvo v1.0.6 通知专项 PRD、v1.1.0 正式 PRD、Tidyvo 正式 Android 工程当前代码快照对比。
重点:后台保活与恢复、通知触发、频控、远程调控、通知文案、点击路由、实现差距。
不包含:各产品可见功能盘点、竞品线上投放效果推测、Tidyvo 业务代码改造。
重要边界:本文是最终分析报告;v1.1.0 是当前正式 PRD 真源,第 10 章的 Tidyvo 改造参数是待确认建议,未自动改写 v1.0.6 或 v1.1.0 PRD,也不代表已经开发上线。

1. 三分钟读懂报告#

1.1 最终结论#

  1. 竞品不是靠一条“神奇保活链路”,而是靠多入口恢复。 成熟样本把 Foreground Service(前台服务)、短 Job、周期 Job、WorkManager、Alarm、Boot 和 FCM 汇入一个恢复入口;目标是提高恢复概率,不是保证永久存活。
  2. Force Stop(用户在系统设置中强制停止)是共同硬边界。 本次已动态测试的 Clean、PDF、Recover 样本都没有可靠证据能绕过强停。
  3. Boot 恢复是否成功,关键不只是有没有 Boot Receiver。 Android 16 上,CleanMas、CleanLoom、BlazeClean、AuraClean 利用开机临时白名单内的短 Job 成功建立 FGS;Clean Sweep Master、NeatPulse、Flare 的本轮结果不同。
  4. 通知成熟度最高的共同点不是“发得多”,而是先产生候选,再经过多层门控。 常见门控包括 App 后台、设备解锁、屏幕状态、安装首延迟、全局冷却、场景冷却、单模板上限、每日总上限和时间窗口。
  5. 2 分钟轮询只应理解为“每 2 分钟检查一次”,不能理解为“每 2 分钟发一条”。 是否展示必须由真实场景、权限、频控和单轮最多一条共同决定。
  6. Tidyvo v1.0.6 的候选生成与单轮一条设计是清楚的,但全局防轰炸层偏弱。 它对 13 个周期/状态 ID 分别设置每日 5 次、间隔 15 分钟;数学上允许周期类最多 65 条/日,4 个事件 ID 又只有同 ID 60 秒间隔,没有全局每日总上限和全局冷却。
  7. v1.1.0 没有重新定义通知频控,而是要求沿用既有发送时机、频控和授权,只调整通知点击路由。 因此 v1.0.6 仍是通知机制参考,但 v1.1.0 对页面和功能的删除会覆盖旧路由。
  8. v1.0.6 的 17 个通知 ID 不能原样进入 v1.1.0。 To clean、Records 和独立 Large files 已删除;Notification Cleaner 被限定为一次性手动清理,不做后台持续监听。因此 ID 11、15、8、17 以及 ID 18 的大文件分支存在直接冲突。
  9. 竞品常用远程配置控制开关、频率、模板和灰度;Tidyvo v1.0.6 目前中台只控制受众三态。 这让客户端简单,但上线后无法快速降低频率、关闭单场景或调整时间窗口。
  10. Tidyvo 的文案真实性明显优于多数激进竞品。 通知专项要求动态数值必须来自本机真实数据,不使用固定 GB、固定提速比例或虚构风险;v1.1.0 也要求页面、Widget 和通知任务只使用真实本机数据,这点应保留。
  11. Tidyvo 正式工程当前并未实现 v1.0.6 的完整通知与恢复系统,也未实现 v1.1.0 的完整产品范围。 当前代码可确认的是通知权限和充电场景的本地通知;Manifest 中未见自定义 FGS、Boot Receiver、JobService、FCM Service 或 NotificationListenerService,依赖中也未接 Firebase Messaging。
  12. 推荐方向不是推翻现有“轮询+事件”,而是在 v1.1.0 先完成 ID 清理和路由重映射,再补统一闸门。 保留合格的 2 分钟候选检查和主动事件;停用失效 ID,并增加全局冷却、全局日上限、时间窗口、单场景远程开关和一条可见业务通知槽位。

1.2 一页决策表#

事项 竞品成熟做法 Tidyvo v1.0.6 通知 / v1.1.0 产品规则 推荐结论
候选来源 周期检查 + 本地事件 + FCM/Boot 等恢复入口 v1.0.6 为 13 个周期/状态 ID + 4 个事件 ID;v1.1.0 删除部分承接能力 结构保留,ID 先按第 9.3 节收口
轮询 2 分钟、1 分钟、10 分钟、24 小时等多种节奏;轮询不等于展示 固定 2 分钟检查 保留为候选扫描,连续空轮后可退避
单轮展示 多数成熟样本只选一条或用同 ID 覆盖 每轮/每事件最多一条 保留
全局冷却 40/43 分钟、1 小时、72 小时等 无 建议新增 60 分钟;客户端硬下限 43 分钟
全局日上限 4、9、15、18、分周限制等 无 建议默认 6 条/日,远端只能下调或最多放到 9
单 ID 上限 常见 1–10 次/日 周期/状态每 ID 5 次/日;事件无日上限 建议周期 ID 1–2 次/日;事件也计入全局总量
安装首延迟 常见 5 分钟;低频产品可到 2 天 未形成统一安装首延迟总闸门 建议 30 分钟;新用户首会话不做营销召回
展示时间 PDF 样本常见 07:00–22:59;All Document 固定 20:30 无统一时间窗口 建议 08:00–22:00
远程调控 开关、场景、频率、内容、人群、灰度 只有 OFF / ORGANIC_ONLY / PAID_ONLY 建议补最小 7 字段,不把文案放中台
文案 动态值、强行动词、风险恐吓并存 真实变量、短文案、固定路由 保留真实性;禁止虚假数值和伪造紧急状态
Force Stop 无可靠突破 PRD 已写硬边界 保留真实边界,不做“永久保活”承诺
v1.1.0 页面兼容 竞品不适用 删除 To clean、Records、独立 Large files;图片/视频通知进入完整复核列表 先停用失效 ID,再重映射可保留 ID

白话结论: Tidyvo 现有方向的主要问题不是“2 分钟检查太频繁”,而是检查通过以后缺少一个能统管所有场景的总闸门。

2. 样本、证据和概念口径#

2.1 样本范围#

品类 逆向样本 公开资料样本 核心参考价值
Clean 7 0 高频场景通知、多层频控、白标族群、多入口 Boot 恢复
PDF 6 1(Ora) FCM、本地延迟提醒、同 ID 覆盖、时间窗口、点击/忽略退避
Recover 1 0 2 分钟策略、通知资源池、Remote Config、多路恢复与统一路由
Tidyvo 2 份 PRD + 1 个正式工程快照 — v1.0.6 通知机制、v1.1.0 正式产品范围与当前实际实现

逆向 APK 合计 14 个;Ora 只有 Google Play 公开资料,不能当作 APK 逆向结论。

2.2 证据标签#

标签 含义 能证明什么 不能证明什么
[S] APK 静态证据 组件、字段、模板和代码路径存在 线上一定开启、真实成功率
[D] 真机动态证据 本次设备、系统和观察窗口内实际发生 其他 ROM、长期稳定率、全量用户
[R] 远端配置模型或本地兜底 客户端能接收和执行这些参数 当前服务端实际下发值
[P] 商店公开资料 查询日期的公开声明 APK 内真实实现
[I] 合理推断 多条证据支持的用途判断 直接事实
[U] 未验证 当前证据不足 不得用猜测补齐

2.3 六个容易混淆的词#

术语 白话解释
保活 App 进程或服务还没有死,例如 FGS 正在运行。
拉活 App 已经不运行,后来被 Job、Alarm、Boot、FCM 等入口重新启动。
恢复 某个入口起来后,把统一调度器、任务和服务重新安排好。
Boot 恢复 手机重启完成后,App 收到开机广播并重新安排后台能力;不是用户打开 App。
FGS Foreground Service(前台服务),Android 要求它持续展示一条系统通知;它是后台执行载体,不等于业务召回通知。
Force Stop 用户在系统设置中点“强制停止”;系统会把包标为 stopped,普通广播、Job、Alarm 和 Service 不能保证恢复。

3. 三类竞品的总体架构#

成熟样本大致都能归纳成下面这条链路:

Boot / FCM / Activity / Job / Work / Alarm / 本地事件
                         ↓
                    统一恢复入口
                         ↓
                确保调度器与状态可用
                         ↓
         周期轮询或事件回调生成通知候选
                         ↓
     权限 → 后台 → 设备状态 → 时间 → 冷却 → 上限
                         ↓
               本轮选 0 或 1 条模板
                         ↓
        发布通知 → 点击跳板 → 目标页 → 埋点
品类 代表架构 主要优势 主要风险
Clean FGS + 秒级 Job + 20 多分钟 Job + 8 小时 Alarm + Boot + FCM 恢复入口多,场景信号丰富 specialUse 合规、通知过密、虚假性能文案
PDF 一端是 QuickDoc/First/Smart 的多入口恢复;另一端是 Lumio/Stackwise/All Document 的低频不活跃提醒 既有高恢复型,也有低打扰型可对照 FCM 服务端不可见、备用模板可能被误判为在用
Recover Service + 4–6 秒 Job + 18 分钟 Work + 24 分钟 Job + 8 小时 Alarm + Boot + FCM 调度、通知、路由和配置闭环完整 2 分钟高频配置、通知监听权限、固定虚假数字

白话结论: 竞品的真正共同点是“入口多,但最终必须汇到同一套规则”,不是每个入口各发一条通知。

4. 保活、拉活与恢复能力对比#

4.1 组件覆盖#

产品/族群 FGS 秒级恢复 中周期 长周期 Boot FCM 真机关键结论
Flare specialUse、START_STICKY 3.8–5.8 秒 Job 约 23 分钟 Job + 20 分钟 Work 约 8 小时 Alarm 有入口 有 本轮 Boot 未恢复 FGS;Force Stop 不恢复
Clean Sweep Master dataSync、START_STICKY 未见同类秒级主链 30 秒 Job + 15 分钟 Work 未见同类核心 Alarm 有入口 有 Boot 创建进程,但 FGS 被系统拒绝
CleanMas/CleanLoom specialUse、START_STICKY 约 2–5 秒 Job 约 21–25 分钟 Job 约 8 小时 Alarm 有 有 Android 16 Boot 成功建立 FGS
Blaze/Aura specialUse、START_STICKY 约 3–7 秒 Job 约 21–24 分钟 Job 约 8 小时 Alarm 有 有 Android 16 Boot 成功建立 FGS
NeatPulse specialUse、START_STICKY 约 2–4 秒 Job 约 22 分钟 Job 约 8 小时 Alarm 有 有 Boot 有启动尝试,但 FGS 被拒绝
QuickDoc 自定义 FGS 有 Job Job + Work Alarm 有静态入口 有 划卡后 FGS 和常驻通知仍在;本轮未重测 Boot
PDF Reader(First) 自定义 FGS 有 Job 15 分钟 Job + Work Alarm 有 有 Boot 已动态恢复;纯后台 Job 拉进程后仍可能无法拉 FGS
Smart PDF specialUse FGS 未按白标口径确认 Job 889 + Work Alarm 有 有 划卡后 FGS 维持;Boot/Doze 未完整动态验证
Lumio/Stackwise 无自定义常驻 FGS 证据 无 唯一 OneTimeWork 到点再排下一轮 无自定义 Boot SDK/配置线索 划卡后进程消失,不属于常驻保活
All Document Reader 无运行中自定义 FGS 无 Reminder Alarm + 回收站 Worker 2 天/3 天低频召回 声明链不完整 非业务闭环 有进程不等于拉活;Force Stop 不恢复
Photo Recovery START_STICKY FGS 约 4–6 秒 Job 18 分钟 Work + 24 分钟 Job 约 8 小时 Alarm 有 有 Boot 后服务恢复;划卡短时仍在;Force Stop 为边界
Tidyvo v1.0.6 PRD 计划 START_STICKY FGS 计划 4–6 秒 Job 计划 18 分钟 Work + 24 分钟 Job 计划约 8 小时 Alarm 计划 Boot/升级 计划统一 Topic 空消息 是需求,不是当前代码事实
Tidyvo v1.1.0 PRD 未重新定义,只有在未冲突部分才可继承 v1.0.6 同左 同左 同左 同左 同左 v1.1.0 本版重点是产品结构与任务直达,不能据此认定后台链已实现
Tidyvo 当前代码 未发现自定义 FGS 未发现 只有 WorkManager 依赖,未发现恢复调度 未发现 未发现 Boot Receiver 未接 Firebase Messaging 只有充电本地通知链路已存在

4.2 Boot 为什么有的成功、有的失败#

Android 16 上四个成功白标包的动态顺序是:

直接从普通后台态请求主 FGS → 系统拒绝
收到 BOOT_COMPLETED 临时白名单 → 启动短 JobService
短 JobService 在允许窗口内进入前台 → 再请求主 FGS → 成功

关键不是“短 Job 能绕过系统”,而是它在 Boot 场景的临时合法窗口内完成了前台桥接。Receiver 到达晚、Job 执行时机错过、FGS 类型或通知权限不满足,都可能失败。

4.3 Tidyvo 与竞品的真实差异#

维度 竞品现状 Tidyvo v1.0.6 / v1.1.0 PRD 当前工程差距
恢复入口 成熟样本多路并存 规划完整 绝大多数尚未实现
统一入口 Clean 白标、PDF First、Recover 已见统一思路 明确要求所有入口只恢复同一调度器 尚无对应实现
Boot 动态验证 部分成功、部分失败 需要支持 尚无组件,无法验收
FCM 有客户端服务,服务端策略多为未知 单 Topic data-only 空消息 未接 Messaging SDK
Force Stop 共同硬边界 PRD 已承认 应继续保持真实口径
Play 合规 多个样本使用 specialUse,不代表可照搬 PRD 暂写同类结构 实现前必须确认 FGS 的真实用户可感知用途和申报

白话结论: Tidyvo 的方案图和成熟竞品相似,但当前代码还没有搭出这张网;不能用“依赖里有 WorkManager”代替实际恢复能力。

5. 通知触发与候选机制对比#

5.1 触发来源#

触发来源 Clean PDF Recover Tidyvo v1.0.6 通知专项
周期轮询 1/10 分钟检查、8 小时任务等 QuickDoc 定时、低频 Work/Alarm 2 分钟 Online_B 等策略 2 分钟检查 13 个周期/状态 ID
App 退后台/Home 多个包直接产生候选 QuickDoc 即时;Lumio/Stackwise 重排延迟提醒 可进入普通通知策略 周期场景继续由调度器判断
解锁/亮屏 Clean 大量使用 QuickDoc 使用;First 主要作为 FCM 门控 代码存在相关门控 未设为所有通知的统一硬规则
安装/卸载 Clean 多包直接通知 QuickDoc 有模板 ID 14/15 的竞品语义来源 Tidyvo 改为新增媒体、剩余待处理项目事件
截图/媒体变化 Clean 有截图事件 QuickDoc 文件创建/删除 有截图/大文件场景 ID 14 新媒体、ID 16 新截图
电池/网络 Clean 丰富 PDF 较少 非核心 当前 17 个 ID 中不是主轴;现有工程另有充电通知
Notification Cleaner Blaze/Aura 有通知过载模板 非主轴 ID 17 Tidyvo ID 17 本地事件
FCM 多为恢复入口或远端正文 QuickDoc/First/Smart 可生成本地模板 远程通知或恢复入口 空消息只恢复调度;另有运营定时可见 FCM

5.2 候选不是通知#

以 Tidyvo 2 分钟轮询为例:

第 1 轮:检查 13 个 ID → 都没有真实数据 → 0 条
第 2 轮:截图场景合格,但全局冷却未结束 → 0 条
第 3 轮:模糊照片和截图都合格 → 只选游标遇到的第 1 个 → 1 条
第 4 轮:其他场景仍合格,但全局冷却 → 0 条

所以“每天 720 次轮询”只代表最多 720 次候选检查。真正风险在于:如果没有全局冷却和全局总量,多个 ID 可以轮流绕开各自的 15 分钟间隔。

5.3 设备与页面门控#

门控 竞品采用情况 主要作用 Tidyvo 推荐处理
App 在后台 Clean、QuickDoc、First、Smart 等广泛使用 用户正在 App 内时不再召回 全局必选
通知权限已授权 所有可见通知都必须满足 系统硬条件 全局必选
设备已解锁 Clean、QuickDoc/First 等使用 避免锁屏暴露敏感文件/联系人 普通业务通知必选
屏幕亮着 Clean 高频样本常用 尽量在用户正在用手机时出现 事件通知建议;低频不活跃提醒可不强制
竖屏 Clean、First、Smart 部分使用 降低自定义 RemoteViews 布局异常 只在自定义 UI 未完成横屏验收时临时启用
安装首延迟 竞品常见 5 分钟,All Document 可到 2 天 避免首装立即轰炸 建议 30 分钟且首会话不发营销召回
时间窗口 First/QuickDoc/Smart 常见 07:00–22:59 避免夜间打扰 建议 08:00–22:00
目标页可用 成熟路由会检查或回首页 避免点开空页/失效文件 全局必选
数据真实且仍有效 Tidyvo PRD 已要求 防止假数字和失效文件 保留为硬规则

白话结论: “已解锁、亮屏、竖屏”不是所有竞品统一的 Android 规定,而是部分高频竞品为了隐私、时机和自定义布局主动加的产品门槛。

6. 频控规则对比#

6.1 Clean 的高频多层控制#

产品/族群 首延迟 全局冷却/总量 场景/模板控制 远端边界
Flare 5 分钟 后台场景全局 40 分钟 后台模板 60 分钟且 10/日;安装、卸载、电池、截图常见 10 分钟;网络 N1/N2 为 1/2 次/日 enConf 可改
Clean Sweep Master 按配置 首/二/后续阶段约 5–15、10–30、47–75 分钟 channel 分支功能/充电/应用 18/3/3;normal 分支 4/1/1 Firebase Remote Config
CleanMas/CleanLoom/Neat 5 分钟 43 分钟;全局 9/日 A 类每模板 5/日;清理 40 分钟;事件类多为 10 分钟 活跃/关闭两个兜底分支
Blaze 5 分钟 43 分钟;A/FCM 合计 15/日 A 类每模板 5;B 类每模板 10、60 分钟;burst 2 开/关分支
Aura 5 分钟 43 分钟;A/FCM 合计 9/日 A 类每模板 3;其他近似 Blaze;burst 2 活跃分支

6.2 PDF 的低频与覆盖控制#

产品 核心频控 特点
QuickDoc 新用户 5 分钟抑制;FCM 本地 5 分钟节流;07:00–22:59;定时至少 1 小时 普通通知统一 ID 2002,后发覆盖旧通知
PDF Reader(First) FCM 本地 5 分钟;07:00–22:59;后台/锁屏/方向门控 服务端总量未知,不能把 5 分钟当真实发送频率
Lumio/Stackwise 默认关闭、24 小时不活跃提醒;用户再次离开会重置唯一 Work 低频、不会累计多条延迟任务
Smart PDF 首装 300 秒;默认最小 1 小时;另有 4 秒静默更新最多 3 次 4 秒更新是进程内连续提醒,不宜照搬
All Document Reader 首延迟 2 天、20:30、每 3 天;7 天最多 2 条;活跃 48 小时抑制;点击 72 小时冷却;忽略 3/6 次退避/停发 最完整的“用户反应驱动降频”模型

6.3 Recover 与 Tidyvo#

控制 Photo Recovery APK 策略 Tidyvo v1.0.6 当前规则 差异
轮询/间隔 Online_B 为 2 分钟;Offline_A 为 30 分钟 固定 2 分钟候选检查 Tidyvo 只有一档
普通通知总上限 Online_B upper_limit=99,Offline_A 5 无全局上限 Tidyvo 缺统一总闸门
单 ID 资源可有各自上限和间隔 13 个 ID 各 5/日、15 分钟 逐 ID 上限偏宽
连续与可见数量 continuous=12、cooling 2 分钟、Android 16 可见 1 单轮最多 1 条,没有连续阈值 Tidyvo 单轮控制更清楚,但跨轮无总量
事件 安装/卸载/截图等 ID 14–17 同 ID 60 秒,无日上限 事件可能绕开周期频控

6.4 Tidyvo 当前规则的数学风险#

  • 2 分钟轮询:一天最多进入 720 轮候选检查。
  • 13 个 POLLING / STATE ID:每 ID 5 次/日,理论产品上限为 65 条/日,即使每个 ID 自己都没有超限。
  • 4 个 EVENT ID:只限制同 ID 成功展示后 60 秒,不设置每日上限,也不计入周期 ID 上限。
  • 常驻通知、Notification Cleaner 汇总通知、运营 FCM 定时通知又不纳入本地普通通知频控。

这不是说 Tidyvo 一定会发到这个数量,而是说现有规则没有一条硬门槛能证明它绝不会发生。

7. 通知文案、真实性与路由对比#

7.1 文案主题#

品类 代表英文原文 中文含义 真实性判断
Clean RAM at %1$s full! Close apps now RAM 使用率达到某值,立即关闭应用 只有 %1$s 来自真实测量才可用
Clean Speed Boost 30% in 1 Min! 1 分钟提速 30% 固定效果宣称,风险高
Clean %1$s installed! Clean APK files 某 App 已安装,清理 APK 需要真实包安装事件和可处理文件
Clean App removed! Clear leftover files App 已卸载,清理残留 需要真实卸载事件;不能保证一定有残留
PDF Ready to Scan Files! 准备扫描文件 功能引导,可不依赖假状态
PDF New File Detected 检测到新文件 必须有真实文件事件
PDF Urgent file needs review! 紧急文件需要查看 未见真实紧急性判断,风险高
PDF Merge PDFs in Seconds 几秒合并 PDF 功能提示,真实性较好
PDF Important Files May be Corrupted! 重要文件可能损坏 All Document 默认集合未选择,且无检测证据
Recover Get your lost photos back in seconds! 几秒找回丢失照片 能力夸张风险
Recover 1.8GB Junk Detected 检测到 1.8 GB 垃圾 APK 固定数字,不是实时扫描
Recover Come see the restored memories 看看找回的回忆 需要真实恢复记录
Tidyvo v1.0.6 Largest File: {largest_file_size} 最大文件为真实大小 变量规则真实,但 v1.1.0 删除独立 Large files,不能原样继承
Tidyvo v1.0.6 → v1.1.0 New Screenshot Saved 新截图已保存 需要真实截图事件;v1.1.0 点击后进入 Photos 完整列表,不只展示该截图
Tidyvo v1.0.6 {count} Notifications to Review 有若干通知待整理 v1.1.0 不做后台持续监听,因此旧 ID 17 应停用

7.2 Tidyvo 文案相对竞品的优势#

  1. 动态变量无可靠值时,模板不进入随机池。
  2. 文案、CTA、UI 和固定路由作为一整套随机,不交叉拼接。
  3. 点击进入对应工具,不把所有通知都丢回首页。
  4. 不使用固定虚假 GB、App 数量、提速比例和未经检测的“紧急/损坏/过期”。
  5. 事件候选被拦截后不排队、不补发,避免过时通知。

7.3 仍需注意的 Tidyvo 文案风险#

风险点 原因 处理原则
Large Files Found 最近一次扫描可能已经过期 发布前再次检查文件存在和大小
Notifications to Review 涉及其他 App 通知隐私 锁屏不展示内容,不上传正文和来源明细
Don’t Miss Important Alerts Tidyvo 未必能判断“重要” 建议改成中性的 Review Recent Alerts,除非已有重要性规则
Cleanup Done, Items Remain 清理后队列可能已经变化 发布前重新读取 To clean
自定义收起/展开 UI 横屏、系统降级和不同字体可能截断 必须验收系统标准样式回退与横屏

白话结论: 最值得学习的是“场景、文案、数据和落地页一致”;最不该学习的是“用固定数字制造紧迫感”。

8. 远程调控能力对比#

8.1 竞品如何配置#

产品/族群 远端可控内容 APK 能确认 APK 不能确认
Flare enConf 场景开关、频率和模板相关配置 字段和本地兜底 当前用户命中值
Clean Sweep Master Firebase Remote Config 的总开关、类别上限、首/后续间隔、归因分支 模型与两套兜底 线上实验、人群和实际值
Clean 白标族 自有配置分支、总开关、冷却、上限、FCM Topic 活跃/关闭兜底 服务端当前分桶
Lumio/Stackwise 开关、离开后小时数、按语言通知内容 默认 false/24h/空内容 线上文案和开启比例
All Document Reader 首延迟、投递时间、周期、场景集合、点击/忽略退避 完整默认值 Remote Config 覆盖值
Photo Recovery 策略组、通知 ID、路由、频率、素材池、广告与受众 客户端结构和兜底 线上策略、用户分群、效果

8.2 Tidyvo 当前中台边界#

Tidyvo v1.0.6 PRD 只允许一个字段:

字段 值 作用
notification_audience_mode OFF / ORGANIC_ONLY / PAID_ONLY 控制整套本地通知对哪类来源用户生效

优点是简单、客户端规则稳定;缺点是上线后如果单场景异常、频率过高或夜间投诉,只能整体关闭或发新版。

8.3 建议的最小远程配置(待确认)#

不建议把 43 套文案和复杂规则全部搬到中台。建议只增加 7 个运营安全字段:

字段 默认值 用途 客户端硬边界
notification_audience_mode OFF 受众总开关 保留现有三态
enabled_scene_ids 本版白名单 单独关闭异常场景 只能关闭客户端已内置 ID,不能新增未知 ID
daily_global_limit 6 所有营销/召回普通通知总量 远端最多 9
global_cooldown_minutes 60 任意普通通知之间的最短间隔 远端不得低于 43
quiet_hours 22:00–08:00 夜间不展示 客户端固定保留静默时段
poll_interval_minutes 2 候选检查节奏 只能放慢,不能低于 2
config_version 递增整数 回滚、审计和埋点对齐 解析失败使用客户端安全默认值

不放中台: 文案正文、文件名、文件 URI、联系人、通知正文、FCM Token、任意新路由、超过客户端硬上限的频率。

9. Tidyvo v1.1.0 需求叠加对比#

9.1 两份 PRD 的关系#

文档 当前角色 通知相关内容 冲突处理
Tidyvo-PRD-v1.0.6.md(本地证据路径:../../Deep%20Cleaner/01-产品需求/Tidyvo-PRD-v1.0.6.md) 通知系统专项真源 13 个周期/状态 ID、4 个事件 ID、2 分钟轮询、频控、模板、FCM 与恢复入口 v1.1.0 没有明确变更的通知机制可继续作为参考
Deep Cleaner-PRD-v1.1.0-阅读优化版.md v1.1.0 线上与线下唯一正式 PRD 真源 沿用既有通知发送时机、频控和授权;本版只调整点击后的目标路由,同时改变页面、任务和 Notification Cleaner 边界 v1.1.0 明确删除或改变的能力优先,旧 ID 不能继续指向不存在的页面/数据

因此,不能简单说“v1.1.0 完整继承 v1.0.6 的 17 个 ID”。准确口径是:

v1.0.6 提供通知机制和旧场景表
              +
v1.1.0 提供当前产品结构、权限、数据和路由真源
              ↓
逐 ID 做兼容性复核后,才能形成 v1.1.0 实际通知清单

9.2 v1.1.0 对通知直接产生的变化#

v1.1.0 正式需求 对通知系统的影响
Home、Tools、Charging、Settings 四个一级 Tab 通知返回路径和目标页层级要按新信息架构处理
Photos 聚合 Similar、Duplicates、Screenshots、Blurry 图片任务通知进入 Photos 正常完整复核列表,不直接筛选、置顶或标记某张新增图片
Videos 为完整视频复核列表 视频任务通知进入 Videos,不提供平行 All Videos 页面
删除 To clean 常驻模块和跨页面队列 所有依赖 To clean 队列或页面的通知失效
删除 Records 入口、页面和历史列表 所有依赖 Records 页面/历史列表的通知失效;如需内部时间基线必须另行明确最小数据边界
删除独立 Large files 入口和统计 不能继续用“发现 30 MB 大文件”作为已有 Large files 产品能力;低存储状态可另行判断
Notification Cleaner 为一次性手动清理 不改成后台持续监听、自动清理或通知收纳箱;依赖后台新通知监听的召回与 v1.1.0 冲突
Permissions 分开列 Notification access 与 Notifications 读取/清理其他 App 通知的权限,和本 App 展示提醒的权限必须分开判断
冷启动、Splash、Onboarding、Language 不主动申请通知权限 通知系统不得借 v1.1.0 首启链路提前弹授权
通知目标任务直达 目标非法、已处理、媒体不存在或权限不足时回 Home;点击不得自动删除或绕过系统授权

9.3 v1.0.6 场景 ID 对 v1.1.0 的兼容性#

v1.0.6 ID 原场景/路由 v1.1.0 状态 处理结论
12 长时间未检查存储 → Smart Clean Smart Clean 和成功扫描时间仍存在 可保留;无文件权限时按 v1.1.0 回 Home/授权链,不直接形成空结果
10 模糊照片 → Blurry Blurry 被聚合到 Photos 需改路由到 Photos 正常完整复核列表;不得只筛选或置顶模糊照片
13 长时间未清理 → Smart Clean Records 页面被删,但最近成功清理时间/空间基线未在 v1.1.0 明确 待确认;只有允许保存最小非用户可见基线时才能保留
1 综合存储检查 → Home 旧资格依赖 Large Files、To clean 等六模块 需重写资格,只能使用 v1.1.0 当前 Smart Clean 六类真实结果与 Home 可用状态
2 重复/相似照片 → Duplicates Duplicates 被聚合到 Photos 需改路由到 Photos 正常完整复核列表
9 Smart Clean 真实可清理量 → Smart Clean Smart Clean 仍是核心链路 可保留;必须使用当前有效扫描和 v1.1.0 去重容量口径
3 大视频 → Compress Compress 保留但移入 Tools;v1.1.0 Videos 大小分档与旧 30 MB 阈值不同 条件保留;目标页可用,触发阈值需重新确认,不能自动沿用 30 MB
11 待清理项目 → To clean To clean 和跨分类队列被删除 停用
5 私密文件管理 → Private Space Private Space 保留 可保留;不得在锁屏暴露私密文件信息
6 截图清理 → Screenshots Screenshots 被聚合到 Photos 需改路由到 Photos 正常完整复核列表
7 重复联系人 → Contacts Contacts 保留 可保留;只在已授权且真实扫描存在重复组时合格
8 清理记录回访 → Records Records 页面和历史列表被删除 停用
18-A 系统低存储 → Smart Clean Home/Smart Clean 有真实系统存储数据 条件保留;只使用 Android 真实低存储与可用空间,不叫“大文件扫描”
18-B/C 30 MB 大文件/最大文件 → Smart Clean v1.1.0 删除独立 Large files 能力和统计 停用或重新立项,不能按旧规则直接继承
14 新增媒体 → Smart Clean v1.1.0 有新增任务基线,通知可直达 Photos/Videos 条件保留;按媒体类型进入完整列表,不筛选/置顶新增项
15 清理后仍有项目 → To clean To clean 和持久待处理队列被删除 停用;清理结果在当前 Cleanup report 链路内完成
16 新截图 → Screenshots 图片通知需进入 Photos 完整列表 条件保留;路由改 Photos,文案不得让用户误以为落页只显示新截图
17 新增可清理通知 → Notification Cleaner v1.1.0 明确不做后台持续监听、自动清理或收纳箱 停用后台事件召回;除非以后另行修改 v1.1.0 产品边界

9.4 v1.1.0 下的通知数量不是“13+4”#

在未做新的产品决策前,v1.1.0 最保守的兼容集合是:

  • 可直接保留:ID 12、9、5、7。
  • 改路由后可保留:ID 10、2、6。
  • 需要重新确认条件/数据:ID 13、1、3、18-A、14、16。
  • 应停用:ID 11、8、18-B、18-C、15、17。

这是一份兼容性结论,不是已经改写后的最终 ID 表。尤其是 ID 13 的内部基线、ID 3 的视频阈值、ID 14/16 的“完整列表落页”体验,需要常老大另行确认后才能回写正式 PRD。

9.5 v1.1.0 与竞品对比后的新增判断#

  1. v1.1.0 的任务直达和失效回 Home,接近 Recover 的统一跳板思路,比竞品“全部回 launcher”更清楚。
  2. 图片/视频通知进入完整复核列表,不筛选新内容,降低了过期目标和深链失败风险,但文案必须避免承诺“点开只看刚新增项”。
  3. Notification Cleaner 采用一次性手动处理,比 Photo Recovery 的后台监听和自动取消更收敛,权限解释和隐私风险更低。
  4. 删除 To clean、Records 和 Large files 后,旧通知 ID 数量自然减少;这反而有利于降低 2 分钟轮询的候选密度。
  5. v1.1.0 没有新增通知频控,所以第 6 章指出的全局冷却和总量缺口依然存在,但任何调整都属于新产品决策,不能冒充 v1.1.0 已有需求。

白话结论: v1.1.0 不是给旧通知系统再加一批功能,而是把旧通知必须落到的产品地基换了;先删掉没有落脚点的通知,再谈频率优化。

10. 适合 Tidyvo 的最终改造建议(待确认,不是现行 PRD)#

10.1 总体原则#

保留现有“轮询 + 主动事件 + 多入口恢复”,只改造成:

恢复入口层:Activity / Boot / FCM / Job / Work / Alarm
                         ↓
统一调度层:合并并发恢复,只维护一套调度器
                         ↓
候选层:2 分钟周期 ID + 即时事件 ID
                         ↓
统一闸门:受众 / 权限 / 后台 / 设备 / 时间 / 冷却 / 总量
                         ↓
选择层:单轮最多 1 条,事件不排队,周期游标继续
                         ↓
展示层:一个普通业务通知槽位 + 独立常驻/通知清理槽位
                         ↓
路由与记录:点击跳板 → 目标页;记录展示/点击/忽略/原因

10.2 推荐执行规则#

层级 推荐规则 说明
总开关 保留 OFF / ORGANIC_ONLY / PAID_ONLY 不新增“全量开启”也可以,但需明确无法归类用户默认不发
首装保护 安装后 30 分钟且首会话结束前不发营销召回 比竞品 5 分钟更稳健
轮询 默认 2 分钟只做候选检查;连续 5 轮无候选后退避到 15 分钟;出现真实状态变化后恢复 2 分钟 降低无效 CPU 唤醒;是否采用需技术评估
事件 仅对 v1.1.0 兼容性确认通过的事件 ID 立即检查,不等待轮询;拦截即结束、不排队、不补发 ID 15、17 当前应停用,ID 14、16 需先确认路由
全局冷却 任意普通通知成功展示后 60 分钟 覆盖不同 ID,避免轮流发
全局日上限 所有本地普通召回合计默认 6 条/日,最高 9 条/日 常驻通知不计;运营可见 FCM 建议也计入用户总触达统计
周期单 ID 默认 1 条/日;高价值状态最多 2 条/日 不建议继续统一 5 条/日
事件同 ID v1.1.0 确认保留后,新媒体/截图建议 60 分钟 60 秒只适合技术去重;ID 15、17 当前应停用而不是另设频率
时间窗口 当地 08:00–22:00 系统级/用户主动任务完成通知可例外,营销召回不例外
App 状态 App 必须在后台 前台不做召回
设备状态 普通召回要求已解锁;事件通知优先屏幕亮;横屏只在 UI 未验收时拦截 不把竖屏永久写死
单轮结果 最多展示 1 条;全部不合格允许 0 条 轮询不是发送器
可见槽位 普通业务通知统一一个可见 ID,后发覆盖旧通知 避免通知栏堆积;不同类型的系统/任务通知另分槽位
点击/忽略 点击后对应场景 72 小时冷却;连续忽略 3 次退避 7 天,6 次停发该场景 借鉴 All Document Reader 的用户反馈降频
数据真实性 发布前再次校验文件、数量、权限和目标页 变量失效则跳过,不使用缓存假值

10.3 候选优先级#

不建议用“谁先被轮询到就永远优先”的单一顺序。可以保持游标公平性,同时按价值分三层:

优先层 场景 原因
P0 用户任务 用户发起的任务完成/失败;只在系统需要通知且 App 不在前台时使用 v1.1.0 不保留 To clean 队列,不能用旧 ID 15
P1 真实事件 v1.1.0 确认保留后的新增媒体、新截图 时效性强,但必须经过全局冷却并进入完整 Photos/Videos 列表
P2 状态召回 长期未扫描、真实垃圾、重复/模糊照片、联系人、Private Space 可等待后续轮询,不需要即时

同层继续使用游标避免固定场景长期霸占;跨层仍受全局冷却和每日总量约束。

10.4 哪些现有规则应保留#

  • 每轮/每事件最多展示一条。
  • 候选未展示不计次数和冷却。
  • 已通过 v1.1.0 兼容性确认的事件被拦截即结束,不排队、不补发。
  • 动态模板必须取得真实变量。
  • 文案、UI、CTA 和路由整套绑定。
  • FCM Topic 空数据消息只恢复调度,不直接展示通知。
  • 所有恢复入口只进入统一调度器。
  • Force Stop、系统拒绝和权限关闭写成真实边界。

10.5 哪些现有规则建议调整#

现行 PRD 建议调整 原因
周期 ID 统一 5 次/日 改为默认 1 次,高价值状态最多 2 次 13 个 ID 叠加上限过高
周期 ID 只做 15 分钟同 ID 间隔 增加跨 ID 全局 60 分钟冷却 防止不同 ID 轮流展示
事件 ID 只有 60 秒间隔 60 秒保留为并发去重,另加 30–60 分钟用户频控 技术去重不等于体验频控
无全局日上限 增加默认 6、最高 9 给产品和合规一个可证明的硬边界
无夜间窗口 增加 08:00–22:00 避免夜间营销召回
中台只有受众字段 增加场景白名单、总量、冷却、静默时段和配置版本 能快速止损和回滚

11. 数据口径与上线验证#

11.1 必须记录的决策日志#

字段 用途
trigger_source 是轮询、事件、Boot、FCM 还是 Activity 恢复
scene_id / template_id 哪个场景和模板参加判断
decision shown / blocked / no_candidate
blocked_reason 权限、前台、锁屏、静默时段、冷却、日上限、数据失效等
shown_at / clicked_at / dismissed_at 展示、点击和忽略
config_version 当时执行的远端配置版本
route_result 正确落页、回退首页或失败

不得上传文件名、URI、联系人、其他 App 通知正文、FCM Token 或真实个人内容。

11.2 能证明与不能证明#

指标/证据 能证明 不能证明
candidate_created 场景条件曾经成立 用户看到通知
notify_called / send_success 客户端调用或服务端发送成功 系统实际展示、用户看到
通知栏抓取/系统 listener 证据 系统曾展示 通知带来的增量启动
notification_click 用户从通知点击 这次点击带来长期留存
A/B 对照实验 规则对启动、留存、广告收入和卸载的增量影响 其他版本、其他国家必然相同

11.3 验收矩阵#

场景 必验结果
App 前台 所有营销召回被拦截
App 后台、屏幕亮、已解锁 合格候选可以展示
锁屏 不展示文件、联系人、通知来源等敏感召回
横屏 标准通知不截断;自定义 UI 未通过则跳过
安装首 30 分钟 不展示营销召回
全局 60 分钟冷却 不同 ID 也不能穿透
当日第 7 条 默认配置下被全局日上限拦截
事件并发 只处理一个;其余结束,不补发
点击/忽略 正确进入 72 小时冷却或退避
Boot 分开记录进程恢复、Job 运行、FGS 成功/被拒、调度恢复
Doze/Standby 记录延迟,不把请求间隔写成准点执行
通知权限关闭 不展示;恢复链结果单独记录
Force Stop 保持 stopped;不宣称可恢复

12. Tidyvo 当前实现差距#

当前核对基线:/Users/fangbing/Desktop/龙虾/Deep Cleaner/,分支 main,提交 605eb22,工作区存在用户未提交改动;本报告只读检查,没有修改该工程。

能力 PRD 需求口径 当前代码快照 结论
POST_NOTIFICATIONS v1.0.6 需要;v1.1.0 放在 Permissions 并禁止首启链路主动申请 Manifest 已声明 已具备权限声明,申请时机仍需按 v1.1.0 验收
充电场景通知 不属于 v1.0.6 的 17 ID 主轴;v1.1.0 保留 Charging 已实现动态电源广播、后台本地通知、拔电取消 当前唯一已确认业务通知链
13+4 ID 调度 v1.0.6 需要;v1.1.0 变化后必须先做兼容性收口 未发现 未实现,且不能原样开发 13+4
通知任务直达 v1.1.0 要求 Photos/Videos 完整列表、失效回 Home、不得自动删除 未发现统一通知任务路由 未实现
全局三态受众 v1.0.6 需要,v1.1.0 未明确改动 未发现 未实现
FCM Topic 空消息 v1.0.6 需要,v1.1.0 未明确改动 未接 Firebase Messaging 未实现
FGS / 常驻通知 v1.0.6 需要 Manifest 未见自定义 Service/FGS 权限 未实现
快速 Job / 持久 Job v1.0.6 需要 未见 JobService/JobScheduler 业务链 未实现
WorkManager 恢复 v1.0.6 需要 有 WorkManager 依赖,未见通知恢复 Worker 只有依赖,不算实现
Alarm 8 小时 v1.0.6 需要 未见 未实现
Boot/升级恢复 v1.0.6 需要 Manifest 未见对应 Receiver 未实现
Notification Cleaner v1.1.0 只允许一次性手动处理,不做后台持续监听、自动清理或收纳箱 当前 Manifest 未见 NotificationListenerService 当前快照未体现该功能;也不得按旧 ID 17 开发后台事件召回
展示/点击/频控记录 v1.0.6 需要;v1.1.0 要求路由失效兜底 未发现完整框架 未实现

13. 最终推荐结论#

13.1 产品结论#

  1. Tidyvo 不需要照抄任何一个竞品的整套参数;三类竞品最值得组合的是:Clean 的多层门控、PDF 的低频/覆盖/忽略退避、Recover 的统一调度与路由。
  2. v1.1.0 开发前应先完成通知 ID 收口:停用 ID 11、8、18-B、18-C、15、17;其余按第 9.3 节逐项改路由或确认数据条件。该结论尚未回写正式 PRD。
  3. ID 收口后继续使用“2 分钟轮询 + 主动事件”没有问题,但轮询只能产生候选,所有候选必须经过跨 ID 的全局冷却和日总量。
  4. 下一次通知需求确认最应该补的是:全局 60 分钟冷却、全局默认 6 条/日、08:00–22:00、事件计入总量、单场景远程开关;这些目前都不是 v1.1.0 已确认需求。
  5. 保活侧先把统一恢复入口、Boot 时序和系统拒绝原因做成可验证能力,再讨论恢复率;不要以 specialUse 声明代替产品正当性。
  6. 文案继续坚持真实数据和直接路由,不采用固定数字、虚假提速、文件损坏/过期等无证据恐吓话术;图片/视频通知必须遵守 v1.1.0 的完整列表落页规则。

13.2 开发顺序建议#

阶段 范围 完成标准
1. 范围收口 逐 ID 对齐 v1.1.0 页面、数据、权限和路由 正式 PRD 中不存在指向 To clean、Records、Large files 或后台 Notification Cleaner 的旧规则
2. 决策层 统一候选、门控、冷却、日上限、记录 单元测试能解释每次展示或拦截原因
3. 展示与路由 普通通知槽位、模板绑定、点击跳板 图片/视频进入完整复核列表;失效回 Home;不自动删除
4. 本地入口 轮询与兼容性已确认的事件 ID 单轮最多一条,事件不排队
5. 恢复入口 Work/Job/Alarm/Activity 多入口并发只恢复一次调度
6. Boot/FGS 合规用途、Boot 时序、常驻通知 Android 16 真机分层验收
7. FCM/中台 Topic 空消息、最小远程配置、回滚 不上传 Token 和个人内容,配置失败走安全默认
8. 灰度实验 低量灰度、频率与文案实验 同时看启动、点击、卸载、关通知和广告增量

14. 证据入口#

14.1 Clean#

14.2 PDF#

14.3 Recover#

  • Photo Recovery V1.0.3 竞品逆向分析统一总览(本地证据路径:../Recover/Photo_Recovery_V1.0.3_竞品逆向分析统一总览.md)
  • Photo Recovery V1.0.3 独立复核报告(本地证据路径:../Recover/Photo_Recovery_V1.0.3_独立复核报告.md)

14.4 Tidyvo#

  • ../../Deep Cleaner/01-产品需求/Tidyvo-PRD-v1.0.6.md:Tidyvo v1.0.6 通知需求真源;本报告没有修改。
  • /Users/fangbing/Desktop/龙虾/Deep Cleaner/01-产品需求/Deep Cleaner-PRD-v1.1.0-阅读优化版.md:v1.1.0 线上与线下唯一正式 PRD 真源;本报告只读核对,没有修改。
  • /Users/fangbing/Desktop/龙虾/Deep Cleaner/:Tidyvo 正式 Android 工程当前实现真源;本报告只读核对。

最终证据边界: 竞品 APK 中有组件、模板或远端字段,只能证明客户端具备该能力;当前线上配置、长期成功率、展示率、点击率和增量收益仍需远端响应、真机长测和对照实验验证。

竞品拆包报告库 · 逆向结论按证据等级阅读