合理使用内存,正确认识任务管理器,Android内存原理不用在意剩余内存的大小。

很多人把使用其他系统的习惯带过来了。Android大多应用没有退出内存的设计有其道理,这和系统对进程的调度机制有关系。

系统有一个规则来回收内存,内存回收调度有个最低值。只有低于这个值时,系统才会选择关闭一些用户不需要的东西。这个内存默认最低值通常设置得很小,所以你会看到内存老在很少的数值徘徊。这并不影响速度,相反,加快了下次启动应用的速度。因为就在内存里!这就是安卓Android标榜的优势之一。

如果人为去关闭进程,没有太大必要,特别是使用一些自动杀进程的软件(注:非关闭自启动的软件)。那些标称自动关进程的软件杀了应用以后,你会发现有的应用很快就又回来了!(这涉及到另外一个叫后台自启动的问题)。如果让它自动地反复地杀进程,无用功不费电才怪!
到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?
很简单,在内存剩余不多时打开大型程序,就会触发系统自身的进程调度策略,杀掉一些进程以空出足够内存。这是一个消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。此过程中,系统并不会一下子关闭所有打开的进程,而是根据当前的需求有选择性地关闭,如果是频繁的调度自然会拖慢系统。那你可能会说系统怎么这么傻呢,不会自己一下子干掉内存么?那么我问事后的诸葛亮还是诸葛亮吗?有时候通过更改内存回收阀值可以有一定改善。但是改动也可能带来一些问题,就是可能兼顾不到数量占绝大多数的中小型应用。所以这个阀值的设定,必须是要兼顾全面的均衡性的。类似此内存阀值的设定在系统设置里面很容易做到的。如离开即销毁每个活动、后台进程限制,但不建议去设置。
内存越大越好?越大必意味着硬件上的更多耗电。也是存在一个要和电池容量和体积均衡的问题。那么,进程管理软件有无必要呢?
有一定意义,就是在运行大型程序之前,你可以手动关闭一些进程释放内存,如按多任务键后到里面去清,可以显著的提高运行速度。这也就是代替系统提前杀掉进程,可能会比系统杀得更彻底一些。但是,你手动关闭进程其实也不是占用了时间的么?如果算在运行程序的速度里面会如何?平常的应用,完全可交由系统自己管理。
谈到这里,可能有的朋友会问:如果内存里不杀掉程序是不是会更耗电?
Android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了在内存的状态。所以这就是为什么有的程序切出去然后重进时会到它最开始运行界面的原因了。那么那些在后台处理的东西呢?比如音乐*放播**,是怎样的?此类程序要在后台处理些东西,它会开启一个服务,服务可在后台持续运行的。所以在后台耗电的也只有带服务的应用了。这个在进程管理里能看到,标签是service。至于广播什么的我就不涉及了.因此没有带服务的应用退出在后台时,是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,就是在下次启动程序时,直接从内存启动,不需要重新读取资源到内存里。所以,何必要关掉它们抹杀这个安卓Android的优点呢?

还有一个,为什么安卓Android一个应用看起来那么耗内存?
目前广泛采用的Android上的应用是java,需要虚拟机。而安卓上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。但是最新的ART模式,在未来就是解决很多这些问题的钥匙。
以上这些设计确保了安卓Android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现。总想保留更多的内存要因系统而异,对安卓来说实际上此举并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,很没必要。真正需要关心的,如前面提到的是那些已经退出到后台但是带服务的应用,但此类应用也要仔细甄别,也不是一刀切死的。不小心把手机功能也切掉,内存更干净了!但有意思吗?
再来详细分析开了大程序或者开了好几个程序之后切换会变慢的原因:
1)如大程序A已经开启,占用70%内存;如果再想运行一个B,需要50%的内存。则就需要一个将A从内存中释放或者压缩的过程,所以表现出来的就是慢一会儿了。
2)ABCDE共占用内存80%,运行新程序Z需要 20%的内存。系统内存因为不会有剩余0的时候,也就是应该剩一部分空闲内存。那么就需要从A~E这几个
程序中选择一个或者几个来关闭。这一过程也需要耗费系统资源,所以会慢一会儿。
以上这些都是再正常不过的现象了。
强调几条:
1)你手动去杀进程清理内存的时候,如按多任务键后到里面去清,就是替系统在释放内存,就算你不杀,在需要内存的时候系统也会自动释放。
单纯地自动杀进程的不要也罢。
2)在后台不运行的程序(没服务的),即使不杀也不会耗电。在后台运行的(有服务的)程序,如后台放歌,自然需要耗电。
3)不是说杀进程没用,不然就不会有绿色守护(更进一步深入自启动管理)之类的了。哪个带服务耗电、哪个后台一直在运行,看服务就能看出来。
但是不能盲目地乱杀,把手机的功能杀没了也就歇菜了。
4)以qq举例,正常的退(菜单里面去选择退出),会在进程管理里面留下qq的运行状态,但不耗电不占 cpu;如果你只是切换出去(按小房子键),
那么自然会耗电,因为程序还在运行中。
总之,由于安卓应用没有严格的审核机制导致软件良莠不齐才是导致旧手机运行卡慢的主要原因,主要得感谢淘宝、QQ、百度等全家桶式的应用。像头条这么良心的应用真的是少之又少啊。
