IOS后台不必关闭!ios系统后台揭秘!请看原理在此

来源:互联网 发布:ios wkwebview js oc 编辑:程序博客网 时间:2024/05/28 09:31

              http://iphone5.blogcn.com/90.html

关于IOS的多任务以及内存管理
看了很多FY为自己的可用内存是350MB还是380MB纠结。为了多优化出一点可用内存费脑筋。
IOS的任务管理和内存管理,跟windows是有很大差别的。很多FY习惯于用 windows的思维去看待IOS。

WIndows大家都知道,窗口开的越多,系统越慢,为什么呢?因为所有窗口都在运行,并且都占内存。可用内存不足还会迫使系统使用硬盘充当虚拟内存,硬盘频繁读写当然会多耗电,并且硬盘速度也比较慢。

IOS 则不同。首先IOS的后台任务,除了极少数可以后台运行之外(比如音乐播放),绝大多数在后台都是挂起的。比如极品飞车,切到后台后马达轰鸣声就没有了, 切换回来后得点“继续”才能继续跑。这类软件让它后台继续运行除了徒增耗电之外,没有任何意义。你总不希望极品飞车在切到后台时赛车还继续横冲直撞吧?
既然软件在后台挂起,当然就不占用CPU,也就不会耗电。

软件在后台挂起,不占CPU,但总该占内存吧?多占内存会不会耗电?会不会拖慢系统 ?
答案仍然是:不会。
IOS 没有为IPA准备虚拟内存。如果前台软件内存不够用,IOS会直接释放后台软件所占用的内存,并不会像windows那样用硬盘虚拟内存(引起耗电增 加)。而释放一块内存很简单,就是把内存块的某个标志由“占用”改为“空闲”即可,内存的内容直接废弃丢掉,不用交换到闪存,速度很快。
可见,我们使用windows的经验不适用于IOS。

释放后台哪个软件的内存也有讲究。
有些后台软件被释放后会有严重后果,比如游戏软件,被释放后软件就结束了,切换回来就等于重新开始,游戏进度丢失。
有些软件则无关紧要。比如电子书软件,保留内存被释放后,软件可以只保留一个书签,切换回来可以重新加载内容,继续阅读。比如sarafi浏览器,所占内存被释放,切换回来无非是页面重新加载,不会引起严重后果。
IOS会优先释放那些对内存不敏感的后台软件。
对于已经切换到后台,既不占CPU并且内存又被释放的软件,事实上软件已经结束了,这样的后台软件更加不可能耗电。双击HOME看到的后台任务列表,大多数是这样的软件。

说了那么多,就是说明:IOS可以任意开软件而不用刻意去结束它。
事实上IOS软件连个退出功能都没有,以至于有的FY抱怨,苹果IOS设计怎么一点都不人性化?要退出一个软件,得双击HOME,再长按下面的图标,图标抖动后再按叉叉,麻烦死了。其实看了前面说的就知道了,IOS的软件根本不需要退出。

其实苹果IOS多任务设计的目的,是让你忘掉多任务的存在,像IOS 3.x的单任务一样使用多任务,想运行哪个软件就运行它,不想运行就直接按HOME,无论后台开多少个软件,都不会拖慢前台软件(这本来嘛,后台都挂起状态不占CPU)。这一点对windows来说是难以想象的,但苹果的确是做到了。
并不是Windows无能,而是因为Windows是用来干活用的,需要全能的多任务,IOS只是一个手机操作系统,侧重点不同。


原创粉丝点击