[android] Android的进程需不需要杀掉???????????


一,正面观点:

Android 是如何管理进程的

  在Android里,进程和程序是两回事,程序可以一直保留在系统里,但是没有任何进程在后台“运行”,也不消耗任何系统资源。所有的程序保留在内存中,所有可以更快的启动回到它之前的状态。当你的内存用完了,系统会自动帮你杀掉你不用的任务。
  需要明白的是,Android用RAM的方式,跟windows啥的是两回事。在Android的世界里面,RAM被用满了是件'好'事。它意味着你可以快速打开之前打开的软件,回到之前的位置。所以Android很有效的使用RAM,很多用户看到他们的RAM满了,就认为拖慢了他们的电话。而实际上,是你的CPU——当你的软件真正运行时用到的东东——才是拖慢手机的瓶颈。
  为啥说进程管理软件是祸害
  很流行的各种进程管理软件都说帮你释放内存是件好事,但这是不正确的。打开这些软件时,他们告诉你“运行”的软件和杀死他们的方法。你也可以在“服务”里面看到到底程序的哪些部分在“运行”,占用了多少内存,剩余多少内存。所有的这些都告诉你,杀掉这些程序能够释放内存。但是这些软件都没有告诉你这些程序到底消耗了多少CPU时钟,而仅仅告诉你能释放多少内存。要知道,用满了内存实际上是件好事,我们要注意的是CPU,真正消耗你的手机资源,消耗电池的东东。
  因此,杀掉程序通常是没有必要的(尤其是用"autokill"方式杀掉程序)。更严重的是,这样做会更快的拖垮你的手机能力和电池性能。不管是手动杀掉进程,还是自动的杀掉进程,重新打开程序,你实际上是在用CPU资源来做这件事。
  事实上,这些进程管理软件消耗了系统资源。而且,这些软件会莫名其妙的杀死其他程序造成乱七八糟的结果(尤其对些小白来说)。所有的这些,告诉我们,你的手机在用它自己的方式工作,特别是你只是个小白用户,用这些进程管理软件耽误的事情比得到的要多。 
  那么你应该怎么做呢
  这么说吧,各种程序开发水平是不一样的。很多人以前或者现在使用这些进程管理软件,释放内存,感觉手机快了那么一点。造成这个问题的原因是,你用的软件本身程序写得太烂了,比如,有得程序完全没有必要联网时,还在联着。这个时候,杀掉这些程序,你能得到好处,就是说,只有你知道你在干什么得时候,杀掉让你爱但是很烂的程序才能帮上你。
  事实上 ,很多开发者,包括ROM开发者,如果用了进程管理程序,当你提交bug报告时,看都不会看一眼(Cyanogen 时这么干的,我不知道MIUI是不是),所以能不用就不要用了,除非你真的知道你在干什么。
  如果你真关系你的手机的表现和进程,还是多关注下系统进程,看看里面说各种程序都消耗了多少资源,如果某个程序消耗太多,时不时杀掉它可能会有那么一点帮助。

  总的来说,进程管理软件正确的用途是杀那些出错的程序、会导致死机有BUG的进程以及疑似病毒进程等,而不是一味地追求内存空得多程序在内存里放着,CPU不调用,它就是死的,一般程序你退出了它就不再运行了,不占用CPU资源(占用了CPU时间这个才是要耗电的)。


二,反面观点:

其实这个不是windows和linux的差别,这个是PC机和移动设备系统构架的差别。
这些软件预先占用内存并不见得都是好事或者坏事。
移动设备为了可以第一时间响应用户操作需求,是会把某个程序放在内存中待命的,这些程序都是可以设定的。至少同样linux base的Webos是可以的。Android貌是不可以的。
再说说程序,只要是在内存里,被系统挂载了的程序,不可能存在不消耗CPU的说法,只是说消耗多少CPU,同时也存在消耗网络资源的状况。只要挂载,就在消耗CPU,只是有可能他1分钟才消耗一个CPU时间片。但也是在消耗的。
再说说内存调用,剩余的内存始终还是越多越好,移动设备的内存管理是把需要的东西都加载进来,直到内存不够了之后,把不用的内存强行释放再支援新的内存需求,如果还是不够的时候,就会报警。其中那些程序的内存是可以被强制释放的,哪些不可以的,这些就要参考各个程序了。如果一直保持空内存,只是在打开某些没有常驻在内存的程序的时候会慢一点,如果你CPU够,这个慢就可以忽略了,再说一下,如果你内存占用满了,但是你要开启的程序还没有被驻在内存的话,那个开启才是真正慢的。真正慢的哦!!
呃。好了,扯了这么多,只是希望告诉你们,这个里面没有绝对的对和错,而且现在这个时代,流氓软件横行,什么?你没有流氓软件?一个普通的游戏软件需要读取联系人,还需要短信权限,那个不算流氓,安装软件的时候都看一下吧,特别是root过的。保持内存干净点,其实还是很有必要的,然后不用的时候,最好直接吧移动网络,所谓的2G网络,3G网络全部都关掉


三。中间观点:

其实等进程运行起来再kill是最傻的方式(尤其是很多事件驱动的一直加载的进程,原本可能只读取一次就到内存了就蛰伏了,不再占用cpu时间,结果所谓的内存管理器杀啊杀的,它就不停的load进内存占用cpu和io,这样更费电,得不偿失)!要么用autostarts直接限制进程就不能随事件启动,要启动就只启动自己需要的而不kill。等运行大程序的时候再手动杀一下进程就行。android的内存占用本意是好的,但是国内的流氓软件太牛了,所以要用autostarts类的自启管家调教才适合个人


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值