Android 进程
Android
系统主动管理资源,为了保证高优先级程序的正常运行或者为了减轻系统内存负载,会主动终止低优先级的程序。
可见程序的生命周期是由Android
系统控制。
前台进程(
Foreground Process
)
- 活动进程,正在和用户交互的承载应用程序的进程。
- 最高优先级,正在前台运行,用户正在通过该进程与系统进行交互。
包括四种情形:
Activity
正在于用户进行交互。- 进行正在被
Activity
调用,而且这个进程正在于用户进行交互。- 进程服务正在执行声明中的回调函数。
- 进程的
BroadCastReceiver
正在执行OnReceive()
函数。可见进程(
Visible Process
)
- 可见但非活动进程。
- 部分程序界面能够被用户看见,却不在前台与用户交互,不影响界面事件的进程。
- 极少数的情况下,
Android
系统会为了保证前台进程的资源而清除可见进程。服务进程(
Service Process
)
- 已启动服务的进程。
- 没有用户界面,在后台长期为用户服务运行。
- 除非
Android
系统不能保证前台进程或可见进程所必要的资源,否则不强行清除服务进程。后台进程(
Background Process
)
- 不包含任何已经启动的服务,没有用户可见的
Activity
的进程。- 系统资源紧张时,系统将优先清除用户长时间没有看到的后台进程。
空进程(
Empty Process
)
- 没有持有任何活动应用组件的进程。
- 最低优先级,保留空进程的唯一理由是为了提供一种缓存机制,缩短应用下次运行时的启动时间。
- 空进程在系统资源紧张时会被首先清除,但为了提高
Android
系统应用程序的启动速度,Android
系统将会将空进程保存在系统内存中,在用户重新启动该程序时,空进程会被重新使用。