iOS 和 Android 的后台消息推送原理理各是什么?有什么区别

匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。||||||||||||||||||
查看: 4|回复: 4
在线时间264 小时经验值740 最后登录注册时间帖子阅读权限70UID
学士, 积分 740, 距离下一级还需 360 积分
TA的每日心情无聊 08:09签到天数: 1 天[LV.1]初来乍到
G币199 最后登录注册时间
& && && & 首先我这个也是从别的地方看来的,我就是负责复制粘贴一下。
& && && & 一直以来安卓用户都嘲笑IOS的伪后台,苹果为什么不实现实时后台呢?既不是IOS技术上无法实现,也不是苹果傻到不考虑用户需求,今天通过对Android与IOS的后台与推送机制的简单介绍,相信大家一定会有答案。  简单来说,iOS后台类型可以分为三种:  1. 保存现场。按下Home键10秒内直接杀死进程,并释放内存,大多数第三方APP(非内置APP)都属于此类,APP会保存关闭时的状态以便保存数据和下次打开时恢复。  2. iOS系统支持的“多任务”。按下Home键转入多任务状态,保留在内存中,但只能进行系统允许的动作:比如GPS,比如VoIP,比如流媒体播放等等,例如打开一个第三方音乐播放器,播放歌曲并按Home推出,音乐仍可以继续播放。  3. 真正的桌面级别的多任务。只有Safari/Mail是,苹果嫡系大都都不是。这个级别的APP在后台没有任何限制动作。  无限制后台动作的程序,一会在用户无察觉的情况下耗光电力,二会有安全上面的问题,所以苹果杜绝了绝大多数APP的后台动作,并且引入了推送服务器的概念。  由于iOS不允许大多数的APP在后台实时运行,那么例如QQ这类软件是如何实现实时聊天的呢?IOS的推送(APNS,即 Apple Push Notification Service)依托iOS系统常驻进程运作,全局接管所有APP的消息推送,所以可看作是独立于应用之外,而且是设备和苹果服务器之间的通讯,而非应用的提供商服务器。例如,你的QQ好友给你发了一条消息,QQ服务器(Provider)会把这条消息转发给苹果对应的服务器(APNs)发出通知,然后再中转传送到你的设备之上。当你接收到通知,打开应用,QQ这个APP才开始从腾讯服务器接收数据,跟你之前看到通知里内容一样,但却是经由两个不同的通道而来。  我们再来看看Android:  当进程被切换到后台时,系统暂停进程。不消耗CPU资源,只在内存保留运行状态,并根据应用本身设置优先级:  七个优先级:
  前台进程。顾名思义,你当前屏幕正在显示的进程。
  可见进程。随时需要待命的进程,例如随时需要召唤出来的输入法。
  主要服务。系统的必须服务,例如电话。
  次要服务。与系统关系密切的服务,例如 Gmail 的邮件推送服务。
  后台进程。同样顾名思义,就是刚刚被你切换到后台的进程。
  内容供应节点。没有应用实体,仅提供内容供别的应用去用的,比如日历供应节点,邮件供应节点等。
  空进程。没有任何东西在运行的进程,有些应用在退出后,依然会在进程中驻留一个空进程,这样的作用是提高该应用下次的启动速度或记录一些历史信息。  正常的Android应用在退出之后要不就成为后台进程,要不就成为空进程。这些进程已经暂停了运行,不占用 CPU 资源和电量。在内存不足,用户需要打开另外的应用时,就会自动清除掉,所以完全不需要清理内存。  那些不正常的应用,就会在后台开各种主要服务和次要服务,导致用户退出后继续运行,最常见的例子就是各种占据任务栏的xx电池助手、xx手机助手……  还有我们熟悉的微信、微博,关闭后仍然会在后台驻留后台进程,以接受推送消息,并且不断唤醒处于深度睡眠中的CPU。  我们仍以QQ为例,QQ在后台时会保留相关进程以及服务,并且与QQ服务器实时通讯以便获得好友发送来的消息。  iOS的聪明之处在于系统集成的推送服务接管了所有APP的推送消息,开发APP时只需遵循这一API接口即可,任何iOS设备如iPhone可以在这个统一的系统服务上获得各类APP的推送消息,占用资源小巧,并且省电。而Android上如果有100个APP需要获取通知消息,就可能需要在后台运行100个进程或者服务,这对内存以及处理器的占用是相当巨大的,而且对电池的耗费也是比iOS更为严重。  综上所述,苹果不允许绝大多数APP实现实时的真后台,无非是从安全性、系统流畅度与耗电三方面考虑,再加上推送服务器的架构,既让用户感觉到后台应用程序的相互切换是没有断层感,又实现了资源的有效利用,可谓是聪明之举。而Android的开放给予了APP更多权限,虽说耗电、系统资源占用高于IOS,不过Android的开放也不正是他获得成功的原因吗?
在线时间1101 小时经验值2846 最后登录注册时间帖子阅读权限100UID6037583
博士, 积分 2846, 距离下一级还需 654 积分
TA的每日心情无聊 13:31签到天数: 3 天[LV.2]偶尔看看I
G币569 最后登录注册时间
刚把老婆的4S升级成7.02& &不得不说 苹果更新的还挺给力& &期待三星更新啊
在线时间286 小时经验值4595 最后登录注册时间帖子阅读权限110UID7420591
博士后, 积分 4595, 距离下一级还需 105 积分
TA的每日心情无聊 20:33签到天数: 3 天[LV.2]偶尔看看I
G币4 最后登录注册时间
本帖最后由 jywangjiwei 于
08:48 编辑
多后台,多任务其实用处真不大,我觉得现在的手机还要从节能、降耗来考虑。手机!手机!!手机!!!为什么非要让它代替电脑呢?为什么非要把电脑的所有特性集成到手机中才算是理想的手机呢?
至少我认为:如果充一次电能让我用三天三夜,我宁愿不要多后台。
在线时间264 小时经验值740 最后登录注册时间帖子阅读权限70UID
学士, 积分 740, 距离下一级还需 360 积分
TA的每日心情无聊 08:09签到天数: 1 天[LV.1]初来乍到
G币199 最后登录注册时间
jywangjiwei 发表于
多后台,多任务其实用处真不大,我觉得现在的手机还要从节能、降耗来考虑。手机!手机!!手机!!!为什么 ...
安卓的后台是很强大,但是对功耗要求太高了,手机毕竟是移动设备,如果电量保证不了我们正常使用的话,那你就是功能再多也百搭,所以你的观点我是部分认同的,但是大家不是一直再找功耗与性能的平衡点吗,现在来说IOS好点,安卓智能靠大容量电池,我觉得这个有点危险啊。
在线时间0 小时经验值76 最后登录注册时间帖子阅读权限30UID
初中生, 积分 76, 距离下一级还需 24 积分
TA的每日心情开心 00:40签到天数: 3 天[LV.2]偶尔看看I
G币10 最后登录注册时间
刚把老婆的4S升级成7.02& &不得不说 苹果更新的还挺给力& &期待三星更新啊
浏览过的版块
Powered byiOS 和 Android 的后台推送原理各是什么?有什么区别? - 知乎2417被浏览342631分享邀请回答2添加评论分享收藏感谢收起中国第一军事门户网站 | &>&&>&
IT观察站:Android与IOS的后台与推送对比
    一直以来安卓用户都嘲笑IOS的伪后台,苹果为什么不实现实时后台呢?既不是IOS技术上无法实现,也不是苹果傻到不考虑用户需求,今天通过对Android与IOS的后台与推送
    一直以来安卓用户都嘲笑IOS的伪后台,苹果为什么不实现实时后台呢?既不是IOS技术上无法实现,也不是苹果傻到不考虑用户需求,今天通过对Android与IOS的后台与推送机制的简单介绍,相信大家一定会有答案。  简单来说,iOS后台类型可以分为三种:  1. 保存现场。按下Home键10秒内直接杀死进程,并释放内存,大多数第三方APP(非内置APP)都属于此类,APP会保存关闭时的状态以便保存数据和下次打开时恢复。  2. iOS系统支持的“多任务”。按下Home键转入多任务状态,保留在内存中,但只能进行系统允许的动作:比如GPS,比如VoIP,比如流媒体播放等等,例如打开一个第三方音乐播放器,播放歌曲并按Home推出,音乐仍可以继续播放。  3. 真正的桌面级别的多任务。只有Safari/Mail是,苹果嫡系大都都不是。这个级别的APP在后台没有任何限制动作。  无限制后台动作的程序,一会在用户无察觉的情况下耗光电力,二会有安全上面的问题,所以苹果杜绝了绝大多数APP的后台动作,并且引入了推送服务器的概念。  由于iOS不允许大多数的APP在后台实时运行,那么例如QQ这类软件是如何实现实时聊天的呢?IOS的推送(APNS,即 Apple Push Notification Service)依托iOS系统常驻进程运作,全局接管所有APP的消息推送,所以可看作是独立于应用之外,而且是设备和苹果服务器之间的通讯,而非应用的提供商服务器。例如,你的QQ好友给你发了一条消息,QQ服务器(Provider)会把这条消息转发给苹果对应的服务器(APNs)发出通知,然后再中转传送到你的设备之上。当你接收到通知,打开应用,QQ这个APP才开始从腾讯服务器接收数据,跟你之前看到通知里内容一样,但却是经由两个不同的通道而来。  我们再来看看Android:  当进程被切换到后台时,系统暂停进程。不消耗CPU资源,只在内存保留运行状态,并根据应用本身设置优先级:七个优先级: 前台进程。顾名思义,你当前屏幕正在显示的进程。 可见进程。随时需要待命的进程,例如随时需要召唤出来的输入法。 主要服务。系统的必须服务,例如电话。 次要服务。与系统关系密切的服务,例如 Gmail 的邮件推送服务。 后台进程。同样顾名思义,就是刚刚被你切换到后台的进程。 内容供应节点。没有应用实体,仅提供内容供别的应用去用的,比如日历供应节点,邮件供应节点等。 空进程。没有任何东西在运行的进程,有些应用在退出后,依然会在进程中驻留一个空进程,这样的作用是提高该应用下次的启动速度或记录一些历史信息。  正常的Android应用在退出之后要不就成为后台进程,要不就成为空进程。这些进程已经暂停了运行,不占用 CPU 资源和电量。在内存不足,用户需要打开另外的应用时,就会自动清除掉,所以完全不需要清理内存。  那些不正常的应用,就会在后台开各种主要服务和次要服务,导致用户退出后继续运行,最常见的例子就是各种占据任务栏的xx电池助手、xx手机助手……  还有我们熟悉的微信、微博,关闭后仍然会在后台驻留后台进程,以接受推送消息,并且不断唤醒处于深度睡眠中的CPU。  我们仍以QQ为例,QQ在后台时会保留相关进程以及服务,并且与QQ服务器实时通讯以便获得好友发送来的消息。  iOS的聪明之处在于系统集成的推送服务接管了所有APP的推送消息,开发APP时只需遵循这一API接口即可,任何iOS设备如iPhone可以在这个统一的系统服务上获得各类APP的推送消息,占用资源小巧,并且省电。而Android上如果有100个APP需要获取通知消息,就可能需要在后台运行100个进程或者服务,这对内存以及处理器的占用是相当巨大的,而且对电池的耗费也是比iOS更为严重。  综上所述,苹果不允许绝大多数APP实现实时的真后台,无非是从安全性、系统流畅度与耗电三方面考虑,再加上推送服务器的架构,既让用户感觉到后台应用程序的相互切换是没有断层感,又实现了资源的有效利用,可谓是聪明之举。而Android的开放给予了APP更多权限,虽说耗电、系统资源占用高于IOS,不过Android的开放也不正是他获得成功的原因吗?(作者:微微责任编辑:张晓冬)
标签:Android与IOS的后台与推送机制主编观点IT观察站手机新闻评测
本栏目最新文章
,特拉维夫,中风倒下昏迷8年后,以色列前总...
热门关键词

我要回帖

更多关于 android消息推送原理 的文章

 

随机推荐