Android和iPhone实现的应用程序多任务处理之间的主要区别是什么?


9

Android和iPhone在应用程序级别的多任务实现之间的主要区别是什么?

(请不要把它变成一个主观的狂热争论吗?)

Answers:


6

这不是您问题的答案,但是有必要澄清一下,两个操作系统都是完全多任务处理的[1](因为它们可以并且确实运行多个进程)。

您的问题显然是关于应用程序级多任务处理的(“我可以在使用另一个应用程序时让一个应用程序运行吗?”),这是该术语的一个相对较新的用法,即使定义确实很明显,也不一定总是定义明确的示例(例如在阅读电子邮件时收听Pandora)。具体来说,只要保存或恢复其状态,许多应用程序就无需在后台运行即可向用户展示自己,就好像它们从未停止运行一样。必须执行定期操作(例如检查邮件或弹出警报)的应用程序也不需要在后台连续运行;它们可以偶尔由操作系统调用。最大的问题通常是在后台运行时需要恒定CPU的应用程序,例如Pandora。

总的来说,苹果公司为阻止或阻止连续运行的后台应用程序付出了更大的努力,而Android似乎对此更加开放。但是它们正在融合,因为苹果公司允许Pandora之类的应用程序在后台运行,而Android提供了更丰富的工具,可以在轮询或保存状态足够时阻止不必要的后台任务。

[1] http://en.wikipedia.org/wiki/Computer_multitasking


1
好点子。我将编辑我的问题。

3

据我所知。

iPhone多任务处理受到更多限制。多任务活动必须是以下之一:

  • 背景音频
  • 网络电话
  • 背景位置
  • 推送通知
  • 本地通知
  • 任务完成
  • 快速的应用切换

[感谢Gizmodo!]

另一方面,Android允许以与PC类似的方式实现真正的多任务处理。

在被指控为Android fanboi之前,请先解释一下。iPhone多任务处理模型在大多数情况下已绰绰有余,并且避免了Android系统随附的许多问题(即内存不足)。


真正的多任务处理?我不认为WebOS或Symbian人士会同意...
Ivo Flipse'7

2

Android具有与PC不同的应用程序级多任务处理概念。数据,如何查看数据以及如何对数据进行操作之间还有更多的脱节之处。

一次只能打开一个应用程序视图,但是对数据的操作可以在后台进行。这使应用程序开发人员在切换应用程序,退出应用程序和启动新应用程序时很难像桌面一样。有时感觉无法杀死一个应用程序,但有时又感觉像不可能切换到一项任务再返回。这取决于应用程序开发人员的操作方式。

您可以一次运行多个后台进程,它们的调度时间与桌面应用程序一样。Linux内核将选择如何确定哪些优先级获得内存和CPU资源。当手机确定其内存不足时,它将开始杀死东西以腾出更多内存。这与Linux或大多数其他OS正常行为的方式不同。

程序的数据始终可用。只要该应用程序有权访问数据,它就可以使用。您不需要在后台运行的服务即可使用。

Apple有非常具体的方式来执行多任务。它们是Android允许方式的子集。只有特定类型的应用可以在后台运行,并且必须对其进行专门编程才能运行。

台式机与这两种方式都非常不同。每个应用程序的视图,数据和数据处理逻辑通常被锁定在一起。我想说WebOS,Symbian和Maemo / Meego是移动设备上的示例。如果某个应用程序确实将其数据和后台处理公开给其他“视图”,那么它将倾向于是一个非常特殊的应用程序。


据记录,Linux在其所有化身中都有一个OOM Killer,而不是特定于Android的。但是,在PC上,您必须先消耗掉交换空间以及物理RAM,然后才能开始杀死事物。

并非如此,请参阅:wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget#s-3.1.5 关于Android并不是真正的Linux的难点之一,因为它需要将此补丁修补到内核中才能运行。尝试在常规内核上运行Dalvik,这将阻止您继续操作。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.