2019 年刚刚过去,蒸蒸日上的国产手机事业推动了国内 Android 群体的日渐壮大。一方面我们能够享受到 iPhone 阵营没有的高刷新率屏幕、超级快充技术等,另一方面却因为国内 Android「碎片化」的问题至今没有能够媲美 App Store 标准的应用生态。
信息推送系统成为这当中至关重要的一环。
如果你关注新闻,会发现一个名为「统一推送联盟」的组织在近期尤为活跃:vivo、iQOO 完成手机统一推送适配,华为、OPPO、一加、realme 完成统一推送服务开发,与 12321 举报受理中心开展合作,三星支持接入统一推送标准……
这个在去年下半年曝光率直线上升的组织,今年能为国内 Android 生态带来怎样的变化?
无论是 iOS 还是 Android 平台,Apple 和 Google 都为自家系统准备了专门的消息推送服务。苹果的推送服务叫 APNs(Apple Push Notification service),Google 的过去叫 GCM(Google Cloud Message for Android),现在叫 FCM,名称不同,但两者的作用大同小异:将开发者想推送的消息精确推送给终端用户。
而国内 Android 由于无法接入 Google 原生 GMS 服务,FCM 推送也长期处于不稳定甚至被滥用的状态,与国内定制系统配套的消息推送主要靠「土生土长」的消息推送服务来完成。为了保证消息推送的及时性,手机端必须维持一个后台常驻的推送服务,当接收到服务器推送的消息时,这个推送服务就会将对应的消息以对应的 APP 提示样式准确提示到用户。
这个常驻的推送服务有没有、选哪个,对国内 Android 应用而言一直是个大问题:一般来说,大厂通常会有选择地接入适合自己的推送服务,并且有选择地不接入部分推送服务;但对于中小规模的开发团队而言,App 享受不了系统级别的白名单特权(比如微信),又要保障推送的及时,只能尽可能多的接入主流推送服务。
当一个 APP 同时接入了三方推送(如极光推送、友盟等),多个系统级别推送(小米、华为、OPPO、魅族等)后,不仅安装包变大,代码开发和维护成本也直线上升。
更为恼火的是,在那些没有固定推送服务的操作系统上,要维持推送通知的及时有效,就必须保证各应用通知推送服务的后台常驻。
涉及到的推送服务越多,占用的运行内存和电量消耗也就更多:国产旗舰 Android 的电池一直比苹果电量大,一方面就是为此考虑;另一方面,更多的后台意味着更大的内存消耗,如果内存不够的话常规使用体验就会大打折扣,常见的APP 闪退,突然黑屏,应用卡顿等直接原因都是内存不够,而国产手机相应地不得不加大手机内存,以此衍生了 6G、8G 不同内存配置的版本,实质都是国内市场部分妥协的后果。
显然,如果没有系统级推送服务框架,同时通知推送服务又难以在后台「保活」,推送消息延迟最终会成为一个大问题:
为了保障推送体验,我们在 小米推送官网 上可以看到,除了第三方推送服务,微博也已经接入了小米家的 MiPush 推送服务。随着小米、华为和 OPPO 等系统级别的推送服务越来越成熟,更多 APP 会逐渐接入。
推送不及时,对新闻资讯平台来说也是致命打击。首当其冲的是日常生活依赖网易新闻、今日头条等资讯类 APP 的用户,良好的消息通知机制可以让买房人时刻关注房产资讯,果断下手潜力盘;股民第一时间了解股市变动,低买高卖获得收益;新闻热评人查看最新新闻,发布一手点评,而他们现在只能保持 App 常驻打开,在多个信息类 APP 中反复切换,用超人的记忆力和眼手并用技能紧随热点,充当自己的「人形推送师」。
想象一下中午 12 点的时候收到了领导早上 8 点发送的微信消息通知,这是一件多么恐怖的事情。即时通讯工具一旦推送不及时,几乎自费了一半武功。微信、QQ 这类即时通讯软件重度依赖推送消息的及时和准确,所以腾讯即使是自建服务器也要保证消息推送的可控。
因此要想从根本上解决这些问题,我们还是需要一个与 APNs 类似的、统一的推送服务。开头提到的统一推送联盟也应运而生。
2017 年 10 月,挂靠在电信终端产业协会(TAF)下,接受工业和信息化部业务指导的统一推送联盟正式成立,其成员几乎包含国内所有前沿的互联网厂商。联盟成立的目标也很简单:各家企业和 APP 都要遵从联盟建立的统一推送体系,不再使用独立的推送服务和标准。
截止到 12 月 24 日,已经有 9 个手机品牌相继完成了统一推送适配。他们分别是:华为、荣耀、OPPO、realeme、一加、中兴、三星、vivo、iQOO。暂未接入的还有小米、魅族、努比亚、联想、酷派、坚果等。其中联盟公众号有表示小米正在适配中,坚果也在发布会声明会接入。
据联盟去年公布的时间节点来看,2019 年 3 月 1 日,联盟开始统一推送标准符合性测试;2019 年 12 月 31 日,现有各推送通道兼容统一推送标准。 虽然尚未接入所有的手机品牌,但统一推送显然已经是大势所趋。
那么统一推送究竟能解决耗电大、占资源、推送不及时的问题吗?
从官方给出的 三星手机适配测试 中,我们应该能看出一二。测试样机在北京移动 4G 网络驻留,手机处于熄屏、静音状态,安装常用 30 款 App,对应用自建通道和采用统一推送的功耗进行对比。数据显示:经过 200 分钟的比对测试,采用统一推送可以降低手机待机能耗 30.4%。同时,系统推送服务可以大大提升手机重要消息的到达率(尤其是在弱网络的情况下),减少手机尝试无效连接所耗费的流量消耗以及系统资源占用。
注1:由于微信和QQ拥有系统白名单,会对结果造成影响,因此未纳入上述两款应用
注2:应用自建长连接功耗与应用个数正相关。
不可忽视的是,除了上述统一推送服务(类似 APNS 和 FCM ),统一推送联盟还开放了「推必达」服务,接入后我们还可以享受到运营商电信级别的灾害预警推送服务。
相比统一推送而言,理论上需要保持的后台和长连接索性都不需要了,据说接收推送和收到短信一样可靠。抛开「推必达」的落地成本和时间来看,这一点在重大灾害预警和救援上大有可为。一旦遇险,信息推送将变得至关重要,第一时间推送的逃生路线和 GPS 信息,都将为避险和救援争取到宝贵时间。
响应统一推送服务,对开发者来说显然省去了推送这个令人头疼的问题,对大部分开发者而言接入统一推送标准应该也不会有太多的适配或迁移成本。
另外,尽管微信此前曾以「安全标准」为由拒绝加入,但事实上统一推送服务也提供了强制加密服务,不应该存在以安全的理由拒绝加入,尤其在腾讯还是联盟重要理事的前提下。虽然这点其实作为用户我们也不用太担心:由于微信和 QQ 已经拥有很多系统的白名单(系统级的功耗优化),只要维持这个现状,接入和不接入的差别并不会太大。
事实上,根据统一推送联盟此前公布的 时间表,第三方推送通道会在 2019 年 12 月 31 日完成对统一推送标准的对接。而就在 12 月 31 日当天,每日互动旗下的消息推送服务「个推」就率先宣布了对统一推送接口标准的 适配。
「个推」的接入无疑是一个不错的开始——根据每日互动方面的公开数据,作为国内第三方推送服务市场的早期进入者,「个推」消息推送 SDK 的日活独立设备数量约有 4.3 亿(截至 2019 年 6 月),包括人民日报、新华社、CCTV、微博、京东、网易新闻、滴滴出行等应用在内的数十万 App 都接入了「个推」的推送服务。
在接入统一推送标准后,采用「个推」的应用开发者只需升级到最新版「个推」服务 SDK 即可完成对统一推送服务的接入,几乎不会有额外的适配工作量;这些应用在已经支持统一推送标准的手机上可以更加即时且高效地进行通知推送。
这同时也让我们看到了统一推送标准的可行性和可能性:如果 MiPush、OPush、华为推送等其它国内主流推送通道陆续接入统一推送标准,省电且可靠的通知推送将成为国内 Android 的新常态,在 绿色应用 和统一推送标准的双重杠杆撬动之下,饱受诟病的国内 Android 生态体验也势必会得到大幅改观。
对国内 Android我生态而言,这显然应该是 2020 年最值得期待的一件事情了,除「个推」外其他推送服务将于何时、以何种姿态接入统一推送,我们拭目以待。