竞品拆包报告库 › Clean 清理工具 › Tidyvo 跨品类最终对比 › 统一总览 报告口径 本页直接渲染本地报告真源;静态能力、动态观察、推断和线上未验证项不得互相替代。
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 最终结论#
竞品不是靠一条“神奇保活链路”,而是靠多入口恢复。 成熟样本把 Foreground Service(前台服务)、短 Job、周期 Job、WorkManager、Alarm、Boot 和 FCM 汇入一个恢复入口;目标是提高恢复概率,不是保证永久存活。
Force Stop(用户在系统设置中强制停止)是共同硬边界。 本次已动态测试的 Clean、PDF、Recover 样本都没有可靠证据能绕过强停。
Boot 恢复是否成功,关键不只是有没有 Boot Receiver。 Android 16 上,CleanMas、CleanLoom、BlazeClean、AuraClean 利用开机临时白名单内的短 Job 成功建立 FGS;Clean Sweep Master、NeatPulse、Flare 的本轮结果不同。
通知成熟度最高的共同点不是“发得多”,而是先产生候选,再经过多层门控。 常见门控包括 App 后台、设备解锁、屏幕状态、安装首延迟、全局冷却、场景冷却、单模板上限、每日总上限和时间窗口。
2 分钟轮询只应理解为“每 2 分钟检查一次”,不能理解为“每 2 分钟发一条”。 是否展示必须由真实场景、权限、频控和单轮最多一条共同决定。
Tidyvo v1.0.6 的候选生成与单轮一条设计是清楚的,但全局防轰炸层偏弱。 它对 13 个周期/状态 ID 分别设置每日 5 次、间隔 15 分钟;数学上允许周期类最多 65 条/日,4 个事件 ID 又只有同 ID 60 秒间隔,没有全局每日总上限和全局冷却。
v1.1.0 没有重新定义通知频控,而是要求沿用既有发送时机、频控和授权,只调整通知点击路由。 因此 v1.0.6 仍是通知机制参考,但 v1.1.0 对页面和功能的删除会覆盖旧路由。
v1.0.6 的 17 个通知 ID 不能原样进入 v1.1.0。 To clean、Records 和独立 Large files 已删除;Notification Cleaner 被限定为一次性手动清理,不做后台持续监听。因此 ID 11、15、8、17 以及 ID 18 的大文件分支存在直接冲突。
竞品常用远程配置控制开关、频率、模板和灰度;Tidyvo v1.0.6 目前中台只控制受众三态。 这让客户端简单,但上线后无法快速降低频率、关闭单场景或调整时间窗口。
Tidyvo 的文案真实性明显优于多数激进竞品。 通知专项要求动态数值必须来自本机真实数据,不使用固定 GB、固定提速比例或虚构风险;v1.1.0 也要求页面、Widget 和通知任务只使用真实本机数据,这点应保留。
Tidyvo 正式工程当前并未实现 v1.0.6 的完整通知与恢复系统,也未实现 v1.1.0 的完整产品范围。 当前代码可确认的是通知权限和充电场景的本地通知;Manifest 中未见自定义 FGS、Boot Receiver、JobService、FCM Service 或 NotificationListenerService,依赖中也未接 Firebase Messaging。
推荐方向不是推翻现有“轮询+事件”,而是在 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 文案相对竞品的优势#
动态变量无可靠值时,模板不进入随机池。
文案、CTA、UI 和固定路由作为一整套随机,不交叉拼接。
点击进入对应工具,不把所有通知都丢回首页。
不使用固定虚假 GB、App 数量、提速比例和未经检测的“紧急/损坏/过期”。
事件候选被拦截后不排队、不补发,避免过时通知。
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 与竞品对比后的新增判断#
v1.1.0 的任务直达和失效回 Home,接近 Recover 的统一跳板思路,比竞品“全部回 launcher”更清楚。
图片/视频通知进入完整复核列表,不筛选新内容,降低了过期目标和深链失败风险,但文案必须避免承诺“点开只看刚新增项”。
Notification Cleaner 采用一次性手动处理,比 Photo Recovery 的后台监听和自动取消更收敛,权限解释和隐私风险更低。
删除 To clean、Records 和 Large files 后,旧通知 ID 数量自然减少;这反而有利于降低 2 分钟轮询的候选密度。
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 产品结论#
Tidyvo 不需要照抄任何一个竞品的整套参数;三类竞品最值得组合的是:Clean 的多层门控、PDF 的低频/覆盖/忽略退避、Recover 的统一调度与路由。
v1.1.0 开发前应先完成通知 ID 收口:停用 ID 11、8、18-B、18-C、15、17;其余按第 9.3 节逐项改路由或确认数据条件。该结论尚未回写正式 PRD。
ID 收口后继续使用“2 分钟轮询 + 主动事件”没有问题,但轮询只能产生候选,所有候选必须经过跨 ID 的全局冷却和日总量。
下一次通知需求确认最应该补的是:全局 60 分钟冷却、全局默认 6 条/日、08:00–22:00、事件计入总量、单场景远程开关 ;这些目前都不是 v1.1.0 已确认需求。
保活侧先把统一恢复入口、Boot 时序和系统拒绝原因做成可验证能力,再讨论恢复率;不要以 specialUse 声明代替产品正当性。
文案继续坚持真实数据和直接路由,不采用固定数字、虚假提速、文件损坏/过期等无证据恐吓话术;图片/视频通知必须遵守 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 中有组件、模板或远端字段,只能证明客户端具备该能力;当前线上配置、长期成功率、展示率、点击率和增量收益仍需远端响应、真机长测和对照实验验证。