安卓厂商推送

安卓:更复杂的世界

iOS 只有一个 APNs,但安卓呢?

由于国内无法使用 Google 服务(包括 FCM),各家手机厂商都有自己的推送服务:

iOS 只有一个 APNs,安卓却要面对多家厂商
iOS
通道:APNs(唯一)到达:系统级,100%需处理 token 失效
小米
通道:Mi Push到达:系统级,高到达率高
华为
通道:HMS Push到达:系统级,高需开发者账号
OPPO
通道:OPPO Push到达:系统级需认证
vivo
通道:vivo Push到达:系统级较新
其他机型
通道:无系统推送到达:应用级(前台才到)到达率低(约 65%)
两种接入策略
统一推送平台(极光 / 个推)
一套 API,维护低,控制弱
自建推送系统
完全控制,成本与维护高

问题:需要对接多家推送服务

不同机型、不同系统级推送,让「推一条通知」变成「对接五六家 API」的问题。

方案 A:统一推送平台

使用极光、个推等第三方服务,封装各家厂商推送:

  • 优点:一套 API、接入简单、维护成本低。
  • 缺点:到达率受平台影响、成本高(按量收费)、无法精细控制。

方案 B:自建推送系统

直接对接各家厂商推送:

  • 优点:完全控制、可优化到达率、成本可控。
  • 缺点:开发维护成本高、需要对接多家 API。

我的选择

权衡之后,我决定先用统一推送平台(极光),再逐步自建:

  • 起步阶段:快速上线,一套 API 接入。
  • 成熟阶段:对到达率要求高的场景,自建推送通道。
  • 关键认知:选型不是一成不变的,可以分阶段演进。

一句话

安卓推送的核心矛盾是「厂商碎片化」:要么交给统一平台换省心,要么自建换控制权。先统一后自建是务实的演进路径。

发现内容有问题?

告诉我们哪里需要改进。