国内安卓厂商的推送联盟,到底救活了没有
国内安卓厂商的推送联盟,到底救活了没有
推送这件小事,怎么就成了安卓中国的绝症
国内安卓生态有个老笑话:你的 App 明明已经杀了后台,凌晨三点它还是能爬起来给你推一条"您关注的商品降价了"。这不是什么黑科技,是厂商自己的推送通道在搞鬼——但换个 App,同样的场景,消息就死活到不了。用户骂 App 烂,开发者骂厂商封闭,厂商骂 Google 不管,三方扯皮十年,推送联盟就是在这种背景下诞生的。
2017 年工信部牵头,华为、小米、OPPO、vivo 几家主流厂商搞了个"统一推送联盟",愿景很直白:建一个类似苹果 APNs 的国产标准,让第三方 App 不用各自保活、不用嵌七八个 SDK,走统一通道就能触达用户。当时的新闻稿写得振奋人心,说要解决安卓卡顿、耗电、隐私泄露三大顽疾。七年过去,2024 年联盟官网域名已经挂了好几年,公众号最后更新停在 2021 年,这个组织名义上还在,实际上和死了区别不大。
但有趣的是,推送这件事本身并没有消失。相反,它以一种更分裂、更隐蔽、更商业化的方式活了下来。我想聊的不是联盟为什么失败——那个故事已经被写烂了——而是当下这个畸形生态里,开发者和用户到底在用什么、踩了什么坑、以及还有没有可能破局。
联盟活着的时候,就没解决过真问题
先泼一盆冷水:统一推送联盟从诞生第一天起,就没搞清楚自己要统一什么。
苹果的 APNs 能做成,是因为 iOS 系统层强制所有 App 必须走它,没有第二条路。安卓这边,联盟搞的是"推荐标准",不是强制规范。厂商嘴上支持,转身就继续推自己的私有协议——华为的 HMS Push、小米的 MiPush、OPPO 的 Push、vivo 的 Push,各家名字都不一样,接入文档写得像免责声明,版本号各自飞。
我 2019 年接过一个项目,需要给国内四大厂商分别接推送。华为 HMS Core 的文档当时还是中英混杂,MiPush 的 SDK 体积 3MB 起步且必须依赖小米账号服务,OPPO 的推送对未上架应用商店的产品直接拒绝开通,vivo 更绝,测试环境和生产环境的证书体系完全不同,上线前一周才发现消息到达率只有 40%。这四个 SDK 塞进一个 App,包体积直接涨 8MB,启动时初始化链路上千毫秒,崩溃率跟着涨——因为每个 SDK 都在 Application 里抢线程池。
联盟标准呢?理论上存在一个叫"UPSDK"的统一封装,但实际没有任何一个厂商真正优先支持它。我问过华为的技术支持,对方原话是:"建议直接接 HMS Push,UPSDK 的到达率我们不做保证。" 那联盟的意义是什么?大概是给工信部交作业用的。
更讽刺的是,联盟搞了个"推必达"的品牌认证,给 compliant 的 App 发标。我查过 2020 年的认证列表,里面有个别 App 后来因违规收集个人信息被工信部通报下架。认证本身不审查业务合规,只查技术对接,这种形式主义除了让 PPT 多一页,对生态没有任何净化作用。
厂商推送的暗面:不是技术问题,是商业问题
很多人以为推送分裂是技术路线之争,太天真了。这从头到尾是商业控制权的博弈。
华为 HMS Push 有个细节:通过它推送的消息,在通知栏的展示样式受华为严格管控。你不能自定义通知布局,不能加富媒体,不能跳转到特定页面——除非用户把 App 加入"信任名单"。但加入信任名单的入口藏得极深,普通用户根本找不到。这意味着什么?意味着华为掌握了消息内容的过滤权和展示权,你的运营文案能不能被用户看到,最终由厂商决定。
小米更直接。MiPush 的"通知分类"体系把消息拆成"重要"和"普通"两档,普通消息在 MIUI 12 之后默认折叠进二级通知栏,且静默期不能推送。这个分类规则由小米单方面制定,开发者只能申诉,没有协商空间。2021 年有个知名社交 App 被小米判定"普通消息过多",直接限流 70%,对方运营总监在微博公开抱怨,最后不了了之。
OPPO 和 vivo 走的是另一条路:商业化推送。它们的推送平台允许广告主竞价购买"通知栏广告位",系统级推送通道可以向未安装 App 的用户发"预装推广"。你在 vivo 手机上收到一条"您附近有人暗恋你"的通知,点进去发现是个陌生人社交 App 的下载页,这种体验不是 bug,是 feature。推送通道从基础设施变成了流量生意,开发者想保证到达率?要么交钱买资源位,要么接受越来越严苛的内容审核。
这就是为什么联盟不可能成功。统一标准意味着厂商要让渡通知栏的控制权,而通知栏在国产安卓的商业模式里,是继预装、应用商店、广告联盟之后的第四大收入来源。谁愿意把自己的钱袋子交给一个中立组织?
FCM 的幽灵:Google 服务在国内的真实状态
聊国内推送,绕不开 FCM(Firebase Cloud Messaging),也就是以前的 GCM。理论上这是安卓官方推送方案,但在国内几乎不可用——不是因为技术封锁,而是因为 Google 服务框架的缺失导致连接不稳定。
但"几乎不可用"不等于完全不能用。有个反直觉的事实:部分出海 App 和国内高端机型用户,FCM 实际上是能连上的。华为被制裁前,GMS 预装机型上的 FCM 到达率并不差;小米国际版系统也保留 FCM 支持。问题出在国产定制 ROM 对后台限制的极端策略上。
Android 8.0 引入的 Doze 模式和 App Standby 本意是省电,国产厂商把它做成了"杀后台竞赛"。小米的 MIUI 12 有个"省电限制"选项,选了"后台超过 10 分钟无活动即冻结",FCM 的长连接在这种策略下根本保活不了。更隐蔽的是,部分厂商在系统层篡改了 JobScheduler 和 AlarmManager 的行为,让官方 API 承诺的定时任务变成随机延迟甚至直接丢弃。这不是兼容性问题,是主动破坏 Android 标准。
有个具体的 bug 我追踪过半年:某厂商的 Android 11 定制系统上,FCM 的 high priority 消息到达延迟中位数达到 47 分钟,而同一机型刷国际版 ROM 后延迟降到 3 秒。抓包发现,国内版 ROM 在检测到 FCM 连接时,会间歇性 RST 数据包,手段之粗糙令人咋舌。厂商客服的回应永远是"建议联系应用开发者",把锅甩给 App 适配。
这种环境下,开发者被迫选择"保活黑科技":双进程守护、JobScheduler 循环唤醒、AccountSync 伪装、甚至利用厂商自己推送 SDK 的保活机制反向续命。2019 到 2021 年间,国内主流 App 的后台启动次数平均涨了 300%,省电模式形同虚设,用户体验雪崩。联盟想解决的就是这个恶性循环,但它没有权力约束厂商,反而成了厂商表演"社会责任"的舞台。
替代方案的崛起与陷阱
联盟濒死之后,市场上冒出各种替代方案,大致分三类。
第一类是第三方推送聚合服务,比如个推、极光、友盟。它们的商业模式是帮开发者一次接入多家厂商通道,按到达量收费。这确实省了对接成本,但本质上是给分裂生态打补丁,没有解决任何问题。更麻烦的是,这些服务商自己也要生存,开始叠加"用户画像""智能触达"等增值服务——你的用户数据多过一道手,隐私风险多翻一倍。2022 年个推因数据合规问题被行政处罚,波及数千个接入 App,开发者连夜切通道的场景历历在目。
第二类是操作系统级的新通道,典型代表是华为的 HarmonyOS Push 和小米的 HyperOS Push。它们不再是单纯的推送 SDK,而是和系统服务深度绑定。HarmonyOS Push 要求应用必须上架华为应用市场,且通过"恶意软件检测"——这个检测标准不公开,被拒后没有申诉渠道。好处是到达率确实高,因为系统会优先保证自家通道的保活;坏处是你的应用从此和厂商生态锁死,想同时支持多家?继续接多个 SDK 吧,历史轮回。
第三类最隐蔽,是"联盟"概念的借尸还魂。2023 年有个叫"统一推送工作委员会"的组织出现,宣称承接原联盟职能,但成员名单里多了电信运营商和互联网大厂。它的实际产出是发布了几份白皮书,以及一个"推必安"认证——和当年的"推必达"如出一辙。我查过它的运营主体,是一家注册在海南的民办非企业单位,没有行政背书,没有标准制定权,本质上是个行业论坛。开发者社区里几乎没人讨论它,因为大家都知道,没有强制力的标准等于废纸。
一个具体项目的推送选型实录
去年我参与了一个金融类 App 的重构,推送需求极其典型:交易提醒必须秒到,营销消息需要富媒体展示,且要符合监管对消息留痕的要求。这个项目的选型过程,基本就是当前生态的缩影。
首先排除纯第三方聚合服务。金融监管要求数据不出境,且消息内容需本地存储审计日志,第三方服务商的云端中转不满足合规。然后评估厂商直连接入。
华为 HMS Push 的文档在 2023 年改版过一次,结构清晰了不少,但有个隐藏坑:金融类消息必须申请"自分类权限",否则会被系统判定为营销消息限流。申请需要提交营业执照、金融许可证、消息内容样例,审核周期 7-15 个工作日。我们第一次提交因为"消息样例中未明确展示用户姓名脱敏处理"被打回,第二次因为"夜间推送时段未说明业务必要性"又被打回。最终通过时,项目已经延期三周。
小米 MiPush 的金融类权限申请更苛刻,要求 App 必须在小米应用商店有"金融"标签,而获取这个标签的前提是完成小米的"安全检测认证",费用五位数起步。我们评估后放弃小米直连接入,改用极光的中转服务——虽然多一层,但至少能先上线。
OPPO 和 vivo 的到达率测试数据让我们直接放弃。实验室环境下,OPPO Find X6 上测试 1000 条消息,到达 847 条,看起来还行;但同样的机型、同样的网络,换到用户真实使用场景(安装 200+ 应用、开启省电模式、使用一周未重启),到达率暴跌到 312 条。vivo 的数据更离谱,夜间时段(23:00-7:00)金融类消息直接静默丢弃,没有任何回调通知,开发者侧显示"已送达",用户侧一无所知。
最终方案是华为直连 + 小米极光中转 + OPPO/vivo 降级为短信补充。这个架构的维护成本:每年至少两次跟进厂商 SDK 大版本升级,每次升级伴随接口变更和新的权限申请;消息到达状态需要在三个通道间做合并去重,逻辑复杂度指数级增长;用户投诉"没收到提醒"时,排查链路涉及五个系统日志,平均定位时间 40 分钟。
这就是 2024 年国内安卓推送的 baseline。不是技术做不到,是商业利益让技术变形。
苹果模式为什么抄不来,以及要不要抄
每次聊这个,总有人跳出来说"学学苹果啊,强制统一不就行了"。
苹果能强制,是因为 iOS 的软硬一体封闭生态。App Store 是唯一的官方分发渠道,APNs 是唯一的推送通道,违反规则就下架,没有侧载没有替代商店。这种集权模式在安卓世界不存在,也不可能存在——Google 自己都没做到,Pixel 手机上的 FCM 一样会被 OEM 厂商魔改。
国内有人提议过由工信部强制推行统一推送标准,甚至写入入网许可要求。这个思路在 2018 年有过窗口期,当时联盟刚成立,厂商还愿意配合表演。但 2019 年华为被制裁、GMS 断供后,整个叙事变了。HMS 是华为自救的核心战略,推送是 HMS 的入口级服务,让华为放弃 HMS Push 去接一个中立标准,等于让它把用户数据主动权交出去。政治安全考量叠加商业利益,这条路彻底堵死。
更现实的问题是:即使强制统一了,谁来运营?苹果的 APNs 全球部署,运维成本以十亿美元计,且不收开发者一分钱。国内如果搞一个"国家推送中心",资金来源、技术能力、中立性保障都是无解难题。运营商曾经尝试过类似角色,中国移动的"和推送"服务存活了不到三年,因为既没有技术积累,又缺乏对互联网业务的理解,最后沦为内部 KPI 项目。
我个人觉得,与其追求形式上的统一,不如在反垄断框架下约束厂商行为。具体说:强制要求厂商开放系统级推送接口的公平竞争,禁止利用推送通道进行自营广告变现,对后台限制策略建立可审计的技术标准。这些不需要一个"联盟"来执行,现有的市场监管工具就能做到。问题是,有没有人真的想管。
开发者的小聪明与生态的慢性死亡
面对这个烂摊子,开发者也在进化出自己的生存策略,有些堪称黑色幽默。
"互相唤醒"是老牌手段了。阿里系的 App 矩阵互相拉活,腾讯的微信作为"系统级应用"保活全家桶,字节跳动早年靠抖音的推送带起今日头条的启动。这些策略的代价是系统资源的无底洞消耗,以及用户对"安卓卡顿"的刻板印象加深。2022 年某厂商在系统更新中加入了"关联启动拦截",结果误杀率过高,被用户在酷安骂到回滚版本。
更隐蔽的是"推送即服务"的反向操作。有些中小开发者干脆放弃厂商通道,直接用短信或微信服务通知触达用户。短信成本高但到达率接近 100%,微信服务通知依托微信的保活能力间接实现推送。这本质上是用另一个垄断者的基础设施,替代当前垄断者的基础设施,生态的多样性进一步萎缩。
还有人在尝试技术绕过。利用 Android 的 NotificationListenerService 监听系统通知栏,然后反向推导厂商的限流策略;或者通过 AccessibilityService 模拟用户点击,维持应用的"活跃"状态。这些手段游走在 Google Play 政策红线边缘,国内商店管得不严,但一旦被厂商识别,直接加入黑名单,推送权限永久封禁。
所有这些"小聪明"叠加起来,构成了一个负向循环:开发者越挣扎,系统越臃肿,用户体验越差,厂商越有理由收紧控制,开发者越需要更激进的保活手段。联盟想打破这个循环,但它没有权力;市场自发调节?利益结构决定了这是不可能的。
2024 年的几个新信号
最近有几个值得注意的变化,可能暗示生态的下一步走向。
华为在 2023 年底的 HMS Core 6.11 版本中,推送服务增加了"跨设备流转"能力,消息可以从手机同步到平板、手表、车机。这明显是在复制苹果生态的协同体验,但同时也意味着 HMS Push 的绑定深度进一步加剧。对开发者来说,接入 HMS Push 不再只是"支持华为手机",而是"支持华为全场景生态",筹码更重了。
小米 14 系列搭载的 HyperOS 引入了"端侧大模型"处理通知内容,系统会自动摘要长消息、分类优先级。这个功能的隐私卖点是"不上云",但暗含的控制权转移是:厂商的 AI 模型决定了用户看到什么、看不到什么。开发者连通知文案的完整展示都无法保证,运营策略的失效风险剧增。
另一个信号来自监管侧。2024 年初工信部发布了《移动互联网应用程序个人信息保护管理暂行规定(征求意见稿)》,其中有一条要求"应用程序向用户推送消息,应当提供便捷的关闭方式,且不得利用系统级通道规避用户关闭操作"。这条如果严格执行,直接打击的是厂商推送的商业化变现——因为系统级通道的推送,用户往往找不到关闭入口。但征求意见稿和最终落地之间,通常隔着漫长的博弈,我不乐观。
到底救活了没有
回到标题的问题。统一推送联盟作为一个组织,早就名存实亡,这是事实。但它试图解决的问题——国内安卓推送的分裂、混乱、商业化侵蚀——不仅没解决,反而以更复杂的形式蔓延到整个通知生态、后台策略、甚至 AI 时代的内容分发。
"救活"这个词本身就有问题。它假设推送联盟是一个需要被抢救的技术标准,但实际上,它的死亡是商业利益格局的必然结果。不是没人会写统一协议,是没人愿意放弃通知栏这个流量入口。不是技术做不到苹果的体验,是这个市场不奖励那种体验。
对开发者来说,当下的现实是:继续维护多套厂商 SDK 的接入,在合规和到达率之间走钢丝,把越来越多的工程资源消耗在基础设施适配而非产品创新上。对用户来说,是通知栏越来越像广告栏,真正重要的消息淹没在系统推荐的"你可能感兴趣"里,省电模式和消息到达之间的权衡永远无解。
我有时候想,如果 2017 年联盟成立时,工信部直接强制要求入网机型必须支持一个开源的、去中心化的推送协议,由开发者社区而非厂商联盟维护,会不会有不一样的结果?但历史没有如果,而且那种假设同样会面临"谁来运营""怎么监管"的终极难题。
国内安卓推送的烂摊子,本质上是移动互联网红利期结束后,各方对存量用户注意力进行精细化收割的缩影。联盟想建的是公共设施,但市场奖励的是私有领地。这个矛盾不解决,换多少个联盟、发多少版白皮书,都是同一个剧本的重演。
最近有个做独立开发的朋友问我,他的小众工具 App 要不要接推送。我的建议是:如果消息不是业务核心,别接。用邮件、用短信、用用户主动拉取,甚至干脆不做实时通知。接入厂商推送的成本——SDK 维护、权限申请、到达率焦虑、用户隐私合规——对中小开发者来说,已经是不可承受之重。
这大概也是一种用脚投票。当越来越多的开发者选择逃离这个畸形的推送生态,厂商最终会意识到,一个被广告和限流填满的通知栏,用户会选择直接关闭。而关闭通知栏这件事,恰恰是苹果教给用户的——iOS 的"通知摘要"和"定时推送"设计,本质上是在帮用户夺回注意力控制权。国产厂商抄了苹果的灵动岛、抄了隐私指示灯,唯独没抄这个。
因为它们不敢。
推送联盟死没死,其实不重要了。重要的是,国内安卓生态还有没有可能长出真正服务于用户和开发者的基础设施,而不是又一个被商业利益蛀空的壳。这个问题,我回答不了,只能留给时间和监管。但看着 2024 年厂商发布会上那些"全新自研推送架构"的 PPT,我知道,剧本还没换。