Android五个进程等级
1、前台进程(Foreground process):
用户当前工作所需要的。一个进程如果满足下列任何条件被认为是前台进程:
正运行着一个正在与用户交互的活动(Activity对象的onResume()方法已经被调用)。
寄宿了一个服务,该服务与一个与用户交互的活动绑定。
有一个Service对象执行它的生命周期回调(onCreate()、onStart()、onDestroy())。
有一个BroadcastReceiver对象执行他的onReceive()方法。
在给定时间内仅有少数的前台进程存在。仅作为最后采取的措施他们才会被杀掉——如果内存太低以至于他们不能继续运行。
2、可视进程(Visible process):
没有任何前台组件,但是仍然能影响用户在屏幕上看到东西。一个进程满足下面任何一个条件都被认为是可视的:
寄宿着一个不是前台的活动,但是它对用户仍可见(它的onPause()方法已经被调用)。举例来说,这可能发生在,如果一个前台活动在一个对话框(其他进程的)运行之后仍然是可视的,比如输入法的弹出时。
寄宿着一个服务,该服务绑定到一个可视的活动。
一个可视进程被认为是及其重要的且不会被杀死,除非为了保持前台进程运行。
3、服务进程(Service process):是一个运行着一个用startService()方法启动的服务,并且该服务并没有落入上面2种分类。虽然服务进程没有直接关系到任何用户可见的,它们通常做用户关心的事(诸如在后台播放mp3或者从网络上下载数据),因此系统保持它们运行,除非没有足够内存来保证所有的前台进程和可视进程。
4、后台进程(Background process):是一个保持着一个当前对用户不可视的活动(已经调用Activity对象的onStop()方法)(如果还有除了UI线程外其他线程在运行话,不受影响)。这些进程没有直接影响用户体验,并且可以在任何时候被杀以收回内存用于一个前台、可视、服务进程。一般地有很多后台进程运行着,因此它们保持在一个LRU(least recently used,即最近最少使用,如果您学过操作系统的话会觉得它很熟悉,跟内存的页面置换算法LRU一样。)列表以确保最近使用最多的活动的进程最后被杀。
5、空进程(Empty process):是一个没有保持活跃的应用程序组件的进程。保持这个进程可用的唯一原因是作为一个cache以提高下次启动组件的速度。系统进程杀死这些进程,以在进程cache和潜在的内核cache之间平衡整个系统资源。
一个进程的排名因为其他进程依赖它而上升。一个进程服务其它进程,它的排名从不会比它服务的进程低。例如,进程A中的一个内容提供者服务进程B中的一个客户,或者进程A中的一个服务绑定到进程B中的一个组件,进程A总是被认为比进程B重要。
因为一个服务进程排名比后台活动的进程排名高,一个活动启动一个服务来初始化一个长时间运行操作,而不是简单地衍生一个线程——特别是如果操作很可能会拖垮活动(例如出现ANR)。这方面的例子是在后台播放音乐和上传相机拍摄的图片到一个网站。使用服务保证操作至少有“服务进程”的优先级,无论活动发生什么情况。
本文来自:http://www.cnblogs.com/Rooty 转载请注明出处,谢谢合作。
分享到:
相关推荐
总的来说,"深入浅出MFC"的学习资源可以帮助开发者从基础到高级全面了解MFC,通过实例和笔记加深理解,从而更高效地开发Windows应用程序。无论是初学者还是有一定经验的程序员,都能从中受益,提升自己的MFC编程能力...
深入浅出MFC读书笔记3 在MFC中,Document-View架构是一个非常重要的概念。本文将对Document-View架构中的关键组件进行深入探讨,并对其实现思路进行详细的解析。 首先,让我们来看一下Document的概念。在MFC中,...
深入浅出MySQL学习笔记
《深入浅出DPDK》读书笔记 本书读书笔记涵盖了 DPDK 的基本概念、网络编程、虚拟化和 NFV 等方面的知识点。下面是对标题和描述中所说的知识点的详细说明: 1. 传统网卡驱动程序的工作方式:在 Linux 内核中,网卡...
Java深入浅出(笔记 面试题 工作经验)java深入浅出适合刚入门的人
"Android学习笔记" Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中...
深入浅出MFC读书笔记2是对MFC框架的进一步学习和理解,主要涵盖了MFC的基础概念、类库结构以及程序构建的关键要素。MFC(Microsoft Foundation Classes)是微软为Windows平台开发的应用程序提供的一种类库,它基于...
最详细!! 最简单!!! 最通俗易懂的mysql数据库的学习笔记, 零基础新手小白必备, 少走弯路
总之,《深入浅出Hibernate》读书笔记涵盖了实体对象生命周期的转换、实体对象的识别机制以及Hibernate的多级缓存策略,这些都是理解并有效使用Hibernate的关键点。通过深入学习这些概念,开发者能够更好地掌握...
MFC 是 Windows 程序设计的基础,深入浅出 MFC 是学习 Windows 程序设计的不二之选。 《深入浅出MFC》读书心得涵盖了 Windows 程序设计的方方面面,包括程序结构、头文件、makefile、消息循环等知识点,为开发者...
《深入浅出MFC》读书笔记1主要涵盖了MFC(Microsoft Foundation Classes)的基础知识...总的来说,《深入浅出MFC》读书笔记1为读者揭示了Win32程序的基本构造和MFC框架的初步概念,为后续深入学习MFC打下了坚实的基础。
深入浅出Kubernetes项目实战手册 [阿里云开发者社区].pdf.zip
Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...
### Android开发学习笔记 #### Button按钮的实现与交互 在Android开发中,`Button`控件是最常用的用户界面元素之一,用于触发特定的操作或事件。本文档将详细讲解如何创建并自定义一个简单的按钮,并设置点击事件...
本“STM32深入浅出-STM学习笔记”旨在简化STM32的入门过程,为初学者提供一种简洁易懂的教程。 首先,选择STM32的原因在于其在功能性和面积之间的平衡。对于许多项目,尤其是那些对体积和功耗敏感的场合,STM32的高...
【Android学习笔记详解】 在移动应用开发领域,Android操作系统占据着重要的地位,为开发者提供了丰富的平台和无限的可能性。"Android很好的学习笔记"是一份专为初学者设计的资源,旨在帮助那些想要踏入Android开发...
《深入浅出Android》是一个全面且深度探讨Android开发的资源集合,包含了视频教程和作者的学习笔记,旨在帮助初学者和有经验的开发者更好地理解和掌握Android系统的工作原理以及开发技巧。这个压缩包可能包括了多个...
### OpenWRT与LEDE深入学习笔记v2.0概览 #### 一、基础知识介绍 根据提供的部分内容,本文档主要介绍了如何安装OpenWRT与LEDE系统的编译环境,并详细记录了从GitHub下载源码的过程及后续的操作步骤。下面我们将...
关于python的系统学习笔记,深入浅出
在阅读《Spring-Boot深入浅出》这本书时,结合1.txt中可能包含的笔记或注释,将有助于深化理解,提升实践技能。此外,实际动手操作,创建自己的Spring Boot项目并逐步实现书中提到的功能,是巩固知识的最佳方式。...