» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[其他] 有没有高手从技术角度解释下ios的后台机制?

ios肯定是伪后台这点我已经没有疑问,只是不太明白为什么相较于安卓这个伪后台的智能化非常易用
我记得ios是从4.0之后就开始有任务管理器的操作,双击home看着一大串程序在列,真正在运行的只有一到两个
问题是为什么这个系统能够自动删除暂时所不需要的程序,自动释放内存 从而保证当前的程序绝对稳定的运行
而且更智能的是,他不是从最后面的闲置程序关闭,而是有选择性的 挂qq或者电话本没关,这两者任何时候都常驻后台

感觉好像不是一个很复杂的功能,可是安卓到现在为什么都没实现呢 第三方管理内存软件其实也不禁人意
安卓开多了程序,ram大的情况还好点,但即使这样 你就算同时双开两个大型游戏,一样会感到卡
而且一个常驻内存程序随着时间的增加,占用的ram越来越多。。。
我就觉得既然这样,为什么不设置一个单程序内存上限,保证当前程序帧数稳定
像这样真后台但是互相排挤的情况,也没多大意义吧

有没有大大解释下这种后台机制的原理在哪?同时问下候机有没有这种自动释放内存软件,而不是通过点一个程序进去再按几次这种繁琐的步骤
因为有时候开启优化软件的同时,安卓就可能已经因为ram占满死机了。


本帖最近评分记录
  • FFCLOUD 激骚 +1 最骚 Rated by wap for mark 2012-9-12 09:47
  • 夏斯沃勒 激骚 +1 最骚 Rated by wap for mark 2012-9-11 08:23

TOP

iOS的机制就是只要按了home键,程序就暂停了,没有在运行。你所说的QQ,其实按home以后也停止运行了。为什么你还能不断看到QQ聊天内容,那是因为苹果的推送服务器在帮你挂机并即时推送QQ消息到你的手机,你的手机并不需要自己运行QQ软件。



本帖最近评分记录
  • hhhiro 激骚 +1 最骚 Rated by wap 2012-9-10 15:17

TOP

7大API不会关闭(发布会有说)

每个关闭后的程序会释放除了7个API之外的内存和资源,,但保留一个"记号"存档(可以理解为游戏里的即时存档)

然后再次运行关闭的程序就有一个"读档"操作,返回原来的关闭前的状态!


TOP

QQ也被挂起了,当你切回QQ时候,你可以看到右上角会显示重新连接,而你能单独收到别人发给你消息是因为使用了推送的机制,至于自动释放内存,这其实和ios的app开发者有关,因为ios内存有限,所以开发者在代码里需要时刻加上释放内存的代码,当然ios也会自己优先释放挂起的程序所占内存给当前程序使用

TOP

引用:
原帖由 小文 于 2012-9-10 14:44 发表
iOS的机制就是只要按了home键,程序就暂停了,没有在运行。你所说的QQ,其实按home以后也停止运行了。为什么你还能不断看到QQ聊天内容,那是因为苹果的推送服务器在帮你挂机并即时推送QQ消息到你的手机,你的手机并不 ...
你的意思是不是ios有个类似暂停的机制,比如开了两个游戏,其中一个在后台暂停?类似进入休眠,不占用内存cpu?
我是觉得ios切换不同的程序时候,切换的一瞬间进入ui有点卡,进去就完全ok了
是不是临时调用资源的那时候卡了一下而已

TOP

引用:
原帖由 hypergiant 于 2012-9-10 14:47 发表
7大API不会关闭(发布会有说)

每个关闭后的程序会释放除了7个API之外的内存和资源,,但保留一个"记号"存档(可以理解为游戏里的即时存档)

然后再次运行关闭的程序就有一个"读档"操作,返回原来的关闭前的状态!
候机4.0有没有类似的机制?或者有没有软件能达到一样的目的
我时常觉得ram还是不够用啊

TOP

posted by wap, platform: iPhone

水果并没有真正意义上的后台程序,只有暂时挂起的,这些挂起的程序不会自动响应,像微信QQ这种纯靠服务器推送。所以假设推送服务器来个三长两短,那水果就真的是单任务机了。
候机的解决方式比较笨,直接后台。这种简单粗暴,但是对硬件要求更高,也更耗电。
各有所长,从目前情况来看,推送方案占优势

TOP

引用:
原帖由 三无 于 2012-9-10 14:52 发表

候机4.0有没有类似的机制?或者有没有软件能达到一样的目的
我时常觉得ram还是不够用啊
猴机没有!
越用越卡!越用越费电!

TOP

iOS从4.0开始支持了多任务,但也不是一般人理解中的多任务,OS4的多任务非常克制,对资源做了严格的限制。

允许真的常驻后台的只有几种特例:
1、后台音频:允许软件在后台连续播放音乐,用户可以一边用软件听音乐一边上网、玩游戏(现在的QQ音乐、豆瓣FM都在使用这种方式)

2、网络电话:用户可以在使用其它App的同时接收网络电话呼叫并通话,即便手机在口袋中处于锁定状态也可以接收网络电话的呼叫。(Skype使用这种后台模式)

3、后台位置:导航软件现在可以在用户聆听音乐和使用别的软件时继续提供导航服务。OS4也提供了一种新的位置报告机制,仅当用户移动并切换基站时才报告新的位置,这非常省电,很多社交网络软件因此而可以持续了解用户的位置。导航软件运行时标题栏会显示小箭头表示定位服务在后台工作。

4、服务器推送提醒:应用程序即便不在运行中也可以接收从远程服务器发起的推送提醒

5、本地提醒:软件可以在离线的状态下设定事件来提醒用户。(类似一个系统级的闹钟,很多种菜游戏使用这个模式)

除了这几种特例,基本上你可以认为按了home键app就被暂停并保留现场,当你再次进入app时从内存或磁盘恢复现场继续运行。也有部分app基于各种考量选择不保留现场每次都重新开始,这是开发者自己的选择。

TOP

引用:
原帖由 三无 于 2012-9-10 14:49 发表

你的意思是不是ios有个类似暂停的机制,比如开了两个游戏,其中一个在后台暂停?类似进入休眠,不占用内存cpu?
我是觉得ios切换不同的程序时候,切换的一瞬间进入ui有点卡,进去就完全ok了
是不是临时调用资源的 ...
正如我上面所写,按了home键,游戏就立刻暂停,并保留现场,如果内存够用,那么现场保留在内存里,如果内存用尽,那么现场保留在内部存储空间里。切换的一瞬间有点卡是正常的,说明这个瞬间系统在帮你恢复现场,如果很快,那是从内存直接恢复,有时有点慢,那是从存储空间恢复。其实这一切你不用关心,都是系统自动做的。

TOP

不过这机制的弊病还是有的,对于特定软件来说,比如需要用到下载的软件,就无法在你切出去的时候继续下载了以及一些其他的需要可持续性任务处理的软件

TOP

引用:
原帖由 小文 于 2012-9-10 14:54 发表
iOS从4.0开始支持了多任务,但也不是一般人理解中的多任务,OS4的多任务非常克制,对资源做了严格的限制。

允许真的常驻后台的只有几种特例:
1、后台音频:允许软件在后台连续播放音乐,用户可以一边用软件听音 ...
但是有些非推送的程序也可以切换没问题啊
比如粉鸟和植物打僵尸可以来回切换没问题,但是无尽之剑和丁丁历险记就不行了?
还有更特殊的情况,比如播放器虽然关闭了再打开之后一样回到上次暂停的画面 (不是播放器自带的功能)
难道说这种后台机制还可以自动检测多个程序的内存占用关系么

TOP

posted by wap, platform: Android

这种为机能不足妥协的“多任务”方式生命周期令人堪忧,手机硬件发展太快了,猴机年底都要变成2G标配,怎么玩都够了,根本不用这种取巧的方式。

而这种取巧的方式问题在于,就算你硬件足够了,它的软件还是必须走这一套,明年底4G的猴估计都要标配了,iOS要是还这么玩前途堪忧

TOP

这个视频基本讲全了ios4的多任务
ios5多任务更丰富,比4增加了些功能

PS:猴机没那个技术,还真做不出来苹果的"多任务",把电脑的多任务惯性思维整到手机上了,电脑可以24小时插电,手机怎么办?难道装个和电池?
[flash=512,384]http://player.youku.com/player.php/sid/XMTk5NDc3MjI4/v.swf[/flash]

[ 本帖最后由 hypergiant 于 2012-9-10 15:08 编辑 ]

TOP

引用:
原帖由 黑暗骑士巫妖王 于 2012-9-10 15:01 发表
posted by wap, platform: Android

这种为机能不足妥协的“多任务”方式生命周期令人堪忧,手机硬件发展太快了,猴机年底都要变成2G标配,怎么玩都够了,根本不用这种取巧的方式。

而这种取巧的方式问题在于,就 ...
也不能这么说吧 即使是windows 开几十个浏览网页浏览器也一样崩溃,内存小点说不定系统就挂了
手机很多人一周24小时不关机的,如果没有定期清理的习惯,不说死机,系统也会越来越慢吧

我是觉得后台自动杀程序没什么不好,只是可以设置多大的ram上限问题

TOP

发新话题
     
官方公众号及微博