使用安卓手机的用户可能安装了任务管理软件。使用安卓手机真的有必要安装软件结束任务吗?你也发现了很多软件在完成后会立刻出现在任务列表中。
或者等一段时间你自己会出现。任务管理不停的结束后台程序,并没有给手机运行速度带来太大的提升。为什么?
其实你不用那么在意安卓手机剩余内存的大小。很多人把使用其他系统的习惯带到了安卓手机上,并不是所有的智能手机系统都是一样的。大部分安卓应用不退出是有道理的。
这与系统对进程的调度机制有关。如果你懂java,就能更好的理解这个机制。其实类似于java的垃圾回收机制,系统有一个回收内存的规则。内存调度有一个阈值。
只有低于这个值,系统才会根据一个列表关闭用户不需要的东西。当然这个值默认设置为一个小值,所以你会看到内存一直在一个小值上徘徊。但实际上并不影响速度。相反,它加快了下一个应用程序的启动。
这本来就是android的优势之一,不需要人为关闭进程。尤其是自动关闭进程的软件。
有人可能会说,那为什么内存低的时候运行大型程序会很慢呢?其实很简单。在剩余内存不多的情况下打开一个大程序,会触发系统自身的调度策略,这是一个消耗系统资源的操作,尤其是当一个程序频繁向系统申请内存的时候。
这种情况下,系统不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会让系统变慢。
那么,流程管理软件还有价值吗?其实还是有的。在运行大型程序之前,可以手动关闭一些进程来释放内存,这样可以显著提高运行速度。但是有些小程序可以由系统自己管理。很多朋友还有一个疑问。
不关程序会更耗电吗?这里,当ndroid的应用切换到后台时,实际上已经被挂起,不会消耗cpu资源,只是保持运行状态。那么为什么有些程序会裁剪掉重新进入到主界面呢?但是,
如果一个程序想在后台处理一些事情,比如音乐播放,它会启动一个服务,服务可以在后台持续运行,所以只有有服务的应用在后台耗电。这个可以在流程管理软件中看到,它的名字叫服务。
因此,不需要在没有服务的情况下关闭应用,因为它在后台不消耗功率。这个设计是非常好的设计,下次启动程序会更快,因为不需要读取界面资源,为什么要把它们关掉,抹杀这个安卓的优势呢?
还有一件事,为什么android应用程序似乎要消耗这么多内存?众所周知,android上的应用是java,当然需要虚拟机,android上的应用有独立的虚拟机,也就是每个应用都会开一个独立的虚拟机。
这样设计的原因是为了避免虚拟机崩溃导致整个系统崩溃,但代价是更多的内存。
至于为什么打开一个大程序或者几个程序后切换会变慢,具体分析如下:
已经启动了一个大程序,占用了70%的内存。如果要运行另一个程序,此时需要50%的内存,需要一个从大程序占用的内存中释放或者压缩的过程,所以暂时比较慢。
已经启动的几个程序占用了80%的内存,运行一个新程序需要20%的内存。由于系统内存一直没有看到剩余的0,也就是应该有一些空闲内存,那么你就需要选择一个或者几个之前已经打开过的程序来关闭它。
这个过程也需要消耗系统资源,所以会慢一段时间。也就是说,当你手动结束程序时,你是在为系统释放内存。即使不结束,系统也会自动结束程序,在需要的时候释放内存。
不在后台运行的程序(没有服务)即使不结束也不会耗电。后台运行的程序(有服务),比如一些播放器或者实时监控软件,自然是要耗电的。这表明结束该过程不是无用的,
我们只需要看到哪个服务耗电,哪个程序一直在后台运行,看服务就知道了。这样的软件不用,就完了。
以qq为例。正常退出的话,会在进程管理中留下QQ的运行状态,但是不会耗电,也不会消耗cpu。如果只是切换出去(按屋键而不是退出),自然会耗电,因为程序还在运行,QQ还在线。
这里有一个需要注意的地方。虽然house键和back键都可以切换出程序,但是两者的效果差别很大。后退键可以视为程序已经退出,而按house键会将程序切换到后台运行,但是软件并没有退出!
这些设计都是为了保证android的稳定性。一般情况下,最多单个程序崩溃,但整个系统不会崩溃,绝不会有内存不足的提示。每个人都可能被windows毒害太深,总想保留更多的记忆。
但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,得不偿失。大家不妨换种观念习惯来使用android系统。