查看原文
其他

解脱了,国内安卓统一推送通道有新进展了

可可 开发者技术前线 2019-05-23

点击上方开发者技术前线”,选择“星标”

13点21分打卡 就是真爱


来源:开发者技术前线 | 本期责编:可可   


众所周知,2017年,工信部旗下泰尔终端实验室联合包括华为、OPPO、vivo、小米、三星、魅族、金立、努比亚、谷歌(微博)、百度、阿里巴巴、腾讯、个推、极光等国外内主要相关企业共同制定安卓统一推送服务(Unified Push Service,简称UPS)技术标准,旨在为国内的消息推送服务建立统一的标准,为终端用户提供更好的手机使用体验,为应用开发者更好解决消息推送需求,并取得了阶段性成果。



具体来说,未来将由终端厂商提供系统级推送服务(类似APNS的唯一推送通道),确保App的推送消息接收;相应的不再允许各App在后台保留常连接,降低终端能耗、提升用户体验。与此同时,各终端厂商实现推送通道接口和功能统一,方便开发者接入。另外,第三方推送服务商原则上也遵循统一推送的标准,保证服务一致性,降低开发者学习成本。


去年8月1日,联盟发布了统一推送的接口标准,并将于今年3月1日开启推送通道的测试。统一推送联盟开始启动相关标准测试和认定工作。就在前日,《统一推送技术要求和测试方法》已开始接入厂商测试


联盟公告:”统一推送联盟目前已完成各项前期准备工作,即日起接收各厂商提交的“统一推送服务”测试认证申请“


从 Android 8.0 新特性来看,未来安卓App的后台活动将受到更严格的管控,消息推送将只能通过系统级推送通道下发。目前,各大手机厂商也已经提供或者正在研发基于各自系统平台的系统推送服务解决方案,如果国内安卓统一推送服务未来成为一项行业标准,无疑对于安卓手机用户是一大利好。


如果这一标准能够顺利实施对于不光对于Android 开发者是一个天大的好消息,对于普通用户也是非常好的消息。大家都知道 Android和 iphone最大的区别就是Android比iphone要卡。其中原因之一就是推送机制的问题,接下来单看看目前各大平台对于推送的架构设计。


推送包括 通道,客户端,和服务端 三层架构。


推送设计实现


主要是两种实现方式:

1 pull 心跳,轮询时间短:耗电,耗流量。时间长,不能保证消息及时。

轮询:

Timer:WakeLock 让CPU 保持唤醒,耗电量很大

AlarmManager:管理独立的硬件时钟RTC,可以在CPU休眠的时候正常运行。在预设的时间到达之后,唤醒CPU。这样CPU可以正常休眠,只需要任务到达之后醒来一段很短的时间。极光推送就是基于此实现的。


2 push:SMS、websocket, 长连接 。

 

长连接又包括三种方式:

 GCM:google的Gcm,容易被国内厂商阉割,而且NAT(Network AddressTranslation)容易超时,长连接无法保持,造成消息推送延迟。

 第三方推送:友盟、极光,腾讯信鸽

自定义长连接:长连接、心跳和推送及时率。

保持长连接,是消息及时的重要保证。发送心跳包,如果前台检测发送失败,则重新初始化一个socket。


Android推送原理:



iOS推送

iOS应用的推送大部分情况下都要依赖苹果生态提供的APNs(Apple Push Notification Service)服务。
下边用两幅图来简要说明其推送原理


目前移动端都可以自建网络通道实现推送,设计架构如下:


图片来自:辉哥的IT杂货铺


主要核心实现在于业务层的接口设计和接入,通道层的消息分发和信息路由,客户端的心跳和消息处理。


    统一推送的优势

统一推送联盟还表示未来将继续联合各方力量,强化推送内容管理,帮助用户避免无用消息的骚扰;同时为减少 APP 不良行为带来的影响,继续推动绿色 APP 的普及。此外,联盟后续还将持续推广我国自主移动互联网标准体系,推动国内移动互联网基础能力建设,提高用户体验。


如果推送统一了。对于国内众多机型,厂商,多渠道推送的 Android 市场来说,是一个很好的消息,


这意味着:


  1. 以后开发者不应去花大把时间兼容机型,包括也不需要做保活操作。

  2. 对用户也少了打扰和隐私侵犯,联盟可以控制中间流程,减少风险。


说白了 ,推送的达成,不但对开发者降低了开发的成本,也对客户的隐私提供了保护,防止APP在没有用户的授权下私自推送。

END


喜欢就点个好看吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存