一.Android进程概述
默认状况下,系统为Ap启动一个Linux process,Ap的所有组件均运行在该process下,我们可以自定义不同组件使用不同的进程
二.Android的5个进程等级
Android系统会维护进程重要性等级(importance hierarchy),当资源不足的时候会将优先级等级最低的进程杀掉。5个进程等级如下
1.Foreground process
用户正在使用的进程,具体如下
- Activity onresume()
- bound到activity的service正处于交互状态中
- service的startForeground()正在被调用
- service的生命周期正在执行(onCreate(),onStart(),onDestory())
- BroadcastReceiver正在执行onReceive()方法
某些Foreground processes需要用户响应
2.Visible process
- 没有Foreground process组件,但是仍然用户可见的进程
- activity非前台但是可见,onPause()可见
- service绑定到visible(foreground)activity
3.Service process通过startService()启动的正在运行的service(并且不在上述两种状态中)
4.Background process
- activity onPause(). 通过LRU(lease recently used)判断它们的优先级。被杀掉的activity可以通过
onSaveInstanceState()保存Bundle状态,当重新创建时可以通过onCreate()和onRestoreInstanceState().来获取保存的状态。
5.Empty process
没有包含任何组件的进程,主要是为了缓存的需要
浙公网安备 33010602011771号