不做强迫症:Android多任务机制科普
想当年,清内存的习惯由来已久。在 Android 还没出生,我们使用 Windows 时,总巴不得把所有没有用到的进程关掉,这样才不会“占 内存”,不会“占 CPU ”,电脑才不会“卡”。(大部分的“安全软件”就是靠帮用户在 Windows 上清内存,清垃圾而扬名)这算是清内存的历史原因。然而 Android 跟 Windows 相比,是完全不同的内存管理机制......
- 作者:佚名来源:leiphone|2014-06-18 10:41
为什么不需要清内存?
想当年,清内存的习惯由来已久。在 Android 还没出生,我们使用 Windows 时,总巴不得把所有没有用到的进程关掉,这样才不会“占 内存”,不会“占 CPU ”,电脑才不会“卡”。(大部分的“安全软件”就是靠帮用户在 Windows 上清内存,清垃圾而扬名)这算是清内存的历史原因。然而 Android 跟 Windows 相比,是完全不同的内存管理机制…
背景:
Android 基于 Linux 的内核,继承并改进了 Linux 的内存管理机制。
Android 的内存管理机制:
- 有多少内存就用多少,空闲内存全部当缓存。也就是,当一个进程停止活动,Windows 会把它从内存中清除,但Android会把进程保留在内 存里,这样下次启动时就会非常快,因为省去了再次从储存设备读取的时间,只有当内存不足以启动一个新进程时,Android 才会清除某些驻留在内存中停 止活动的进程。
- 每个进程以 Java 虚拟机独立存在,互不干扰。确保 Android 的稳定性,正常情况下即使单个进程崩溃,整个系统也不会崩溃,也永远没有内存不足的提示出现。
以上,可以解释 Android 剩余内存总是很少的原因。“但是,进程在后台运行会耗电耗流量的啊?”这个继续解释……
Android 的多任务机制:
当进程被切换到后台时,系统暂停进程。不消耗cpu资源,只在内存保留运行状态,并根据应用本身设置优先级。
七个优先级:
- 前台进程。顾名思义,你当前屏幕正在显示的进程。
- 可见进程。随时需要待命的进程,例如随时需要召唤出来的输入法。
- 主要服务。系统的必须服务,例如电话。
- 次要服务。与系统关系密切的服务,例如 Gmail 的邮件推送服务。
- 后台进程。同样顾名思义,就是刚刚被你切换到后台的进程。
- 内容供应节点。没有应用实体,仅提供内容供别的应用去用的,比如日历供应节点,邮件供应节点等。
- 空进程。没有任何东西在运行的进程,有些应用在退出后,依然会在进程中驻留一个空进程,这样的作用是提高该应用下次的启动速度或记录一些历史信息.
结论
综上,正常的用户应用在退出之后要不就成为后台进程,要不就成为空进程。这些进程已经暂停了运行,不占用 CPU 资源和电量。在内存不足,用户需 要打开另外的应用时,就会自动清除掉,所以完全不需要清理内存。相反有时清理了内存之后系统反而需要用大量的电量和 CPU 去重启必要的进程。
可是为什么有些应用在关掉了之后仍然会耗费电量和流量呢?唯一的答案是,这是一个不安分的应用。应用作者在写应用的时候就为应用申请了各种各样的主 要服务和次要服务,导致用户退出后仍然继续运行。(所以后台运行最牢固的就是那些在你下拉通知栏的“XX电池医生”和“XX手机助手”。)这种现象在一些 国产应用上尤其常见。面对这些乱七八糟的没良心的应用和应用作者,果断把它卸载并冲到臭水沟里面去吧,差评!
【编辑推荐】
点赞 0
- 大家都在看
- 猜你喜欢
编辑推荐
- 24H热文
- 一周话题
- 本月最赞
- QQ的第20年:瘦身、臃肿和微信冲击码农的专属15个谜语 你能猜中几个?21个免费的UI界面设计工具、资源及网站将HTML5封装成android应用APK文件的几种方法Android 反编译 -smali语法Safari不是唯一选择:8款最佳iPhone Web浏览器应用!来,教你如何破解一个 iOS APP人人都是开发者:5款傻瓜式APP开发工具
- QQ的第20年:瘦身、臃肿和微信冲击将HTML5封装成android应用APK文件的几种方法昔日HTC、三星,今日苹果:寒冬过后手机厂商才会明白的潜规则专家:5G手机耗电量大将制约其推向市场国产手机和苹果的“相怼论”为何美国本土不能组装iPhone?螺丝都配不齐腾讯微视推出视频红包,这可能是今年最酷的红包玩法21个免费的UI界面设计工具、资源及网站
- 微信人手奖励一部iPhone顶配版 张小龙:年终奖多到怕吓到大家21个免费的UI界面设计工具、资源及网站一天跟踪你340次,欢迎来到零隐私时代人人都是开发者:5款傻瓜式APP开发工具手把手教你表情包的制作方法与流程为何美国本土不能组装iPhone?螺丝都配不齐Safari不是唯一选择:8款最佳iPhone Web浏览器应用!Android 反编译 -smali语法
视频课程+更多
-
HTML和CSS 6小时入门经典视频教程
讲师:Helen老师 - 姚环738367人学习过
-
Juniper入门与提高实战视频课程【大侠唐在飞
讲师:大侠唐在飞30797人学习过
-
嵌入式Linux项目:数码相框+视频监控+电源管
讲师:韦东山33133人学习过
最新专题+更多
- 精选博文
- 论坛热帖
- 下载排行
读 书 +更多
Java EE 5 开发指南
本书是对Java EE各种技术之间互相协作的概览和补充。 本书还展示了如何编写JavaServer Page(JSP)页面或者企业级JavaBean(EJB):探讨了...
-
订阅51CTO邮刊
点击这里查看样刊