手机 频道

iPhone多任务工作管理机制揭秘

  【IT168 技术】iOS系统在iOS4开始加入了多任务后台功能,连按两下Home键呼出后台,然后就可以在之前打开的程序中切换,但是围绕这一设计的争议始终阴魂不散。现在我们再通过一片开发者的文章来详细了解一下iOS多任务工作原理。

iPhone多任务工作管理机制揭秘(一)

  九成的程序不会在后台运行

  事实上你根本就不需要管理 iOS 的多任务后台,因为你所看到留在后台当中的程序并非真正的在运行,其实多任务后台并不是实质上的任务管理器,更确切的说,更像是类似浏览器历史记录的东西,只不过专门针对程序的记录而已。

  总体来讲多任务后台只是一个让用户可以在最近打开的程序中做切换的一个工具而已,对以上理论最好的证明就是当你重启你的iPhone后,在多任务后台中还是会显示所有你最近开启过的程序,显然他们不可能在运行。所以当你按Home键离开程序后,你根本不需要再去管多任务后台的东西,因为有90%的程序都会在你按Home键离开程序后停止运作,已经停止运作的程序又要如何消耗更多的电量以及系统资源呢?

  Speirs 描述了iOS是如何在后台处理程序的:

  •   关闭 - 这个程序以彻底关闭或尚未被开启
  •   待用 - 程序处于开启状态,但是并未收到任何指令(例如:程序开启但用户锁定了机器)
  •   使用中 - 正常使用中的程序
  •   后台 - 程序不在开启状态但仍然在后台运行代码
  •   暂停 - 程序仍然在使用内存但并未运行代码

  程序在关闭后只有5秒的处理时间

  技术上来讲,所有的程续在按Home键后只有5秒钟的后台时间,iOS在将这些程序变为暂停状态前给予它们一个非常有限的时间来清除所需清除的内容,之后程序变会被保留在记忆体中以便可以快速的开启它。

  特殊需求的程序可以达到10分钟

  另外,当程序有特殊需求在后台运行更久而并非5秒钟时,Speirs 使用了 Instacast 做为例子对其进行了讲解,当 Instacast 正在后台下载 podcasts 时它会告诉iOS系统它正在下载东西,这样使得iOS系统给于其多10分钟的时间而并非5秒钟的时间,一但10分钟时限到达后 Instacast 将会被强制切换至暂停模式。

  当然还有相当一部分的程序是长期在后台工作的,如邮件、音乐、GPS、Voip、电子报等。这些程序都会一直在后台运行直至它完成它本身的任务。

${PageNumber}

  邮件是最耗电、最占资源的程序

  就个人经验之谈,邮件程序是整个iOS系统中消耗最多电量以及系统资源的程序,因为邮件程序会一直在后台不停的发送接收请求,而每个请求都会消耗电量以及CPU使用量。不幸的是唯一能防止邮件件程序这样做的方法就是不使用时关闭所有的程序,或是更改发送请求的频率。不过相系更改了频率后邮件程序将会失去它真正的意义,因为大部分用户都想在收到信件后马上获得通知。

iPhone多任务工作管理机制揭秘(二)

  上面讲的都是 iOS 内置的程序,现在我们以第三方程序skype为例,早期的skype程序就跟mail程序一样会一直耗费系统资源跟电量,不过经过多次的更新后现在已经可以很好的智能控制自己的运行状态了。

  若你看完这篇文章还在手动管理多任务后台,很明显,你是在浪费你的时间!若苹果商店的"天才"们告诉你们需要手动关闭,麻烦请纠正他们!

  文章来源“苹果核论坛(http://bbs.app111.com/)”,感谢网友“groundblack”推荐的文章,同时欢迎各位网友来论坛交流讨论。

0
相关文章