Android中的进程优先级
Android系统中的进程优先级是用来决定系统在资源紧张时,优先保证哪些进程的资源占用。Android系统将进程分为五个级别,每个级别都有一个对应的数值。下面分别介绍每个级别的含义及数值。
1. 前台进程(Foreground process):数值为100
前台进程是指正在跟用户交互的进程,通常是用户正在操作或者正在查看的APP,比如正在播放音乐的媒体应用、正在启动或者已经启动的Activity等。前台进程是优先级最高的进程,系统将会尽可能的保证其占用资源。
2. 可见进程(Visible process):数值为200
可见进程是指虽然没有在前台运行,但是其对用户可见的进程;比如说用户通过Home键或是Recent键返回桌面后,进程仍然保留在Recent列表中,例如正在播放音乐的媒体应用、正在执行长时间操作的应用(例如:下载、分享、发送邮件等)。可见进程比后台进程优先级更高,并且在系统资源紧张时也会被尽量保证其资源占用。
3. 服务进程(Service process):数值为300
服务进程就是运行着服务(Service)的进程,虽然他们没有可见的用户界面,但是它们仍然正在为用户提供某种服务,譬如:BaiduPush服务、后台任务定期清理、上传数据、下载数据等,这些服务都是由调度器封装成进程运行的。在资源紧张时,系统也会尽量保证服务进程的资源占用。
4. 后台进程(Background process):数值为400
后台进程指处于后台正在运行的进程,通常指那些用户已经离开的应用程序。这些进程不是非常重要,但它们运行了一些保持地图、即时通信等一些高耗能的应用,系统会根据资源情况对其进行回收。
5. 空进程(Empty process):数值为500
空进程指手机中空闲进程的值,大多是在Zygote进程中生成的,这种进程是为了提高系统的启动速度而在系统中占据一定的内存资源。去优化后台程序,杀掉这些空进程是一种非常简单的方法,只需要使用一些工具就能够达到目的。空进程是优先级最低的,当系统内存不足时,空进程可能就会被杀死释放内存。
进程优先级决定了在Android OS内部下,每个进程能够获得运行时资源的优先级。同时,进程的优先级也会决定当进程内存超出一定数量时,系统会选择强制结束哪一个进程来释放一定的资源。
需要注意的是,这个优先级值只是介绍中定义的本意,如果开发者在代码中调用了相关的API,也可以改变其优先级值。
总之,Android系统进程优先级按照重要程度从高到低分别是:前台进程>可见进程>服务进程>后台进程>空进程。对于普通用户来说,若发现手机运行速度不够快或电池电量不够充足,可以通过清理掉空进程来减轻系统负载,以达到优化手机功效的目的。若发现是某款应用程序占据过多的系统资源影响整体音乐播放、数据下载等功能,则可以尝试手动关闭该应用程序。
