应该说, 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. 虽然它仍然没有完全解决任务模型的问题或者说甚至没有对它进行真正的抽象(与系统分离而不仅是与进程分离由于进程仍然属于系统这个范畴, 仍然是机器指令), 但即便是这仍然构成很是巨大的进步(在一个演绎型即冯诺依曼型系统上). 框架