應該說, Android中, 表面上看似概念林立, 其實大多仍然是傳統概念 . 好比:進程, Application, Thread, Activity等等. 惟獨 Task是個"外來者". android
Android的運行機制基本上是這樣的: 全部的程序由進程承載, 像在其它全部系統上同樣. 而Application就是這裏所謂的"程序", Thread就是這裏面所謂的線程. 其實很懷疑Android沒有對Thread的任何管理, 只是任由其自生自滅. 若是是這樣的話, 那麼Android所作的所有就是在OS上創建了一個Activity與Task的框架. 而由於Activity又是跟着Application存活在同一個進程中的, 也就是說, 在Android中, 其實真正存在的只有兩個東西: 進程與Task. 一個是橫向的劃分一個是縱向的劃分.而全部其它如Application, Thread, Activity等等, 其實所有都是活在進程當中的. 而Task能接受的卻只有一個東西那就是Activity. 因此說, Task是個外來者. 它雖然與Activity共同構成Android系統中的新概念, 但其因爲其顯然遊離於其它全部元素以外因此變成一個門外漢. 編程
Android設計Task的緣由應該只是爲了體驗. 或者說, Android在一種以Application爲組織單元及基本概念的傳統底層架構上實現了一個極其富有用戶價值主義色彩的上層編程/用戶界面. 架構
從這個角度看, Activity能夠被視爲一種用戶體驗劃分, 也能夠被視爲一種任務重構. 由於普通的傳統的"任務"觀就是一個進程就是一個任務, 任務即進程而進程即任務, 二者是嚴格一對一的. 任務被Encoded在程序中, 而程序跑在進程中, 因此一切任務都在進程中. 所以才說android擁有一個很是優秀的設計思想: 它是第一個把任務與進程實施了分離的OS. 雖然它仍然沒有完全解決任務模型的問題或者說甚至沒有對它進行真正的抽象(與系統分離而不僅是與進程分離由於進程仍然屬於系統這個範疇, 仍然是機器指令), 但即便是這仍然構成很是巨大的進步(在一個演繹型即馮諾依曼型系統上). 框架