为什么不需要清内存?

想当年,清内存的习惯由来已久。在 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 时,总巴不得把所有没有用到的进程关掉,这样才不会"占内存",不会&quo ...

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

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

  3. 理解Android Binder机制(3/3):Java层

    本文是Android Binder机制解析的第三篇,也是最后一篇文章.本文会讲解Binder Framework Java部分的逻辑. Binder机制分析的前面两篇文章,请移步这里: 理解Andro ...

  4. Android架构分析之Android消息处理机制(一)

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android版本号:4.4.2 在这个系列文章中我们将来分析Android消息处理机制. 本文介绍了一个使用Han ...

  5. android decorview动画,Android窗口机制(二)Window,PhoneWindow,DecorView,setContentView源码理解...

    Android窗口机制系列 前篇文章中出现了PhoneWindow,DecorView这些类,如果是第一次见过的话,肯定会觉得陌生.这篇文章主要跟大家讲解Window,PhoneWindow,Deco ...

  6. Android广播机制:Broadcast

    转载:Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广 ...

  7. 理解 Android 消息机制

    本人只是Android小菜一个,写技术文章只是为了总结自己最近学习到的知识,从来不敢为人师,如果里面有不正确的地方请大家尽情指出,谢谢! 本文基于原生 Android 9.0 源码来解析 Androi ...

  8. Android 系统(266)---细数利用android系统机制的保活手段

    Android 进程常驻(2)----细数利用android系统机制的保活手段 这是一个轻量级的库,配置几行代码,就可以实现在android上实现进程常驻,也就是在系统强杀下,以及360获取root权 ...

  9. Android 系统(51)Android窗口机制

    Android窗口机制(四)ViewRootImpl与View和WindowManager 2017年01月15日 15:25:49 阅读数:259 在前篇第(三)文章中,我们讲到了在DecorVie ...

最新文章

  1. AI 一分钟 | 独角兽旷视被爆明年一季度上市;阿里达摩院再得顶级大牛,计算机理论最高奖得主马里奥加盟量子实验室
  2. Java监听器用法(三):外部类监听器
  3. 【转】删除过期数据通用程序
  4. SAP系统配置常用命令大全
  5. 00075_BigInteger
  6. java回调如何理解_如何理解java中的回调
  7. Unity3d 手机屏幕自动适配
  8. 二叉树相关知识及求深度的代码实现
  9. Python--JSON基础
  10. PCR之父凯利·穆利斯:有才,真的可以为所欲为
  11. 27 Server Sockets
  12. 提前11秒,AI让神经科学家预知了你的决定
  13. java Array入门
  14. 2017.11.21 MS Power BI training
  15. [2018.10.10 T3] 三米诺
  16. 编写区块链游戏学智能合约 教程1:搭建僵尸工厂
  17. 大学转计算机专业申请理由,大学转专业申请书
  18. github上传代码全部流程
  19. 计算机丢失lame,libmp3lame64.dll
  20. 拿什么拯救你的硬盘?十大绝招帮你忙

热门文章

  1. 安装SQL Server2008和Visual Studio2008 提示:该服务器上安装了以前版本的VS2008
  2. 计算机教师试讲结束语,2021教师资格面试信息技术试讲稿:《网上交流的安全》...
  3. 【电子学会】2021年12月图形化三级 -- 分身术
  4. SugarORM框架又一坑--“Cursor finalized without prior close()”问题解决
  5. 计算机入门游戏,计算机DIY从入门到精通:不同用户怎么选择合适自己的CPU
  6. Windows下 find 参数错误
  7. C#控制台/梅花易数一撮金小游戏的教学
  8. 各种二叉树的叶子结点和分支结点
  9. 【满分】【华为OD机试真题2023 JAVAJS】AI处理器组合
  10. 游戏自动化测试工具GAutomator上手