第一次使用安卓的时候,觉得很不习惯,因为我发觉进程管理软件根本就是个摆设,一些软件你关掉了,马上又会运行,当初用GO桌面自带进程管理,感受特别深刻,弄得自己都快要崩溃。。后来翻阅了大量资料,有种豁然开朗的感觉。。原来如此。
简单来说吧,安卓的进程管理机制是事件触发式
比如开机时、开机后、网络连接更改、电量不足、电量充足、时间更改、插上电源等等这些状态的改变都可看作一个事件,安卓系统允许程序关联这些事件(这个在程序开发中设定的),比如关联开机后,差不多就相当于我们一般说的开机启动了。但是安卓系统可以允许一个程序关联多个事件,拿谷歌地图来说吧,它关联的事件有“开机后、电量不足、电量充足、安装应用程序、卸载应用程序、更新应用程序、插上电源”等等。。。中间任何一个状态改变,系统都会自动运行谷歌地图进入后台,你说任务管理器得多少次才能完全结束呢?
安卓为什么要这样做呢?
其实这样做的目的是为了提高程序运行的效率。举例来说,当你打开WIFI时,肯定要上网,系统就会调入一些上网的关联程序进入后台休眠(只占用内存,不占用CPU资源),当你真正需要运行这些程序的时候,系统直接把程序从后台转到前台运行,这样大大提高了程序的运行效率,我觉得这也是统筹方法的一种应用吧。至于说会不会软件一直启动会把内存占满,这个不用担心,当系统内存低于某个值时,内存管理机制会根据进程的优先级来关闭后台进程。但是呢,在硬件配置飞速发展的今天,像小米手机,即便是一步步加载程序也是秒速来算的,所以这个运行效率也没有得到多大的体现。鉴于一些软件进入后台不只是休眠,可能会有些费电,所以我们不如把这个事件触发的关联切断。怎么切断?
我觉得一个软件比较好,Autostarts启动项管理
这个软件就是针对这个而生的,它只做这个,做完退出,不会像其他进程管理一样常驻内存。打开来,里面有按事件分组,一个事件下面列出所有关联这个事件的所有程序;也可以按程序分组,一个程序下面列出这个程序关联了哪些事件,你把觉得没有必要关联的事件触发禁用掉就好了。如果禁用掉之后,这个程序还会自动运行,你可以再次打开Autostarts,按菜单键—查看,把隐藏未知事件取消勾选,可能这个程序关联了Autostarts搞不明白的事件,如果有,禁用之。
注意:搞这个是有风险,黄色的显示是系统进程,禁用的时候会有提示,如果你没有把握就留着。不过也不要太担心,如果禁用错了导致某个功能无法使用,再启用就可以了。另外程序重新安装或者作了升级,会重建事件触发关联,要重新运行Autostarts切断它。
PS:其实安卓的进程机制是很复杂的,前台进程(foreground),可见进程(visible),次要服务(secondaryserver),后台进程(hidden),空进程(empty),至于他们究竟运作,我们没有必要太了解,知道个大概就好了。
像小米自带的任务管理器还要不要用呢,要,因为某些程序你打开后不能完全退出,需要用那个来结束。运行大的游戏之前最好释放一下内存。
有些进程管理软件,需要常驻内存,等进程运行就把进程杀掉,还美其名曰自动杀进程,其实傻得可爱,该软件不需要常驻内存,运行一次,切断与应用程序触发关联就可以退出了。