IOS下我们很多人天天开着 邮件推送 微信推送 QQ推送 微博推送 新浪微博推送,安卓敢吗? 五个后台进程消耗电、流量谁敢这么做?现在安卓也出了推送,但绝对是伪推送。实际是挂了个进程,关掉了就收不到。

android和pc模式的原理是,你挂着QQ,你的手机就连着qq的服务器,你挂着msn,你的手机就连着msn的服务器……还有日程软件、电邮客户端、天气软件、股票、新闻、微博……他们在后台的情况下,统统都连着各自的服务器。因此造成的影响是:流量大,耗电。

推送的原理是,iphone连着唯一的一条连接到apple的服务器,由apple的服务器连接到各种邮件、天气、qq、微博服务器。平时就靠apple的服务器与各服务器沟通,有新消息时,才告诉iphone。因此非常省流量,而且省电。iphone可以把所有的第三方进程kill掉,系统底层维持着与apple服务器的连接。而android必须保留进程才能接收信息。我觉得,ios和wp7的这种模式才是明智的。

以下为摘抄,有耐心的人看下去吧
------------------------------------------------------------------------------------

推送系统最早其实是黑莓的专利,后来ios非常聪明的学去了,而且学的很好。在推送之前很多智能系统只能通过轮询的方式不断定期向服务器询问是否有新信息,往往费电和费流量。
ios建立了一个统一的服务器,APNS(Apple Push Notification Service),简单的说,我们在手机上接收到的所有推送信息都来源于这个服务器,每一台ios设备都有一个独立的识别码相当于身份证。那么当你用这个身份证登录了某个软件(比如米聊)后,就连接到了米聊的服务器上,在推送体系中这个目标服务器被称作Provider。接着你看完消息,退出米聊后,进程结束,但是此时你这个身份证的登录状态并没有在Provider里注销,而是保留了。因此如果有人给你的米聊发送了信息,就会触发Provider的行为,但是由于你关闭了米聊,所以它无法直接向你的手机发送消息,于是它转而向APNS发送信息,顺便带着你的身份证。然后万能的APNS就顺着身份证找到你,然后把消息塞到你的手机里。只要你ios设备的推送不关闭,流量不关闭,那么你的设备就会一直和APNS保持连接,从而达到24小时接受推送信息的目的。有人应该已经明白了这样做的好处,因为你只和一个服务器产生连接,省电省流量。另外由于APNS服务器的广域和强大的稳定性,以及该服务在ios属于固定的API接口,使得整个推送系统稳定而健壮。不过顺便一提ios的邮件推送是另一套完整的PushMail系统,和这个无关。

那么为什么安卓的推送没有ios给力?其实在Android2.2之后,谷歌也建立了类似ios一样的推送系统——Android Cloud to Device Messaging(C2DM),但是为什么这个系统没有APNS给力呢?主要是C2DM的服务器对于国内来说是外面的东西,由于谷歌在国内受到了一些格外的照顾,这个服务器也就显得不那么给力,这是国内厂商多不选择C2DM的重要原因。另外Android开源和API的开放提供了其它推送的选择。在C2DM不给力的情况下,一些软件选回了老的轮询方式的(凡是软件里需要你自己选择多长时间检查一次有没有更新的软件都是轮询方式)来提供消息,这种方式有相当的不稳定因素,在机器内存紧张的情况下驻留的http服务容易被回收,还更费电费流量。更多软件厂商则选择了利用Android的自由的XML的API接口自己搭建XMPP服务器来直接向用户推送消息,缺点同样是驻留的服务容易被回收,尤其对于小内存机器和在内存管理上时常有技术性溢出(回收机制缺陷)的MIUI来说如果不锁定服务的内存那么就可能出现收不到推送的情况。总体看来由于安卓推送机制的缺陷和进程的不统一(你装米聊微信微博就等于后台有了三个推送进程),整体上的健壮性得不到保证,也更加费电和费流量,与ios统一而健壮的推送服务有了很大的差距。

综上所述安卓系统的推送问题是并不是MIUI小组可以企及的,就算MIUI强势到能够建立一个q1an9内的推送服务器,也需要说服众多的软件厂商去使用他们的服务器,这就意味着需要有“米聊MIUI版”“微博MIUI版”,更加加剧了安卓生态圈的分裂。

至于在Android4.0时代安卓能否改变这个现状我只能持谨慎乐观态度,因为其开源性和向下兼容的API整合使得这种现状更有可能延续下去而不是改善。

转:IOS的推送。是一个强大的功能的更多相关文章

  1. iOS 10 推送全解析,注意事项

    本文旨在对 iOS 推送进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老手,你将会对其中的各种细节和原理有充分的理解.以下是 pikacode 使用 iOS ...

  2. 使用PushSharp给iOS应用推送消息

    PushSharp是一个C#编写的服务端类库,用于推送消息到各种客户端,支持iOS(iPhone/iPad).Android.Windows Phone.Windows 8.Amazo.Blackbe ...

  3. IOS远程推送

    IOS远程推送 一.关于推送通知 推送通知,也被叫做远程通知,是在iOS 3.0以后被引入的功能.是当程序没有启动或不在前台运行时,告诉用户有新消息的一种途径,是从外部服务器发送到应用程序上的.一般说 ...

  4. iOS 消息推送(APNs) 傻瓜式教程

    也可以去我的简书页面查看这篇文章 首先: 1.做iOS消息推送需要真机测试 2.做iOS消息推送需要有付费的开发者账号 是否继续看帖? 先学习一下相关的知识吧! 因为中途可能会遇到一些问题,这篇文章或 ...

  5. (转载)iOS 极光推送SDK 集成指南

    iOS SDK 集成指南 使用提示 本文匹配的 SDK版本:r1.2.5 以后. 查看最近更新了解最新的SDK更新情况. 产品功能说明 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能 ...

  6. iOS远程推送原理及实现过程

    ➠更多技术干货请戳:听云博客 推送通知,是现在的应用必不可少的功能.那么在 iOS 中,我们是如何实现远程推送的呢?iOS 的远程推送原理又是什么呢?在做 iOS 远程推送时,我们会遇到各种各样的问题 ...

  7. iOS极光推送,两次Bundleid不一致( 开发证书没有通过验证 是否重新上传证书)的解决方案

    极光在配置ios端推送时,需要上传p12证书,如果遇到如下图:: 证书上传未通过的原因一般有: 1.当前上传的p12证书密码输入有误: 2. 证书导出的时候展开了证书,把个人私钥导了出来,导证书的时候 ...

  8. ios 实现推送消息

      iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的 ...

  9. (转)iOS消息推送机制的实现

    原:http://www.cnblogs.com/qq78292959/archive/2012/07/16/2593651.html iOS消息推送机制的实现 iOS消息推送的工作机制可以简单的用下 ...

  10. 【iOS】iOS消息推送机制的实现

    iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...

随机推荐

  1. jQuery新浪微博表情插件教程

    1.引入css文件 <link rel="stylesheet" type="text/css" href="jquery.sinaEmotio ...

  2. Chrome插件开发笔记

    使用 XMLHttpRequest来抓取盗版小说网站里面的内容,但是注意需要在manifest.json文件中设置permission var xhr = new XMLHttpRequest();x ...

  3. Navicat for Oracle

    1.先解压Navicat for Oracle到任意目录 2.将instantclient-basic-nt-12.1.0.2.0解压到1中目录的instantclient_10_2文件夹下(推荐,可 ...

  4. bzoj 2259: [Oibh]新型计算机 最短路 建模

    Code: #include<cstdio> #include<cstring> #include<algorithm> #include<queue> ...

  5. Vue总结(三)

    Vue 实例还暴露了一些有用的实例属性与方法.它们都有前缀 $,以便与用户定义的属性区分开来. var App = new Vue({ el: "#root", data: { m ...

  6. CF 420B Online Meeting 模拟题

    只是贴代码,这种模拟题一定要好好纪念下 TAT #include <cstdio> #include <cstring> #include <algorithm> ...

  7. 【Henu ACM Round#20 F】 Arthur and Brackets

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 所给的li,ri是左括号从左到右的顺序给的. (且注意长度是2*n 现在我们先把第一个左括号放在第1个位置. 然后考虑第二个位置. ...

  8. vs2010和qt4.8.4配置

    最近项目要求在vs中开发qt程序,安装过后发现代码每天提示功能.由于本人记忆力有限,特在网上收罗了些配置方法. vs安装目录采用默认,qt安装目录:C:\Qt\4.8.4vs 在系统环境变量新建QTD ...

  9. 五大最受欢迎的BUG管理系统

    Google在中国大陆遭遇变故做出临时性的退出大陆市场,也使非常多忠实的用户受到小小的挫折,以本公司为例.原本的BUG都是记录在google的 EXCEL在线文档中,由于常常性的打不开.測试和开发组在 ...

  10. 使用Java8提供的Duration类制作字幕时间轴调整工具

    网上下载的字幕有时和片源的时间轴不一致.我们能够自己写一个工具来调整,也就是总体向前移动几秒,或者向后移动几秒.Java8中提供的Duration类使得这样的时间计算极其方便.以下就以最简单的srt字 ...