前言
在应用管理这个界面里面发现有已缓存这一项,里面写了”缓存的后台进程”,英文为 Cached Background Process。
这个词由 Cached
和 Background Process
组成,因此本文就这两个方面进行解释。
Background Process
Android 对进程划分了5个等级:
- Foreground Process: 用户看得见,且能与用户交互的进程。
- Visible Process: 用户看得见的进程,可以是没有完全隐藏的。
- Service Process: Started 的服务。
- Background Process: 不可见的进程。
- Empty Process: 不包含任何组件的进程。
等级越高越容易被回收。很显然后台进程属于等级4,是非常容易被系统回收的。
Cached
为了更充分地利用 CPU,操作系统会在内存中放置多个进程,这种技术叫 Multiprogramming。
Cached Background Process 的特征是:这个后台进程没有前台界面显示,并且没有服务在运行。
Cached Background Process 目前在内存中因为内存很充裕,这样做是为了:当用户再次打开该应用时,能更快地打开。如果系统发现内存不够用了,就很容易将踢出内存。
总的来说,Cached Background Process 和 Running Process 的区别在于:虽然他们都在内存中,但是 Running Process 是需要消耗 CPU 的(至少一个服务还在运行),而 Cached Background Process 是不需要消耗 CPU 的。我们可以从下图中看出 Running Process 都是带着服务的: