玩智能手机这么多年,我经常在安卓和苹果之间来回流窜,基本上每隔三四年就会换个阵营潜伏几年,对这两种手机系统不敢说深有了解,但也积累了一些自己的使用体会。
最早关注我的一些小伙伴可能还记得,当时的安利大多是苹果上的,但自从苹果的「刘海屏」发布之后,实在忍不了,掉头便投入到了安卓的怀抱,这一待就是三年。

用的时间越长,越发现安卓系统上的这个问题,已经过去 11 年了,还是在被苹果吊打。
这就是今天要聊的话题:消息推送机制
什么是消息推送
消息推送谁也不会陌生,没错,就是那个重要消息从来不及时,烦人广告天天来的磨人的小妖精。
它在应用和用户之间修了一条快速路,算得上是 App 和用户交流的核心手段。
本是为了提高效率设计出来的消息推送功能,无论是对于厂商还是用户都是双赢的局面,厂商增加了用户粘合度,用户获得了更佳的用户体验,这么些年苹果家的 iOS 就是作为正面例子出现的榜样。
但要说起 Android 的消息推送,哪怕黑哥用的同样是 Android 机,也不得不摇摇头,叹口气。
可不要小看了这小小的消息推送,水能载舟,亦能覆舟,Android 身上的三宗罪:耗电、卡顿、运存需求大都和消息推送脱不开关系。
换句话说,消息推送就是那个导致 Android 系统上乱象丛生的罪魁祸首。
放眼望去整个手机市场,相比于封闭性极强的 iOS 端,国内安卓的问题出就出在了咱们安卓生态环境的碎片化,以及对于安卓系统的应用权限的管理过于自由,缺乏统一推送标准。
这样造成的最直观的影响就是国内安卓 App 普遍存在着滥用消息推送现象。简单点说,如果你下的 App 如果够多,可能你一整天都能听到消息推送的声音。
进一步说常见的 App 常驻后台导致的耗电发热卡顿一条龙服务、随意索取用户权限引起的用户隐私泄露、流氓一样的恶意弹窗导致的有用信息被埋没、应用安装包过大等等,这些严重影响用户体验的问题,全都出在了消息推送上。
安卓vs苹果
下面就给大家好好说说国内 Android 相比 iOS 到底差在了哪里:
iOS:
在 iOS 上它的推送流程是这样的,开发者需要先花钱接入苹果的推送服务,如果有消息需要推送的话,在自己的服务器上配置推送信息,然后将数据通过 iOS 提供的中转服务器推送给用户,用户手机再做出反应。
举个简单的小例子,如果你的手机里有 YouTube,你能接收到它的通知,因为苹果家的中转服务器又不用科学上网,但你点进去想欣赏墙外风光就做不到了。        
便于大家理解,我做了一张关于 iOS 推送消息的流程图。
上图就不难看出,苹果对这个消息推送的相关权限从注册到消息推送全程进行了把控,而其中最重要的一环就是利用 APNS(Apple Push Notification Service) 这个苹果自家的服务器去中转消息。
这样一来,iOS 上所有的软件都需要与后台的 APNS 推送服务进行连接,才可以达到推送消息的目的。
这么麻烦的推送机制,还必须要严格遵循着他们的 4S 标准:Safe(安全) 、Stable(稳定) 、Save(省电省流量省成本) 、Slim(体积小)。
怪不得 iPhone 的口碑一直保持的不错。用户体验的顺畅,吸引了大量果粉不说,由苹果自己制定的标准,还让开发者不得不为此付出高昂的开发费用,就一个词,豪横。
Android:
其实谷歌家原装的 Android 和 iOS 在消息推送方面的内在逻辑大致相同,也是利用了自家搭建的 Firebase 服务器,和苹果的 APNS 一样做着统一中转的活。
可是因为众所周知的原因,国内不能直接访问谷歌服务器,所以也就没法享受谷歌的推送服务 GMS 功能了。
基于上述的原因,国内各大手机厂商不得不对原本的 Android 系统进行魔改。从华为的 EMUI 到 小米的 MIUI 等系统,都是二代产品,虽然更适合国人使用,但也阉割了不少原有功能,其中影响最大的就是我们之前提到的 GMS 推送功能。
没错,我们使用的安卓是一个不健全的系统,虽然后面在一代代的改进它,但消息推送这一核心问题一直没有得到妥善解决,这也成为了安卓机的万恶之源。
国内安卓乱象
从 2009 年至今,国产安卓系统的消息推送经历了三个阶段,下面我就来给大家介绍一下。
第一阶段:各显神通
在安卓发展的早期,由于国内安卓系统没了谷歌家的推送服务,加上系统限制又少,App 的开发者基本上是各显神通,靠着自己维护的推送通道保持着和用户的交流。
但是又出现了一个问题,用户总是习惯性的清理后台,导致后台的连接惨遭清除,长连接一断,还谈什么消息推送。
于是开发者们不得不绞尽脑汁去保住 App 存活,甚至还搞出了一种让服务隐藏到暗处的办法,最直接的影响就是手机常驻线程越来越多,这谁扛得住啊,尽管手机运存越来越大,但也总是越用越卡,耗电越用越厉害。
第二阶段:结盟而战
由于手机越用越卡,越用越耗电,不知内情的用户只会不断吐槽手机太烂,手机厂商有苦说不出,也只能一边不断增加手机运存,一边加强对后台应用的管理。
开发者就更难过了,以前杀死我们应用的只有用户,现在连手机本身也要清除我们,于是一部分开发者决定交消息推送的问题给第三方推送平台,做起了甩手掌柜。
人家第三方推送平台也一点不含糊,建立了一个共享推送通道,大家一起互帮互助呗。如果你的应用被清除了,而我的应用还凑巧存活,就通过这个共享通道传递消息了,然后还可能会顺手唤醒你的后台程序。
这终究是治标不治本的方法,对用户而言不仅垃圾广告时常出现,卡顿和耗电的现象也没有消失,甚至当你恰巧杀死了同一推送平台的全部成员,甚至还会出现收不到消息的问题。
当时用户体验之差可想而知。
第三阶段:三足鼎立
消息推送问题迟迟得不到解决,国内手机厂商也逐渐发现了问题的严重性。为了提高手机性能和功耗,只能对后台应用采取了白名单政策,像微信这样大体量的应用,才允许长期后台存活。这也是为什么一些小众应用总是莫名其妙被清理的原因。
各大厂家为了解决推送问题,决定像 iOS 一样搞自己的推送服务,这个操作系统级别的推送服务可不会去清理与自己签了协议的应用,这样推送过程中也无需应用存活,用户体验明显好转。
至此,安卓应用上消息推送的三足鼎立局面就此形成,开发者自己、第三方推送平台、手机厂商,各有优略,却迟迟没有达成统一的标准。安卓在消息推送这方面不断的栽跟头,始终慢了 iOS 一步。
这两年国内厂商纷纷进军全球市场,安卓系统也终于不用再避讳谷歌服务,拿小米最新的 Redmi Note 9 海外版举例,无论是低配还是高配,都要比国内同期的 Redmi 10X 需要的运存少,不是雷总缺斤短两,而是人家根本不需要。
统一联盟
厂商各自割据混战,这事还得上面牵头。
于是,在工信部的主导下成立了一个安卓统一推送联盟,联合了各大手机厂商、运营商、互联网厂商、推送技术厂商等等,目的就是要净化推送环境。
虽然统一推送联盟的步伐比较 「稳健」,但从 2017 年至今也做出了不少成绩,像下图这些都是加入统一推送联盟的品牌。
而且根据统一联盟传出的消息,以 OPPO Find X2 Pro 为例,应用终于无需为了推送而常驻后台了,如果采用统一推送通道,熄屏待机更是用了近 42 个小时才从满电降至 85%。
统一推送联盟的出现也许不能够彻底根除安卓的各种问题,但我相信能够在一定程度上让我们远离耗电、卡顿、运存需求大的问题了。
无论是 Android 还是 iOS 都是在 09 年之后陆续走进我们视线的,由于国产安卓系统这个小小的消息推送问题,在这些年不断的摔跟头,以至于给用户留下了卡顿、耗电这样的刻板印象。
当 Android 在想办法完善消息推送问题的同时,它的竞品 iOS 早已开始了在维护和用户的甜蜜接触之余,不断丰富自己生态的新战略。
这几年,国内大厂都想要参与高端机的市场,而安卓这个短板就是我们不得不跨过去的坎。
虽然说安卓厂商在很多方面都追上甚至超过了苹果,但在消息推送这方面却一直还是被苹果吊打。
希望统一推送联盟的服务早日全面铺开,也希望这只是整治乱象的开始,都说时间是检验真理的唯一标准,让我们拭目以待吧。
这篇也是很久以来想写的,从苹果转到安卓三年了,提到推送服务依然还是有吐不完的槽,如果你也是深有同感的安卓党,点亮在看,让我知道我不是一个人。

新朋友先看这里
  写过的软件分类合集!
找软件点下面的搜索框:
  新福利 :
黑哥从电子工业出版社的老师那里为大家争取到了送书福利。往后每天都会给留言获赞最多的 1 位小伙伴送去实体书一本,每天的书都不一样!包邮到家,大家踊跃留言吧!  注意,留言以如下格式回复才能参与:每天的书名 + 和书相关的留言。
篇求书中奖的小伙伴是阳光少年 ,请凭本页中奖截图和自己求书的留言截图直接联系杨老师(微信号:Q741300536 )领书。
备用号:科技灯下黑  kjdxh8
Telegram 群 t.me/wldxh
 QQ 群:1057899101
继续阅读
阅读原文