Android 推送调研

Android Push  Notification

最近开始做推送,发现 Android 平台的推送服务实在是太多了,于是就有了这篇推送调研文章。

首先,iOS 设备的推送都会通过 APNS,所以不需要担心到达率的问题。

而安卓上的推送,由于国内无法使用 FCM (谷歌服务被阉割),也没有统一的推送平台,所以种类就比较繁多了。主要分为两种,一种是手机厂商自己做的推送服务,这种大都是集成到厂商系统级的 ROM 当中的,所以到达率较高。缺点是对于非自家系统,推送效果非常不理想,所以最好的做法是同时接入各个厂商的推送。

常见的手机厂商推送有:

  1. 小米 MIUI
  2. 华为 EMUI
  3. OPPO ColorOS
  4. vivo FuntouchOS
  5. 魅族 Flyme

另一种是专业第三方平台的推送服务,主流的有友盟推送个推极光推送等。其次还有各个巨头自己的推送服务,比如阿里的移动推送,腾讯的信鸽百度云推送

第三方推送一般使用长连接和应用间互相唤醒的方式来保证推送的到达率,但是此种方式用户体验很差,存在内存大量占用以及电量消耗加快等负面影响。而且 Andoird 5.0 之后,后台进程以及定时任务的限制,保持长连接正在变得越来越困难,所以即使是极光、友盟等这样专业的推送平台,达到率也不会有他们宣称的那么高,一般估计在 50%~70%,甚至更低。不过,可以考虑通过商务合作手段让手机厂家给应用开白名单。

第三方平台的推送服务的优点是通道聚合,接入成本低。缺点除了上面提到的到达率不如系统级推送,另外还有用户数或设备数的限制,也就是说在量大的情况下部分推送平台需要收费。

以下是我个人针对第三方推送平台以及普通应用常见的推送需求整理出的一些对比:

收费 厂商通道支持 到达率 集成难度
友盟 支持 较高
极光 用户数 >= 500万收费(定价方案 支持 (仅 VIP) 一般
个推 否,高峰期有瓶颈限制,有 VIP 套餐 不支持 一般
阿里移动推送 (ACMP) 设备数 >= 5万收费(收费方式 支持 一般 一般
信鸽 支持 一般 一般
百度云推送 不支持 一般

注:1. 到达率指标主要根据知乎等网站的网友评论,属于个人主观判断,未必准确。同时也参考了以下两篇文章:国内 Top 500 Android 应用分析报告Android 推送平台试用总结报告

  1. 集成难度判断主要根据文档编写质量,Demo 质量,以及个人主观判断。

综上,优先推荐使用友盟,同时后期可考虑接入小米、华为等厂商通道。


参考文章:

  1. 关于 Android 通知推送,你需要知道这些事

  2. 国内 Top 500 Android 应用分析报告

  3. Android 推送平台试用总结报告