由于一些特殊的原因,在国内的用户无法享受到谷歌安卓系统提供的 GMS 消息推送服务,不少国产安卓软件接收消息依靠后台服务存在,也由此出现了用户反映的耗电以及占用内存问题,不过未来这一问题有望得到全面解决。
![074357_ImHO_2896879.png](https://static.oschina.net/uploads/space/2017/0604/074357_ImHO_2896879.png?x-oss-process=image/resize,w_1400/format,webp)
据工信部旗下泰尔终端实验室发布消息称,各个终端厂商的系统级推送通道不可避免的存在差异性,因此,开发者同时接入、维护多条推送通道存在着一定的困难。在此背景下,泰尔终端实验室联合包括华为、OPPO、vivo、小米、三星、魅族、金立、努比亚、谷歌、百度、阿里巴巴、腾讯、个推、极光等国外内主要相关企业共同制定安卓统一推送服务(Unified Push Service,简称UPS)技术标准,旨在为国内的消息推送服务建立统一的标准,为终端用户提供更好的手机使用体验,为应用开发者更好解决消息推送需求,并取得了阶段性成果。
具体来说:未来将由终端厂商提供系统级推送服务(类似APNS的唯一推送通道),确保 App 的推送消息接收;相应的不再允许各 App 在后台保留常连接,降低终端能耗、提升用户体验。与此同时,各终端厂商实现推送通道接口和功能统一,方便开发者接入。另外,第三方推送服务商原则上也遵循统一推送的标准,保证服务一致性,降低开发者学习成本。
目前 Android 的各种自定义推送消息的泛滥也对手机通知栏的展示造成了影响,破坏了界面的统一性。统一推送的标准后,对于消息推送会增强管理。例如,通过推送消息的相互拉起明确不被允许,利用透传消息拉起App的行为也被禁止。同时,为了保证用户体验,原则上也不支持推送消息的定制化(包括消息样式的定制化以及提示音的个性化,通知栏图标不允许使用外链),保证消息推送的公平性和用户界面的一致性。
为了帮助开发者提高推送的准确性,统一推送标准在推送通道中定义了批量推动消息的信息反馈机制,在消息过期后将每次推送的最终情况(展示、拒绝或其他类型错误)返回给开发者,帮助开发者不断根据反馈信息提升消息推送的准确度。同时,对于滥用推送消息也将进行限制,对于用户点击率很低或用户消息屏蔽较多的App,可能采取包括限制推送条数、拉入黑名单等惩罚性措施。引导开发者注重用户体验,实现净化安卓生态的目标。
统一推送对于开发者的一个福音是,由于推送 API 的统一,未来各终端厂商将提供系统级 API 实现推送功能(即App无需嵌入各通道SDK)。考虑到实际情况,为了兼容已有机型,手机端还是会提供一个简单的SDK,判断手机是否支持统一推送。若支持则可以直接调用 ROM API ,否则按照当前已有方式进行推送(为了适配已有机型还需要保留推送SDK)。随着手机的自然更替,未来支持统一推送的终端数目会不断更加,从而逐步实现统一推送的平滑演进。
本文来自开源中国社区 [http://www.oschina.net]