以下列表按重要性顺序列出了不同类型的进程(第一个进程最重要,最后被终止):
- 前台进程
- 看得见的过程
- 服务流程
- 后台进程
- 空进程
Note:Android 根据进程中当前活动组件的重要性对进程进行最高级别的排名。例如,如果某个进程托管服务和可见活动,则该进程将被列为可见进程,而不是服务进程。
这是从这里引用的进程和线程 http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html
EDIT:
了解应用程序优先级和进程状态
终止进程以回收资源的顺序由托管应用程序的优先级决定。应用程序的优先级等于其最高优先级的组件。
如果两个应用程序具有相同的优先级,则优先级较低的进程将首先被终止。进程优先级还受到进程间依赖关系的影响;如果应用程序依赖于第二个应用程序提供的服务或内容提供商,则第二个应用程序将至少具有与其支持的应用程序一样高的优先级。
所有 Android 应用程序都将保持运行并保留在内存中,直到系统需要其资源来供其他应用程序使用。
正确构建应用程序以确保其优先级适合其正在执行的工作非常重要。如果不这样做,您的应用程序可能会在执行重要操作时被终止。
下面的列表详细介绍了图 1 中所示的每个应用程序状态,解释了状态是如何由组成它的应用程序组件确定的:
活动进程活动(前台)进程是那些托管应用程序的进程,其组件当前正在与用户交互。这些是 Android 尝试通过回收资源来保持响应的进程。这些进程一般很少,只有在万不得已的情况下才会被杀死。
活跃的进程包括:
1.活动处于“活跃”状态;也就是说,它们位于前台并响应用户事件。您将在本章后面更详细地探讨活动状态。
2.当前正在执行 onReceive 事件处理程序的活动、服务或广播接收器。
3. 正在执行 onStart、onCreate 或 onDestroy 事件处理程序的服务。
看得见的流程可见但不活动的进程是那些托管“可见”活动的进程。顾名思义,可见 Activity 是可见的,但它们不在前台或响应用户事件。当 Activity 仅部分被遮挡(被非全屏或透明 Activity)时,就会发生这种情况。通常可见进程很少,只有在极端情况下才会被杀死,以允许活动进程继续运行。
启动服务流程托管已启动服务的进程。服务支持正在进行的处理,这些处理应该在没有可见界面的情况下继续进行。由于服务不直接与用户交互,因此它们的优先级略低于可见活动。它们仍然被认为是前台进程,并且不会被杀死,除非活动或可见进程需要资源。
后台进程托管不可见且没有任何已启动服务的 Activity 的进程被视为后台进程。通常会有大量的后台进程,Android 会使用最后看到的最先杀死的模式来杀死这些进程,以便为前台进程获取资源。
空进程为了提高整体系统性能,Android 通常会在应用程序生命周期结束后将其保留在内存中。 Android 维护此缓存是为了缩短应用程序重新启动时的启动时间。这些进程通常会根据需要终止。
欲了解更多信息,请看这里(我在这个博客上找到)Android 中的内存管理 http://mobworld.wordpress.com/2010/07/05/memory-management-in-android/
EDIT:
I think Android is basic Linux so, whatever scheduler works for Linux is same in Android.
Android调度器和Linux调度器的区别
调度程序 — 5 个文件 — Android 内核还包含对 CPU 进程调度程序和计时算法的细微更改。我们不知道这些变化的历史,根据粗略的检查,其影响并不明显。
进程抢占:
如前所述,Linux 操作系统是抢占式的。当进程进入TASK_RUNNING状态时,内核检查其优先级是否高于当前正在执行的进程的优先级。如果是,则调用调度程序来选择要运行的新进程(可能是刚刚变得可运行的进程)。此外,当进程的时间片达到零时,它会被抢占,并调用调度程序来选择新进程。
实际的调度策略
考虑一个具有两个可运行任务的系统:文本编辑器和视频编码器。文本编辑器是 I/O 密集型的,因为它几乎所有的时间都在等待用户按键(无论用户输入的速度有多快,它都没有那么快)。尽管如此,当它确实收到按键时,用户希望编辑器立即响应。相反,视频编码器受处理器限制。除了从磁盘读取原始数据流并随后写入生成的视频之外,编码器还花费所有时间将视频编解码器应用于原始数据。它对运行时间没有任何严格的时间限制——用户无法判断它是现在开始运行还是半秒后开始运行。当然,越早完成越好。
在该系统中,调度程序为文本编辑器提供比视频编码器更高的优先级和更大的时间片,因为文本编辑器是交互式的。文本编辑器有大量可用的时间片。此外,由于文本编辑器具有更高的优先级,因此它能够在需要时抢占视频编码器。这确保文本编辑器能够立即响应用户按键。这对视频编码器是不利的,但由于文本编辑器只是间歇性地运行,视频编码器可以独占剩余时间。这优化了两个应用程序的性能。