发布网友 发布时间:2022-04-21 19:46
共1个回答
热心网友 时间:2023-05-26 16:53
IOS的任务管理和内存管理,跟windows是有很大差别的。很多同学习惯于用 windows的思维去看待IOS。(例如小胡同学,一整就觉得后台开多了,手机变卡了)WIndows大家都知道,窗口开的越多,系统越慢,为什么呢?因为所有窗口都在运行,CPU占用率高;并且都占内存。可用内存不足还会迫使系统使用硬盘充当虚拟内存,硬盘频繁读写当然会多耗电,并且硬盘速度也比较慢。IOS则不同。首先IOS的后台任务,除了极少数可以后台运行之外(比如音乐播放),绝大多数在后台都是挂起的。比如极品飞车,切到后台后马达轰鸣声就没有了,切换回来后得点“继续”才能继续跑。这类软件让它后台继续运行除了徒增耗电之外,没有任何意义。你总不希望极品飞车在切到后台时赛车还继续横冲直撞吧?既然软件在后台挂起,当然就不占用CPU,也就不会耗电。软件在后台挂起,不占CPU,但总该占内存吧?多占内存会不会耗电?会不会拖慢系统?答案仍然是:不会。IOS没有为IPA准备虚拟内存。如果前台软件内存不够用,IOS会直接释放后台软件所占用的内存,并不会像windows那样用硬盘虚拟内存(引起耗电增加)。而释放一块内存很简单,就是把内存块的某个标志由“占用”改为“空闲”即可,内存的内容直接废弃丢掉,不用交换到闪存,速度很快。可见,我们使用windows的经验不适用于IOS。释放后台哪个软件的内存也有讲究。有些后台软件被释放后会有严重后果,比如游戏软件,被释放后软件就结束了,切换回来就等于重新开始,游戏进度丢失。有些软件则无关紧要。比如电子书软件,保留内存被释放后,软件可以只保留一个书签,切换回来可以重新加载内容,继续阅读。比如sarafi浏览器,所占内存被释放,切换回来无非是页面重新加载,不会引起严重后果。IOS会优先释放那些对内存不敏感的后台软件。对于已经切换到后台,既不占CPU并且内存又被释放的软件,事实上软件已经结束了,这样的后台软件更加不可能耗电。双击HOME看到的后台任务列表,大多数是这样的软件。说了那么多,就是说明:IOS可以任意开软件而不用刻意去结束它。事实上IOS软件连个退出功能都没有,以至于有的同学抱怨,苹果IOS设计怎...%D%A