您的位置:华清远见教育科技集团 >> Android资料 >> Android进程与生命周期  
 
Android进程与生命周期
分享到:

在Android中,多数情况下每个程序都是在各自独立的Linux进程中运行的。当一个程序或其某些部分被请求时,它的进程就“出生”了;当这个程序没有必要再运行下去且系统需要回收这个进程的内存用于其他程序时,这个进程就“死亡”了。可以看出,Android程序的生命周期是由系统控制而非程序自身直接控制。这和编写桌面应用程序时的思维有一些不同,一个桌面应用程序的进程也是在其他进程或用户请求时被创建,但是往往是在程序自身收到关闭请求后执行一个特定的动作(如从main方法中 return)而导致进程结束的。

简而言之,程序的生命周期是在Android系统中进程从启动到终止的所有阶段,也就是Android程序启动到停止的全过程,程序的生命周期是由Android系统进行调度和控制的。

但是,一个不容忽视的问题就是,手机的内存是有限的,随着打开的应用程序数量的增多,随之而来的可能会是应用程序响应时间过长或者系统假死的糟糕情况。所以,若将Android应用程序生命周期交由系统处理的话,那么在系统内存不足的情况下,便由Android系统舍车保帅,选择性地来终止一些重要性较次的应用程序,以便回收内存供更重要的应用程序使用。

那么,系统是根据一个什么样的重要性标准来终止Android应用程序的呢?Android根据应用程序的组件及组件当前运行状态将所有的进程按重要性程度从高到低划分了五个优先级:前台进程、可见进程、服务进程、后台进程、空进程。以下就按优先级由高到低的顺序介绍Android系统中的进程。(推荐阅读:Android进程的生命周期

1.前台进程

前台进程是显示在屏幕前端并与用户正在交互的进程,是Android系统中重要的进程,包含以下4种情况。
    ●进程中的Activity正在与用户进行交互。
    ●进程服务被Activity调用,而且这个Activity正在与用户进行交互。
    ●进程服务正在执行声明周期中的回调方法,如onCreate()、onStart()或onDestroy()
    ●进程的BroadcastReceiver正在执行onReceive()方法。

Android系统在多个前台进程同时运行时,可能会出现资源不足的情况,此时会清除部分前台进程,保证主要的用户界面能够及时响应。

2.可见进程

可见进程指部分程序界面能够被用户看见,却不在前台与用户交互,不响应界面事件(其onPause()方法已被调用)的进程。如果一个进程包含服务,且这个服务正在被用户可见的Activity调用,此进程同样被视为可见进程。

Android系统一般存在少量的可见进程,只有在特殊的情况下,Android系统才会为保证前台进程的资源而清除可见进程。

3.服务进程

服务进程是指包含由startService()方法启动服务的进程。它有以下特性:没有用户界面;在后台长期运行。例如,后台MP3播放器或后台上传下载数据的网络服务。

Android系统除非不能保证前台进程或可见进程所必要的资源,否则不强行清除服务进程。

4.后台进程

后台进程是指不包含任何已经启动的服务,而且没有任何用户可见的Activity的进程。这些进程不直接影响用户的体验。

Android系统中一般存在数量较多的后台进程,因此这些进程会被保存在一个列表中,以保证在系统资源紧张时,系统将优先清除用户较长时间没有见到的后台进程。

5.空进程

空进程是不包含任何活跃组件的进程。一般保留这些进程,是为了将其作为一个缓存,在它所属的应用组件下一次需要时,缩短启动的时间。

空进程在系统资源紧张时会被首先清除,但为了提高Android系统应用程序的启动速度,Android系统会将空进程保存在系统内存中,在用户重新启动该程序时,空进程会被重新使用。

 更多相关文章

·Java中new的用法
·Java Synchronized同步关键字的用法
·Android Map类的使用方法
·Abstract class和Interface的使用
·Android Interface的使用