Android采取了一种有别于Linux的进程管理策略,有别于Linux的在进程活动停止后就结束该进程,Android把这些进程都保留在内存中, 直到系统需要更多内存为止。这些保留在内存中的进程通常情况下不会影响整体系统的运行速度,并且当用户再次激活这些进程时,提升了进程的启动速度。
那Android什么时候结束进程?结束哪个进程呢?Android是依据一个名为LRU(last recently used 最近使用过的程序)列表,将程序进行排序,根据进程的重要性以及触发内存清理的阀值,选择性的结束列表中的进程。
一、进程的重要性
Android系统会对进程的重要性进行评估,并将重要性以“oom_adj”这个数值表示出来,赋予各个进程。系统会根据“oom_adj”来判断需要优先结束哪些进程,一般来说,“oom_adj”的值越大,该进程被系统选中终止的可能就越高,前台程序的“oom_adj”值为0,这意味着它不会被系统终止。Android将进程分为6个等级,foreground(前台进程)、visible(可见进程)、secondary server(次要服务)、hidden(后台进程)、content provider(内容供应节点)、empty(空进程)它们按优先级顺序由高到低依次是:
1.前台进程(foreground):目前正在屏幕上显示的进程和一些系统进程。举例来说,Dialer Storage,Google Search等系统进程就是前台进程;再举例来说,当你运行一
那Android什么时候结束进程?结束哪个进程呢?Android是依据一个名为LRU(last recently used 最近使用过的程序)列表,将程序进行排序,根据进程的重要性以及触发内存清理的阀值,选择性的结束列表中的进程。
一、进程的重要性
Android系统会对进程的重要性进行评估,并将重要性以“oom_adj”这个数值表示出来,赋予各个进程。系统会根据“oom_adj”来判断需要优先结束哪些进程,一般来说,“oom_adj”的值越大,该进程被系统选中终止的可能就越高,前台程序的“oom_adj”值为0,这意味着它不会被系统终止。Android将进程分为6个等级,foreground(前台进程)、visible(可见进程)、secondary server(次要服务)、hidden(后台进程)、content provider(内容供应节点)、empty(空进程)它们按优先级顺序由高到低依次是:
1.前台进程(foreground):目前正在屏幕上显示的进程和一些系统进程。举例来说,Dialer Storage,Google Search等系统进程就是前台进程;再举例来说,当你运行一