題:
Android和iPhone實現的應用程序多任務處理之間的主要區別是什麼?
rchern
2010-07-15 00:19:32 UTC
view on stackexchange narkive permalink

Android和iPhone在應用程序級別上實現多任務處理的主要區別是什麼?

(請不要將其轉變為主觀的狂熱爭論嗎?)

三 答案:
#1
+6
user28
2010-07-15 00:54:55 UTC
view on stackexchange narkive permalink

這不是您問題的答案,但有必要澄清一下,兩個操作系統都是完全多任務的[1](因為它們可以並且可以運行多個進程)。

您的問題顯然是關於應用程序級別的多任務處理(“我可以在使用另一個應用程序時讓一個應用程序運行嗎?”),這是該術語的一個相對較新的用法,即使它確實有一些明顯的例子,也不一定總是定義明確(例如在閱讀電子郵件時收聽Pandora)。具體來說,只要保存或恢復其狀態,許多應用程序就無需在後台運行即可向用戶展示自己,就好像它們從未停止運行一樣。必須執行定期操作(例如檢查郵件或彈出警報)的應用程序也不需要在後台連續運行;它們可以偶爾由操作系統調用。最大的問題通常是Pandora等在後台需要恆定CPU的應用程序。 。但是它們正在融合,因為蘋果公司允許Pandora之類的應用在後台運行,而Android提供了更豐富的工具來阻止輪詢或保存狀態足夠時不必要的後台任務。

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

好點子。我將編輯我的問題。
#2
+3
Tom Wright
2010-07-15 00:26:36 UTC
view on stackexchange narkive permalink

據我所知。

iPhone多任務處理受到更多限制。多任務活動必須是以下一項:

  • 背景音頻
  • VoIP
  • 背景位置
  • 推送通知
  • 本地通知
  • 任務完成
  • 快速應用切換

[感謝 Gizmodo!]

Android允許以與PC相似的方式進行真正的多任務處理。

在被指控為Android fanboi之前,讓我先解釋一下。 iPhone多任務處理模型在大多數情況下已綽綽有餘,並且避免了Android系統隨附的許多問題(即內存不足)。

真正的多任務處理?我認為WebOS或Symbian人士不會同意...
#3
+2
ClashTheBunny
2010-07-15 01:19:06 UTC
view on stackexchange narkive permalink

Android與PC具有不同的應用程序級多任務處理概念。數據之間,如何查看數據以及如何對數據進行操作之間存在更多的脫節。

您一次只能打開一個應用程序視圖,但可以對數據進行操作在後台進行。這使應用程序開發人員在切換應用程序,退出應用程序和啟動新應用程序時很難像桌面一樣。有時感覺無法殺死一個應用程序,但有時又感覺不可能切換到一項任務再返回。這取決於應用程序開發人員的操作方式。

您可以同時運行多個後台進程,它們的調度時間與桌面應用程序一樣。 Linux內核將選擇如何確定哪些優先級獲得內存和CPU資源。當手機確定其內存不足時,它將開始殺死東西以騰出更多內存。這樣做與Linux或大多數其他操作系統通常的行為方式不同。

程序數據始終可用。只要該應用程序有權訪問數據,它就可用。您不需要在後台運行的服務即可使用。

Apple有非常具體的方式來執行多任務。它們是Android允許方式的子集。只能在後台運行特定類型的應用程序,並且必須對其進行專門編程才能這樣做。每個應用程序的視圖,數據和數據處理邏輯通常被鎖定在一起。我想說WebOS,Symbian和Maemo / Meego是移動設備上的示例。如果某個應用程序確實將其數據和後台處理公開給其他“視圖”,那麼它將傾向於是一個非常特殊的應用程序。

據記錄,Linux在其所有化身中都有一個OOM Killer,而不是特定於Android的。但是,在PC上,您必須先消耗掉交換空間以及物理RAM,然後才能開始殺死事物。
並非如此,請參閱:http://wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget#s-3.1.5Android並不是真正的Linux的難點之一,因為它需要將此補丁修補到內核中才能運行。嘗試在常規內核上運行Dalvik,這將阻止您繼續操作。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 2.0許可。
Loading...