安卓系统其实不需要极度精简,至少我不推荐这种行为,只是一味的精简并不会给系统带来什么好处反而只有害处,因为许多系统应用跟设置里的选项有关联,应当尽量保证系统的完整性。
后台为什么会无缘无故多出很多进程呢?
如果你真的理解安卓进程管理机制和软件架构的话,就会发现各种Receiver,各种CHANGED事件其实才是主因,一切都是软件进程事件触发自行后台启动造成的。因为安卓的进程管理机制是事件触发式,比如开机时、开机后、网络连接更改、电量不足、电量充足、时间更改、插上电源、断开电源等等这些状态的改变都可看作一个事件,而安卓系统允许程序关联这些事件(这个是在程序开发中由开发者设定的),比如关联开机事件后,就相当于我们一般说的开机启动了。但是安卓系统是可以允许一个程序关联多个事件的,以谷歌地图举例,它关联的触发事件有“开机后、安装程序、卸载程序、更新程序、插上电源”等等,这些事件中的任何一个状态发生改变,系统就会自动后台运行谷歌地图。虽然安卓系统这样做的目的是为了提高程序运行的效率,但是实际上却给普通用户带来了太多不必要的麻烦。
安卓系统为什么会有时突然出现卡顿呢?
因为很多软件安装完以后所产生的自启动项,会在你不知道的情况下,并会根据不同触发条件自行启动自身的进程,每次如果有一些自启动进程一起启动的时候都会临时占用大量CPU资源和内存资源,所以系统此时必然会出现卡顿。很多软件甚至会在你切换移动/WiFi网络的时候自行启动。假如你事先没有把WiFi设置成永不休眠,那么锁屏一段时间后WiFi会自行关闭进入休眠状态,每一次开屏系统就会自行启用一次WiFi,而很多软件在启用WiFi或者切换为移动网络的时候就会以此为触发条件自行启动。这个过程虽然短暂,但是会瞬间消耗大量的硬件资源,一定会出现卡顿的现象。所以你需要做的就是,使用自启管理禁止这些情况发生。而且机器总是特别耗电的问题,也大多是出在这上面,并非全是基带和系统版本的问题。这才是需要关注的本质问题:后台进程太多,总是自行启动无谓的消耗电量。很多人总是关注自己机器的内存使用情况怕运行内存剩余量变少,其实是错误的。2.3.4的安卓系统是改进了的内存管理机制,内存使用率高一些其实是一种优化,大多时候系统会保留缓存进程并占用一些内存以加速程序运行。所以总是用任务管理器杀进程来节省内存其实是一种错误的行为,因为你空出太多内存并没有好处,往往只有坏处。例如你杀掉了某个系统进程,系统会以为是紧急释放,现在内存又有了空间就会自动的重新加载这个进程,这么重新加载一下就要动用CPU进行轮询遍历,要通过I/O读取存储器....这个时候虽然你可能并不知道,但系统开销极其巨大,给你的直观感受就是—怎么又卡了,又比如,你随手干掉了一堆进程,内存空出来了,然后你滑动界面发现怎么还是卡?一次次的清理内存,相当于一次次的清空系统的冷热判断机制,明明很冷的程序,系统给你加载上了,明明很热的程序,系统转手给你释放了....要么系统出错,要么重建程序带来系统消耗。
在了解了这些以后,有针对性的进行优化,删除一小部分实在没用的系统附带应用,尽量保证系统完整性,通过其他的方法来提高系统表现即可,自启管理这个软件恰好是能把每个软件的receiver接收器事件全部列出来,让用户自己选择禁用或者启用,而市场上大大多数所谓的优化软件只能做到禁止最简单的开机项(基本没有什么意义),
基于此,我推荐大家使用Autostarts自启管理这个软件。
以下是小众软件某文章的评论:
软件使用方法和建议:
按程序分组管理各个应用程序的启动项。黄色名称的表示系统应用,白色名称的表示自己安装的第三方应用,启动项划横线表示已经禁用过了,没有划线说明当前状态是启用的。LG系统:不要去禁用Google服务框架,WAP服务,信息,媒体存储,联系人存储,通话这些应用的任何启动项,保持默认即可,否则发信息打电话会出问题。喜欢用系统自带闹钟的机油不要禁用闹钟/时钟的启动项,不过推荐禁用掉安装正点闹钟使用;三星系统:不要禁用Android系统,AvcpServiceSamsung,Bluetooth
share,Google服务框架,MTP应用程序,OMACP,媒体存储器,信息,手机,通话设定这些应用的任何启动项,同时“输入指令”这种项目不用禁;除以上提到的之外的其他任何应用(无论系统自带的还是自己安装的)的任意启动项可以随意禁用,自己想要随机一直启动的程序不要禁用,各个软件的窗口小部件(更新、启用、禁用窗口小部件项目)可以不去禁用,一旦禁用了就不能在桌面添加小部件了。调整完了重启一次手机
补充关于安卓内存管理机制的一些介绍和阐述:
Android的内存管理机制,这是一种完全不同于WM,Symbian,Windows乃至Linux的机制,是一种专门针对移动系统设计的机制,所以不要用其他系统的一些惯性思维来玩安卓。在传统机制下,程序结束,内存释放,程序进入后台,系统消耗资源维持后台进程运行和状态。但Android并非如此,Android将运行在操作系统上的程序分为六大类:
1.前台(Foreground),你正在运行操作的程序,例如你正在浏览网页,这个浏览器就是前台程序,这类程序是系统优先保障的程序
2.主要服务(Primary
service),支撑系统,以及极为重要的功能应用。例如电话功能,这些主要服务一般不会被系统自动结束,即使你主动杀掉,系统也会自己重新加载,甚至可能导致不可预知的错误,需要重启机器才能解决。
3.次要服务(Secondary
service),和系统应用息息相关的许多程序,例如联系人,短信,硬件驱动触发器,谷歌套件,乃至Launcher,都是次要服务,如果你杀掉了Launcher,按小房子回到桌面的时候就只能重新慢慢等待Launcher加载;也有一些第三方程序因为需要在后台继续运行,建立次要服务,例如QQ,微博,市场。系统会尽可能的保障这些程序的运行,当然,这些服务程序的运行是需要消耗CPU资源的,消耗的程度取决于程序功能和设计。
4.后台(Hidden),一般我们用“小房子”切换到后台的前台程序,就转换为Hidden进程,例如看到一半的网页,我们需要切换出去看看微博,这个前台的浏览器就转换为后台程序了。一般来说,系统会尽可能多的保留后台程序,这样当你再次打开这个程序的时候会极其快速,之前的运行状态也可以保留,当然在极端情况下,内存确实不够了,系统会选择性的结束最“冷”的后台进程,当然,这时候结束进程会带来系统消耗,但相对于重开程序完全重新加载的系统消耗,这可是一个非常划算的生意。另外需要注意的是,Hidden程序都是被系统冻结的,切换到后台的时候几乎不会消耗任何CPU资源,也就是说这种情况的后台进程并不会让系统变慢。但是一些程序的进程在后台自行启动的时候则会消耗大量CPU资源,同时间启动数量越多,系统越慢
5.内容供应节点(Content Provider),这类程序并没有实体,仅提供内容供别的程序使用,比如日历提供程序,LG
FlexProvider,这类程序的系统优先级比较低,在内存紧张的时候,或者完全冷却过后会被系统优先释放,但并不意味着这些程序不重要,很多时候如果你手动杀掉了某些正在发挥作用的Provider,很可能导致各种各样莫名其妙的问题。
6.空程序(Empty),有些程序在退出后,依然会在进程中驻留一个空进程,有些程序并没有运行,但也会主动加载一个空进程,大多数时Android系统鼓励这种行为,空进程中并没有任何运作,可能会记录一些程序历史信息,但当程序下次启动时能大幅提高启动速度。当然,这类程序是优先级最低的程序,也是很多内存清理控最痛恨的——明明已经干掉了,明明我没有启动,你们为什么还是不依不饶的反复跳出来?可问题在于,你干掉这些程序不会带来一丝一毫的性能提高(当然,满足了某些心理需求除外),反而他们重新加载空进程会有系统消耗。
以上参考文章:
青春就应该这样绽放 游戏测试:三国时期谁是你最好的兄弟!! 你不得不信的星座秘密