android 进程的优先级
一.前台进程-Active Process
Active(前台)process 包含(与用户交互的)控件的应用程序,这些是android通过回收资源尽力保护的进程。
Active process包括:
1.处于“active”状态的activity,它们运行在前台来响应用户的事件
2.Activity Service或者正在执行onReceive事件处理的函数的BroadCast Receiver
3.正在执行onStart,onCreate,onDestory事件处理函数的Service
二.可见进程-Visible Process
可见但是不活动的进程是那些处于“Visible”状态的进程,“Visible”Activity是那些屏幕上可见,但不是在前台或者不响应用户事件的Activity。
这种情况一般发生在当一个activity被部分遮盖的时候(被一个非全屏或者透明的Activity)。可见进程只在极端的情况下,才会被杀死来保护前台进程的运行。
Visible process包括:
1.可见的activity,但出于暂停(OnPause)状态
2.被可见Activity绑定的Service
三.服务进程-Service Process
服务进程包含已经启动的service,service以动态的方式持续运行但没有可见的界面。因为Service不直接和用户交互,它们拥有比Visible Process较低的优先级。
它们还是可以被认为是前台进程,不会被杀死,直到资源被activity/visible process需求。
四.背景进程-Background Process
进程中的Activity不可见和进程中没有任何启动的service,这些进程都可以是后台进程。
在系统中,拥有大量的后台进程,并且Android会按照后看见先杀掉的原则来杀掉后台进程以获取系统资源给前台进程。
五.空进程-Empty Process
为了改善整个系统的性能,android经常在内存中保留那些已经走完生命周期的应用程序。
android维护这些缓存来改善应用程序重新启动的时间。这些进程在资源需要的时候会被杀掉。
当一个进程被杀掉,进程保留,变成空进程。