统一推送联盟向安卓手机“毒瘤”宣战

来源:    发布日期:2018-05-31 09:18:27   阅读量:0

记者/何从 编辑/刘昭

许多人都知道,中国大陆的安卓软件推送乱象丛生。没有相应的规则约束,国内的安卓软件生态,有点像一匹匹脱缰的野马,在大家的手机中随意驰骋。频繁唤醒、常驻后台、定点推送,手机应用这些“毒瘤”动作让你的安卓手机卡顿、耗电!

在移动互联网时代,各种App的推送信息像雪花一样“飞入”我们的手机。大家在苹果ios系统和安卓系统手机上看到的App消息样式类似,但实际上在后台,两者的运行模式完全不同。由于各种各样的原因,在安卓系统手机中,谷歌的统一推送服务无法在国内使用。因此,中国第三方服务商与手机厂商,纷纷自建推送通道给App使用,并偷偷在后台持续运行。

为解决这些问题,2017年10月份,在中国信息通信研究院带领下,联合软硬件厂商、运营商一起成立组织——统一推送联盟。并联合制定UnifiedPushService(UPS统一推送服务)技术标准。

近日,统一推送联盟发表最新工作进展,宣布推送方式和首批支持应用。具体来说对于接入UPS的应用要求,得按照发布的《安卓绿色应用公约2.0》规矩来!大致有三个事项:第一,限制交叉唤醒、链式启动。除用户主动打开,避免程序自己启动。第二,手机CPU尽可能处于休眠状态,避免在不必要时间段(如夜间)继续使用CPU。第三,应用要避免非必要后台常驻服务。

如果“统一推送”标准能够实行并普及,从表面上看,安卓系统手机用户可见的App消息的收发形式不会有任何改变,也不会让手机使用体验立即有飞跃提升。但从长期看,所有App共用一条推送通道,手机后台只存在1个推送进程。这样就减轻了安卓手机运行负担,耗电也会更少。长此以往,整个安卓系统生态也会更加美好。

消息发布后,有人表示赞誉,但也有许多网友对“统一推送”项目提出质疑,对此北京科技报记者专门向统一推送联盟进行了专访。

▲统一推送联盟的工作目标 (图片来源:统一 推送联盟)

Q&A

1.统一推送对安卓手机用户体验有什么样的影响?

对于用户,联盟核心目标是减少应用在后台驻留,减少手机能耗。目前很多应用为实现推送功能,需要自己建立与服务器的长连接,这就导致应用必须常驻后台,以维持连接端口活跃。这一过程不仅会占用手机的硬件资源,同时,周期性对通讯模块唤醒,会消耗更多手机电池电量。

统一推送通过在手机系统维持唯一长连接,使得不同应用链路合并,同时通过系统级通道满足应用发送推送通知的业务需求,同时在此过程中不唤醒应用,确保对用户体验的保证。

2.我的安卓手机什么时候可以用上?

目前还无法给出具体时间表,联盟正在和各相关从业者沟通具体细节,希望该服务能够在年内上线。该服务主要针对国内的安卓的碎片化加以解决,对于应用在海外的服务,目前还没计划有涉及。

对于推送服务的实现,已售手机,将通过厂商在线升级操作系统版本实现。若无法升级系统版本,则仍然需第三方推送服务商提供服务。但第三方推送服务商,也应遵照统一推送技术和服务标准,保障最大程度合并链路,减少手机电量和流量消耗,减少打扰用户,确保安卓系统用户体验。

▲截至2018年4月,统一推送联盟公布的部分绿色公约App 名单 (图片来源:统一 推送联盟)

3.推送将使用什么方式进行?

联盟各参会方对标准主要内容基本达成了一致意见。但还要继续征集意见,具体的细节和推动的步骤还在进一步明确中。

联盟将整个推送需求进行分层,核心通道层是构建类似APNS推送服务体系、基于IP的推送,通过建立一条IP层的长连接来实现消息的送达。

而联盟预计还将采用信令通道,这是一种类似二进制短信形式,对于一些对时效和到达率要求较高的消息,应用可采用信令通道进行下发。手机在收到对应消息后,重新解析成为消息通知,并在通知栏进行展示。这一方案结合短信和消息推送优点,使得消息到达率大大提高,不需要应用安装额外SDK(软件框架包),同时节约了能耗和流量。这一方案目前已完成DEMO演示,可作为IP推送的补充。

不过信令通道(类似短信)容量有限。所以主要是作为一些高端的需求,例如对到达率要求很高的业务提醒类等。此外短信业务是会产生费用的。应用开发者发送信息时就会更加慎重,最终使得对用户的打扰减少,而重要的信息也会及时、可靠到达。

4.推送内容会被监控吗?个人资料有泄露风险吗?

推送信息通过手机厂商的通道进行下发,厂商会对通道的安全负责。联盟作为行业团体组织,仅从标准制定角度协调各方,并不参与具体的运营。同时联盟考虑到推送消息的内容安全,讨论通过了《内容安全系统框架设计》标准,由通道方对消息内容的安全提出了要求,最大程度地保护用户权益。

5.华为、小米等手机厂商在联盟中干什么?观察员谷歌是“只看看不说话”?

根据联盟准则,各厂商根据联盟标准构建自身系统级推送通道,在手机操作系统中集成常驻系统的服务。手机厂商承担推送通道物理硬件建设责任。联盟初衷是希望联合各厂商共同构建安卓生态基础服务,共同服务好安卓生态的开发者,实现行业的整体繁荣。而谷歌公司在安卓生态和相关技术方面有着长期积累和经验,能提供一些有益的意见和经验,帮助相关工作更好开展。

6.所有的主流应用都已加入到《安卓绿色应用公约2.0》中了吗?

并不是。目前已加入《安卓绿色应用公约2.0》列表中的App,缺乏部分我们日常中常用的应用,尤其是BAT主要应用的缺失,还是让人略感遗憾。统一推送联盟并不拥有绝对的强制约束力,能做的也只有标准制定和倡导。但从长远角度来讲,如果应用可以全部加入“绿色公约2.0”中,对国内安卓生态绝对是好消息。

为什么我的安卓手机这么卡?

在部分人眼里,他们对于安卓手机的概念是:“安卓手机卡顿,刚买回来还行,用一段时间就不行了。”安卓手机最受人诟病的一点就是卡顿,“用久了会卡”成为人们的普遍印象,这也是导致很多人转向iOS阵营的主要原因。“卡顿”似乎成了安卓系统手机的“原罪”。

其实每代iPhone手机的硬件中,供后台程序使用的运行内存(RAM)容量提升一直很慢,去年9月份发布的iPhone X内建3GB运行内存RAM,而同时期安卓阵营已有多款旗舰机搭载8GB内存。但在实际使用中,安卓手机依然会出现卡顿,内存硬件的提升似乎并没有改变这个现象。

安卓和iOS作为最流行的手机操作系统,在应用权限申请和后台限制上有着截然相反的原则。iOS和安卓分别是基于Unix和Linux衍生出来的产品。Unix是一个封闭式系统,而Linux则是一个开放系统,正是由于这个原因,从系统诞生之初,已决定了两个系统日后体验有差异。

安卓和iOS的生态区别,总结起来无外乎一者开放、一者封闭。苹果对硬件和系统软件有绝对掌控权,应用审核标准也严格。而安卓就开放包容得多了,秉承自由开放原则,给开发商提供“图纸”,提供无数便利,让各厂商发挥天马行空的创意,对系统进行各种定制,也不强制只能安装自家市场应用。

▲Android平台推送流程示意图(图片来源:统 一推送联盟)

苹果推送:我的地盘听我的

苹果手机的iOS系统最早是不支持多任务的(iOS7后支持),当应用被切换,或者回桌面后,应用会自动将其挂起,为了在应用被挂起时也能让用户及时接收到信息,苹果在iOS3.0推出APNs(Apple Push Notification service)推送服务。

在iOS上APNs负责所有应用消息通知需求。当某应用需发送消息通知时,这则消息会先发给苹果服务器,然后由苹果服务器推送到设备。在这一过程中,设备上应用本身没有参与。这就是在国内也能收到Instagram、YouTube等国外应用消息推送的原因——毕竟国内有苹果的服务器,这一连接的质量是很有保证的。

苹果手机通过APNs统一的推送服务,应用无需常驻后台,也能及时收到推送信息,这种方式能很好地控制资源占用,减轻系统后台进程压力,避免因进程被杀掉而接收不到信息的情况。手机耗电量降低,同时减轻了内存负担,应用运行速度提升。

▲IOS 平台推 送流程示意图(图 片来源:统一推送 联盟)

谷歌推送:摸着石头过河

安卓是典型的多任务系统,早期版本时候,对于没有运行的应用,安卓系统不会将其关闭,而是放置在后台。当内存不足时,才会清除掉旧的进程来回收内存。这样做的好处是,用户重新回到一个应用时,无需重新加载,能够实现快速切换,应用间联动更加紧密。不过带来的问题也显而易见,应用长时间在后台运行,导致消耗更多电池电量,占用内存也影响手机运行速度。

后来,安卓的队伍愈发壮大之后,各种弊病丛生,隐忍许久的谷歌看不下去了,终于站出来发声规范队伍。从4.0版本开始陆续推出权限限制、后台限制等方式,并开发GCM和C2DM等推送服务。谷歌2016年开发者大会以后,推出FCM确定为安卓系统级消息推送服务。FCM原理和苹果APNs类似,支持FCM服务的安卓应用不再像以前一样需要常驻后台,手机内存得以释放。

“中国推送”:百家争鸣

众所周知,谷歌服务在国内基本无法使用,所以中国很少有应用支持FCM推送方式。各大互联网软件业者和手机厂商“各自为政”,自己开发推出各种推送服务。比如腾讯信鸽推送、百度云推送、阿里云移动推送等。

使用百度、阿里、腾讯BAT系公司各类安卓应用的朋友,可能都知道应用“全家桶效应”,这调侃的是BAT自家应用相互唤醒。你打开一个淘宝,就会“偷偷打开”支付宝、天猫等应用,这种相互唤醒,目的是让共用推送通道保持活跃,而不被系统杀死,以便消息能及时送达。

当然“全家桶”是一个相对抽象的说法,具体落实可能有比较多的细节。还有一种专业第三方平台提供推送服务,这种第三方平台与BAT推送服务类似,所以使用同一推送通道的应用为保持通道活跃,也会有相互唤醒情况。

另外还有各大手机厂商自家推送服务,这些推送服务被集成到定制安卓系统中,享系统级地位,推送优先级比较高。

▲手机后台对齐唤醒机制示意图。采用对齐唤醒机制会 限制后台推送服务的频繁唤醒,将它们在某个时间段统 一唤醒,从而实现省电的效果。然而这是一种简单粗暴的解决方法,虽然限制了后台服务的唤醒,但也导致了部分推送不能及时送达, 对于闹钟、 即时通信等应用来说尤其致命(图片来自网络)

软硬件厂商打成一片,用户遭殃

由于各种原因,谷歌推送服务无法在中国大陆使用。对于各大手机厂商自家推送服务,国内手机厂商系统较多,开发者不可能兼顾所有厂商,为每个品牌手机都适配对应推送服务,而且厂商推送服务也不能在其它品牌手机上正常使用,不能像在自家系统上一样实现系统级推送。

不同开发者在面对以上众多推送服务时,做出不同选择,这导致应用所使用的推送服务五花八门。就算抛开多个推送服务本身占用资源不看,应用间为保持推送通道活跃,互相唤醒情况,也常常使得安卓手机满载运行,安卓手机又卡又费电也就不难理解了。

由于没有统一推送机制,应用在使用后会一直维持后台推送进程运行,后台运行进程过多引发耗电、系统卡顿等问题。对此手机厂商的解决方式是用定制系统杀后台、对齐唤醒等。用过低端机用户应该能感受到,在同时运行多个应用时,切换应用通常需要重新加载,这样的用户使用应用程序的体验是不连贯的。

后台推送进程不存在,消息自然无法到达用户手机。为了保证应用消息传达效率,应用开发者和推送服务商往往通过应用互相唤醒方式,把被系统“杀死”的“全家桶”系列应用推送进程“满血复活”,维持推送后台进程的存活与长连接。这些推送进程在后台常驻或者经常唤醒,会大量消耗用户手机的电量。然后就形成了一个恶性循环。

高度自由化的土壤里,国内手机厂商为了自家手机使用体验,施展出权限限制、操作警示、后台强力清理等十八般武艺。各大应用也不甘示弱,后台自启,双进程守护,全家桶效应等等。手机厂商和应用打成一片,不仅两败俱伤,还拖累了无辜的“劳苦大众”。

幸运的是,众多国内安卓软硬件业者,逐渐看到安卓生态和用户体验重要性,并由工信部中国信息通信研究院泰尔终端实验室牵头,与各大业者,共同建成“安卓统一推送联盟”,对中国大陆安卓生态进行规范。希望该服务能早日上线,打造一个中国手机厂商与应用和谐发展的安卓生态环境,让大家安卓手机体验更加美好。■

参考资料:

1.统一推送的现状与展望惠亮《电信网技术》 , 2018 (1) :77-78/

2.走向封闭的Android与推送触达的难题马广亮《电信网技术》 , 2018 (1) :79-80

3.基于Android平台的长连接云推送服务设计黄颖,郭晖《信息与电脑(理论版)》 , 2017 (18)