Android内存和进程的关系

来源:互联网 发布:淘宝网鱼缸 编辑:程序博客网 时间:2024/06/03 17:54

Android使用的是RAM方式,跟Windows的是两回事。在Android世界里,RAM被用满了是一件“好”事,这意味着你可以快速打开之前打开的软件,回到之前的位置。所以Android很有效地使用RAM,很多用户看到它们的RAM满了,就认为拖慢了他们的手机。实际上,是你的CPU——当你的软件真正运行时用到的空间——才是拖慢手机的瓶颈。所以说一味的释放内存是没用的。无论是手动杀掉进程,还是自动的杀掉进程,如果再次打开程序,实际上是在用CPU资源来做这件事。

这个说法与我们用户体验有些差别,原因在于有些软件写的太差了,比如说有些程序完全没有必要联网时还联着,这时候杀掉这些程序就会得到好处。所以对开发者来说考验巨大。


其实Android系统的特点是不需要太多的剩余内存,Android的大多应用没有退出的设计其实是有原因的,这和系统对进程的调度机制有关系。其实Android和Java的垃圾回收机制类似,在系统中有一个规则来回收内存,通过阈值来进行内存调度。当然这个值默认设置的很小,所以会看到内存经常在很少的数值徘徊。事实上它并不影响速度,反而加快了下次启动应用的速度。这是它的优点!!!在运行大型程序的时候,我们可以手动关闭一些进程释放内存,可以显著提高运行速度,这是有用的。但是一些小程序,完全可交由系统自己管理,此时就是无用的。


Android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗CPU资源,只是保留了运行状态。这也就是说你清理内存,反而因为关闭程序增加了CPU的工作,对提高速度没有作用。在后台耗电的也就只有带服务Service的应用了,比如播放音乐。所以说后台不耗电的那些应用不要去关闭,反正也不占用CPU,相反在它再次启动的时候还更快。


那为什么Android应用看起来那么耗内存?因为Android上的应用是Java,当然需要虚拟机,而Android上的应用是带有独立虚拟机的,也就是每打开一个应用就会打开一个独立的虚拟机,这样的设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多的内存。






0 0