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

在默认情况下,每个应用均运行在其独自拥有的Linux进程中,而每个进程拥有一个唯一的Java虚拟机(Dalvik)和一个唯一的Linux用户ID。在Android中,进程还引入了严格的权限机制,在默认情况下,应用的文件仅对应用本身可视。

如果设置两个应用拥有共同的Linux用户ID,应用间将具有互视性,同时会共享Linux进程和Dalvik虚拟机,这在系统资源紧张时,是个不错的节省系统资源的方式。

在Android中,根据进程中运行的组件,以及组件的状态将进程分为5类:前台进程(foreground process)、可视进程(visible process)、服务进程(service process)、后台进程(background process)、空进程(empty process)。在系统运行过程中,如果系统内存不足,Android将会按照进程当前的状态决定哪个进程被杀死。

1)前台进程

当一个进程出现如下场景时,该进程被称为前台进程。场景包括:
    正在运行一个与用户交互的Activity。
    驻留了一个与用户交互的Activity相绑定的服务。
    拥有一个正在执行生命周期调用(onCreate(),onStart()、onDestroy())的服务对象。
    拥有一个正在执行onReceive()方法的广播接收器对象。

2)可视进程

当一个进程没有包含任何前台组件,但对用户视觉有影响时,该进程被称为可视进程。这类进程的典型场景包括弹出窗口隐藏的全屏窗口等。另外驻留了与处于“paused”状态的Activity绑定的服务进程也属于这类进程。

3)服务进程

当进程中驻留了一个服务组件时,该进程称为服务进程,除非系统已经没有足够的内存去运行前台进程和可视进程,否则服务进程将一直在系统中保持运行。这类进程的典型场景如Mp3的后台播放。

4)后台进程

当进程的所有Activity对用户而言均不可见时,对用户体验来说没有直接的影响,这些进程称为后台进程。为了满足更重要的进程的资源需求,后台进程可能会被系统杀死。

5)空进程

当一个进程没有驻留任何激活的应用组件时,该进程称为空进程,这类进程仍存在于系统中的原因是,作为缓冲可以提高进程的下次启动时间。但为了保证系统的正常运行,当系统资源濒临不足时,Android常会选择杀死这类进程。

 更多相关文章

·Android常用组件生命周期
·Android Resources资源
·Android Data Storage
·Android Content Providers
·Android App Widgets开发