"); //-->
从大学毕业之后,周围的同学和同事不论是月薪过万,还是勉强够到生活线,都纷纷将手机换成了“苹果”。而一头蒜都能当一盘菜吃的小编,曾经也很不理解,为什么大家不论贫富,都要花大价钱将手机换成“苹果”呢?难道真的只是为了“撑门面”(嗯,这应该也是一个原因)?直到小编用某某同学的iPhone 5s打了一下午的王者荣耀,然后开始陷入了沉沉思索:小编曾用过多款安卓手机,包括中高端的(借用的),同等配置的手机,为什么安卓的会越用越卡呢?小编在网上搜索了半天,各种说法都有,但是大家不约而同地都提到一个名叫“推送服务”的妖孽。
手机推送服务
什么是手机的推送服务呢?手机推送服务是指服务器定向将信息实时送达手机的服务,其原理是通过建立一条手机与服务器的连接链路,当有消息需要发送到手机时,通过此链路发送即可,具体可见图1。
图1 推送服务工作原理图
其实,手机推送服务还是很必要的,只是因为其中存在一些利益关系而被部分开发者和服务厂商给用坏了。例如,最早我们使用的功能机就已经具备的未接来电提醒、短信提醒以及日历提醒等,都属于推送服务,但是功能机并不存在严重的卡顿问题(如果有,大部分原因也是手机内存等配置比较低的原因)。而进入智能机时代,大量手机APP进入手机中,相应的卡顿问题也开始困扰大量手机用户,当手机主要分为两大阵营——安卓和苹果时,我们会发现,安卓系统相对于苹果的IOS系统,卡顿问题明显要严重好几个档次。那这又是什么原因呢?
介绍原因之前,小编先为大家介绍几种手机推送方式。
轮询(Pull)
应用程序(App)不停地向服务器发送请求信息,查看是否有新的消息。这就要求手机必须自己可以实现与服务器之间的通信,例如消息排队等。同时,如果应用这种推送方式,还需要考虑轮询的频率,如果太慢,将会导致某些消息的延迟,如果太快,又会大量消耗网络带宽、手机内存以及电池电量等资源。
建立长连接的推送(Push)
即在App和服务器之间建立长连接通道,通过这个通道,App可以向服务器请求数据,服务器也可以向App发送数据。在安卓系统中,如果App被关闭,App可以启动一个后台服务来维持通道的继续运行(很多安卓App开发者正是利用了这一机制在作文章)。
APNS(Apple Push Notification Service)
APNS是苹果系统用于实现推送服务的方式,其实APNS是一条系统级别的长连接通道,通道的一端连接所有的手机APP,另一端是苹果的服务器。在苹果手机系统中,APP的服务器如果有消息需要推送,需要先把消息发送到苹果的服务器上,再利用苹果的服务器通过长连接通道发送到用户手机,最后通知具体的APP。即使手机安装了多款APP,也只通过一条通道来发送推送信息。这就极大地节省了苹果手机的后台资源和耗电量。
GCM(Google Cloud Messaging)
GSM是谷歌针对苹果的 APNS推送的优势进行的推送机制的优化改造,其工作机制基本上与APNS类似,是为了减少安卓后台常驻后台的数量,节省设备RAM资源而开发的推送方式,但是由于安卓系统的开源特性,GCM 并不具有像APNS 那样的强制性。
安卓和苹果的推送模式对比
介绍完几种推送模式,大家应该大致明白了安卓手机比苹果手机卡顿的原因了吧。
其实,安卓手机是可以不这样卡顿的,就目前来看,针对推送机制的原因主要有两点。
其中一点是,针对谷歌进一步优化的GSM推送机制,国内的安卓用户由于一定原因并未能真正用到,即使一些大神级别的手机控对手机进行了特定处理得以应用,也还是很不稳定的。更何况,由于安卓系统的开源特性,应用了这种机制也并不能完全达到预期的效果,很多开发商还是会通过针对性修改底层应用程序以达到“冗余”推送目的。
另外,最主要的原因还是在于安卓系统是开源的,目前还没有统一的标准来约束开发商进行商业目的开发和推送。即使手机预装了GSM,也难以完全遏制这一现象。这也使得360卫士、腾讯管家、猎豹清理等清理软件成为安卓手机的标配软件,而相继App则通过自启能力、后台运行、相互唤醒等“异能”使得各种卫士的清理功能大打折扣,仍然未能从根本上解决问题。
相比之下,苹果的IOS系统则在这方面有着得天独厚的的优势,由于系统的封闭性,大部分软件都是苹果自己开发的,即使是开发商另行开发的软件,也要遵守苹果的游戏规则。另外,IOS系统并不存在后台运行这一说法,打消了软件开发者见缝插针的念头。
安卓推送服务标准制定
同样受够了安卓系统卡顿带来的抓狂的小编得到消息,工信部联合众多手机厂商要建立安卓手机统一消息推送标准啦~~~有没有很激动哈?!
小编了解到,泰尔终端实验室此前联合包括华为、OPPO、vivo、小米、三星、魅族、金立、努比亚、谷歌、百度、阿里巴巴、腾讯、个推、极光等国外内主要相关企业共同制定安卓统一推送服务技术标准。工信部旗下泰尔终端实验室称,关于未来统一推送的架构体系,国内各大厂商以及谷歌专家已经达成一致:
1)未来将由终端厂商提供系统级推送服务(类似APNS的唯一推送通道),确保App的推送消息接收;
2)不再允许各App在后台保留常连接,降低终端能耗、提升用户体验;
3)各终端厂商实现推送通道接口和功能统一,方便开发者接入;
4)第三方推送服务商原则上也遵循统一推送的标准,保证服务一致性,降低开发者学习成本。
这一标准可谓是相当亲民哈,有望改善当下安卓手机出现的卡顿以及各种花样百出的推送信息满屏乱跳的尴尬局面。同时,也是建立良好的安卓生态系统的一个开端。或许,就在不久的将来,安卓手机将会迎来人生的大反转!
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。