怎么回事呢?是因为开源有关系吗?有些软件关了,过段时间又自动运行了,占内存耗流量,还费电。。。。怎么办呢?有没有一劳永逸的解决办法呢?
Android原理 不需要关闭后台运行程序
不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要。特别是使用自动关进程的软件。
到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。所以,论坛上有个更改内存阀值的程序可以有一定改善。但改动也可能带来一些问题,取决于值的设定。
那么,进程管理软件有无必要呢?有的。就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显著的提高运行速度。但一些小程序,完全可交由系统自己管理。
谈到这里,可能有的朋友会问,如果不关程序是不是会更耗电。我就说说android后台的原理,你就明白了。android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。所以为什么有的程序切出去重进会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service。至于广播什么的我就不涉及了。所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个android的优点呢。
还有一个,为什么android一个应用看起来那么耗内存。大家知道,android上的应用是java,当然需要虚拟机,而android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。
以上这些设计确保了android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现。大家可能是被windows毒害得太深了,总想保留更多的内存,但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,很没必要。
不过呢,使用“启动项管理”这个小软件,把讨厌的程序禁用,有一定效果,我只能说,有一定效果
不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要。特别是使用自动关进程的软件。
到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。所以,论坛上有个更改内存阀值的程序可以有一定改善。但改动也可能带来一些问题,取决于值的设定。
那么,进程管理软件有无必要呢?有的。就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显著的提高运行速度。但一些小程序,完全可交由系统自己管理。
谈到这里,可能有的朋友会问,如果不关程序是不是会更耗电。我就说说android后台的原理,你就明白了。android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。所以为什么有的程序切出去重进会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service。至于广播什么的我就不涉及了。所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个android的优点呢。
还有一个,为什么android一个应用看起来那么耗内存。大家知道,android上的应用是java,当然需要虚拟机,而android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。
以上这些设计确保了android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现。大家可能是被windows毒害得太深了,总想保留更多的内存,但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,很没必要。
不过呢,使用“启动项管理”这个小软件,把讨厌的程序禁用,有一定效果,我只能说,有一定效果
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-05-20
没有用过安卓系统的人,当然不会理解楼主说说的意思,并且还按照自己的理解去想办法,甚至有人随便找点资料去分析。
其实这就是安卓系统的弊端,也是安卓系统的死穴。
用过安卓系统的喜欢安装软件的都知道,安装软件后,本来开机已经禁止了他们运行,甚至开机后用清理软件已经清理了。不久你曾经安装过的软件就自动再次运行起来,就好比黑客入侵了你的电脑一样,一模一样的。
但是当安装软件一定多后,内存就彻底小到一定程度了,我的一般到40M,就后突然出现某个程序崩溃。清理后也许好点,不久后,没用的程序又自动启动来占据你的内存,还会出现其他程序崩溃。手机貌似能有,但是感觉速度慢了很多,接打电话迟钝,卡。
解决办法就是:不安装软件或者少安装,只能用机子里自带的。实在想玩软件,就换掉安卓系统,否则你会很不爽的。
其实这就是安卓系统的弊端,也是安卓系统的死穴。
用过安卓系统的喜欢安装软件的都知道,安装软件后,本来开机已经禁止了他们运行,甚至开机后用清理软件已经清理了。不久你曾经安装过的软件就自动再次运行起来,就好比黑客入侵了你的电脑一样,一模一样的。
但是当安装软件一定多后,内存就彻底小到一定程度了,我的一般到40M,就后突然出现某个程序崩溃。清理后也许好点,不久后,没用的程序又自动启动来占据你的内存,还会出现其他程序崩溃。手机貌似能有,但是感觉速度慢了很多,接打电话迟钝,卡。
解决办法就是:不安装软件或者少安装,只能用机子里自带的。实在想玩软件,就换掉安卓系统,否则你会很不爽的。
第2个回答 2011-09-23
安卓的一些程序是关联的,开a程序可能需要b程序的某些功能,比如开导航,必定会开启上网功能,所以软件关了,过段时间可能又自动运行,有软件可以像电脑一样终结进程的
第3个回答 2011-09-23
有些软件是属于系统自动运行的,比如输入法这样的,这个不好删除,你去下载一个android助手,上面可以定义自动关闭的程序,但有些是属于系统服务的,不好栅,否则很容易崩溃。