为什么不需要清内存?

想当年,清内存的习惯由来已久。在 Android 还没出生,我们使用 Windows 时,总巴不得把所有没有用到的进程关掉,这样才不会“占内存”,不会“占 CPU ”,电脑才不会“卡”。(大部分的“安全软件”就是靠帮用户在 Windows 上清内存,清垃圾而扬名)这算是清内存的历史原因。然而 Android 跟 Windows 相比,是完全不同的内存管理机制…

背景:

Android 基于 Linux 的内核,继承并改进了 Linux 的内存管理机制。

Android 的内存管理机制:

  1. 有多少内存就用多少,空闲内存全部当缓存。也就是,当一个进程停止活动,Windows 会把它从内存中清除,但Android会把进程保留在内存里,这样下次启动时就会非常快,因为省去了再次从储存设备读取的时间,只有当内存不足以启动一个新进程时,Android 才会清除某些驻留在内存中停止活动的进程。
  2. 每个进程以 Java 虚拟机独立存在,互不干扰。确保 Android 的稳定性,正常情况下即使单个进程崩溃,整个系统也不会崩溃,也永远没有内存不足的提示出现。

以上,可以解释 Android 剩余内存总是很少的原因。“但是,进程在后台运行会耗电耗流量的啊?”这个继续解释……

Android 的多任务机制:

当进程被切换到后台时,系统暂停进程。不消耗cpu资源,只在内存保留运行状态,并根据应用本身设置优先级。

七个优先级:

  1. 前台进程。顾名思义,你当前屏幕正在显示的进程。
  2. 可见进程。随时需要待命的进程,例如随时需要召唤出来的输入法。
  3. 主要服务。系统的必须服务,例如电话。
  4. 次要服务。与系统关系密切的服务,例如 Gmail 的邮件推送服务。
  5. 后台进程。同样顾名思义,就是刚刚被你切换到后台的进程。
  6. 内容供应节点。没有应用实体,仅提供内容供别的应用去用的,比如日历供应节点,邮件供应节点等。
  7. 空进程。没有任何东西在运行的进程,有些应用在退出后,依然会在进程中驻留一个空进程,这样的作用是提高该应用下次的启动速度或记录一些历史信息.

结论

综上,正常的用户应用在退出之后要不就成为后台进程,要不就成为空进程。这些进程已经暂停了运行,不占用 CPU 资源和电量。在内存不足,用户需要打开另外的应用时,就会自动清除掉,所以完全不需要清理内存。相反有时清理了内存之后系统反而需要用大量的电量和 CPU 去重启必要的进程。

可是为什么有些应用在关掉了之后仍然会耗费电量和流量呢?唯一的答案是,这是一个不安分的应用。应用作者在写应用的时候就为应用申请了各种各样的主要服务和次要服务,导致用户退出后仍然继续运行。(所以后台运行最牢固的就是那些在你下拉通知栏的“XX电池医生”和“XX手机助手”。)这种现象在一些国产应用上尤其常见。面对这些乱七八糟的没良心的应用和应用作者,果断把它卸载并冲到臭水沟里面去吧,差评!

Android多任务机制科普相关推荐

  1. Android多任务机制的科普(豁然开朗系列)

    为什么不需要清内存? 想当年,清内存的习惯由来已久.在 Android 还没出生,我们使用 Windows 时,总巴不得把所有没有用到的进程关掉,这样才不会"占 内存",不会&qu ...

  2. 科普:安卓的多任务机制

     为什么不需要清内存? 想当年,清内存的习惯由来已久.在Android还没出生,我们使用Windows时,总巴不得把所有没有用到的进程关掉,这样才不会"占内存",不会" ...

  3. Android 消息处理机制(Looper、Handler、MessageQueue,Message)

    原文:[简书原文](http://www.jianshu.com/p/02962454adf7)> 另外本人自己开了开了个人博客 fanmingyi.cn 不定时更新[跳转到个人博客](http ...

  4. 覆盖式理解Android 消息处理机制(带源码解析)

    转载自:https://www.jianshu.com/p/02962454adf7 Android 消息处理机制估计都被写烂了,但是依然还是要写一下,因为Android应用程序是通过消息来驱动的,A ...

  5. Android消息机制Handler用法

    这篇文章介绍了Android消息机制Handler用法总结,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 1.简述 Handler消息机制主要包括: Messa ...

  6. 【腾讯Bugly干货分享】经典随机Crash之二:Android消息机制

    为什么80%的码农都做不了架构师?>>>    本文作者:鲁可--腾讯SNG专项测试组 测试工程师 背景 承上经典随机Crash之一:线程安全 问题的模型 好几次灰度top1.top ...

  7. Android刷新机制-View绘制原理

    Android刷新机制-View绘制原理 Android刷新机制-SurfaceFlinger原理 Android刷新机制-Choreographer原理 一.概述 本文将从startActivity ...

  8. android消息池,回转寿司你一定吃过!——Android消息机制(构造)

    消息机制的故事寿司陈放在寿司碟上,寿司碟按先后顺序被排成队列送上传送带.传送带被启动后,寿司挨个呈现到你面前,你有三种享用寿司的方法. 将Android概念带入后,就变成了Android消息机制的故事 ...

  9. android handler的机制和原理_一文搞懂handler:彻底明白Android消息机制的原理及源码

    提起Android消息机制,想必都不陌生.其中包含三个部分:Handler,MessageQueue以及Looper,三者共同协作,完成消息机制的运行.本篇文章将由浅入深解析Android消息机制的运 ...

最新文章

  1. 微服务业务系统(Biz-UI)的中台构建之路
  2. 谷歌量子计算登上Nature封面,首次实现量子优越性,里程碑式突破
  3. Windows安装梯度提升开发库LightGBM
  4. mysql-备份及关联python
  5. 微云 linux_编年史与微云
  6. Python数据分析之全球人口数据
  7. Java并发AtomicIntegerArray类
  8. 计算机组成第五章课后答案,计算机组成原理第五章答案
  9. 00 VirtualBox安装Windows7 32位系统
  10. laravel下载文件
  11. 电路图:LM3886 BTL功放电路图
  12. 44.Linux君正X1000-添加st7789v显示
  13. 后盾网php视频教程迅雷下载,DEDE织梦实战+迅雷看看前端开发项目+HDPHP视频 后盾网三套经典PHP开发实战课程...
  14. 都说ADAS不好用,那智能后视镜和车载智能行业该如何走下去?
  15. JS中可以表示数字的最大值
  16. 031:vue+openlayers加载GPX数据(代码示例)
  17. 关于invalid picture 的解决办法
  18. 再探Handler(上)(Handler核心原理最全解析)
  19. 制作视频数据集(一):截取视频帧
  20. Soul应用提取聊天记录【2021年中】

热门文章

  1. Execl模板导出复杂Execl文件
  2. 音频转文字软件推荐:哪款工具让你的听写更加高效
  3. 《剑指Offer》Java刷题 NO.36 两个链表的第一个公共结点(链表,等长拼接法,长者先行法,辅助栈)
  4. Oracle通过imp导入dmp文件相关
  5. 阅读笔记 - Pointer Network
  6. JVM性能调优监控工具hprof使用详解
  7. 推箱子小游戏——c/c++实现
  8. 与AI一起享受创作音乐的乐趣| Mixlab人工智能音乐
  9. ulimit 命令详解
  10. 基于遗传算法的PID参数整定研究(七)