countdownapp 中文文档 下载 App

Countdown App 随机剩余时长是怎么生成的 - 为什么每个人都不一样

完全随机,完全本地

当你第一次同意用户协议、输入姓名、点确认之后,App 会在本地生成一个随机的剩余时长,范围大约在 1 年到 120 年之间(开发者没有公布精确范围,从用户反馈样本来看落在这个区间)。这个时长生成后就固化了,后续每次打开 App 都是基于同一个基准时间在倒计时。

关键细节:这个时长是在你手机本地生成的,开发者服务器不保存任何数据。Ryan Boyling 多次在 Twitter 上确认过这一点——他的服务器只用来推送 Ozhin 通知和支撑 Live Chat 功能,不收集、不存储任何用户的倒计时数值。每台手机上的倒计时数值,只存在于那台手机的本地 SQLite 数据库里,卸载 App 就彻底没了。

为什么"每个人都不一样"

因为每次生成都是独立的随机过程。没有"按地区分"、"按手机型号分"、"按输入的姓名分"——纯随机,就像掷骰子。开发者没有给算法加任何"逻辑",就是一个标准的 32 位随机数转成年日时分秒。所以你手机上可能显示"0002 年 14 天",你朋友手机上可能显示"0015 年 200 天",纯粹是概率问题。

会变吗?

正常使用情况下,不会变。一旦时长生成完毕,它就像被钉在了你的手机数据库里——每次打开、每次切后台、等几个月再打开,倒计时始终从"你第一次打开那一刻"向前走。年日时分秒的数量只减不增。

但有几个特殊情况会导致时长"看起来变了":

情况结果
看"改变命运"广告倒计时时长随机变化——可能变长也可能变短,详见 改变命运
改系统时间触发 协议被破坏,数字变红、界面错乱,但倒计时本身不会真的被拉长或缩短(至少在协议恢复之前是这样)
卸载重装本地数据库清空,重新随机生成一个新的时长
清除 App 数据效果和卸载重装相同,重新生成

归零之后呢

倒计时走到 0 年 0 天 0 时 0 分 0 秒时会发生什么?开发者设计了一套声光震演出——剧烈跳动、屏幕闪白、音效拉满、闪光灯乱闪——然后什么都不会发生。不是真的"结束了",就是一场演出,之后你还是留在主界面上,只不过数字变成了 0。

前面在 归零时刻 章节里会详细讲这个环节,这里先强调一点:倒计时归零不是终点,开发者也没打算让它是终点——它就是一次整蛊的高潮。

知道这些之后

理解了"随机生成、本地存储、不真的有什么意义"之后,再看那些拿着 App 截图一脸紧张"我还剩三天"的人,就会觉得特别好笑。这就是开发者想要的效果:知道是整蛊的人,拿它来整蛊不知道的人。