应该说, Android中, 表面上看似概念林立, 其实大多仍然是传统概念 . 比如:进程, Application, Thread, Activity等等. 唯独 Task是个"外来者".

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

更多相关文章

  1. 浅析android通过jni控制service服务程序的简易流程
  2. Android(安卓)之 AsyncTask 异步任务
  3. Android(安卓)任务和回退堆栈---启动任务
  4. 2011年Android(安卓)Camera学习笔记之一
  5. [置顶] Android(安卓)跨进程通信Aidl的使用及注意事项
  6. Android执行shell命令
  7. Android(安卓)后台任务(五)Service
  8. Windows环境下Android(安卓)Studio系列4—界面介绍
  9. android获取正在运行的进程

随机推荐

  1. Android Studio:常见使用问题处理
  2. MediaScanner与音乐信息扫描==
  3. 打开app弹出欢迎界面,然后自动跳转到主界
  4. 清除手机图案解锁(执行adb命令工具类)
  5. Android 中主Activity和任一Activity进行
  6. 将Android(安卓)Activity设置成对话框式
  7. android中System.exit(0)和System.exit(1
  8. 《Android开发从零开始》——43.Menu使用
  9. android如何阻止app_name在标题栏中闪现
  10. Android ImageLoader使用