当前位置: 首页 > 科技观察

别做强迫症:Android多任务机制科普

时间:2023-03-17 15:32:45 科技观察

为什么不需要清内存?那时候,清理内存的习惯由来已久。在Android诞生之前,我们在使用Windows的时候,总是急于关闭所有不用的进程,以免“占内存”,不“占CPU”,电脑才不会“卡死”。(大多数“安全软件”以帮助用户清理Windows上的内存和垃圾而闻名)这就是清理内存的历史原因。但是,与Windows相比,Android有着完全不同的内存管理机制……背景:Android是基于Linux内核,继承并完善了Linux的内存管理机制。Android的内存管理机制:有多少内存就用多少,所有空闲的内存都用作缓存。即当一个进程停止active时,Windows会将其从内存中清除,而Android会将该进程保留在内存中,这样下次启动会非常快,因为这样节省了再次从存储设备读取的时间,Android会清除只有当没有足够的内存来启动新进程时,某些不活动的进程才会驻留在内存中。每个进程作为Java虚拟机独立存在,互不干扰。保证Android的稳定性。一般情况下,即使单个进程崩溃,整个系统也不会崩溃,永远不会出现内存不足的提示。以上可以解释为什么Android的剩余内存总是很少的原因。“但是,在后台运行进程会耗电和流量吗?”这就继续解释了……Android的多任务机制:当一个进程切换到后台时,系统会挂起该进程。它不消耗cpu资源,只在内存中保持运行状态,根据应用本身设置优先级。七个优先级:前台进程。顾名思义,就是你当前屏幕正在显示的进程。可见的进步。需要随时待命的进程,比如需要随时调用的输入法。主要服务。系统所需的服务,例如电话。次要服务。与系统密切相关的服务,如Gmail的邮件推送服务。后台处理。也顾名思义就是刚刚切换到后台的进程。内容供应节点。没有应用实体,只是提供内容给其他应用使用,比如日历供应节点,邮件供应节点等空进程。过程中没有任何运行。一些应用程序退出后,进程中仍然会有一个空进程。这是为了提高下次应用的启动速度或者记录一些历史信息。结语综上所述,普通用户应用程序退出后,要么变成后台进程,要么变成空进程。这些进程已经挂起,不占用CPU资源和电力。当内存不足,用户需要打开另一个应用时,会自动清除,根本不需要清理内存。相反,有时系统在清理内存后需要使用大量的电量和CPU来重新启动必要的进程。但是为什么有的应用程序在关闭后仍然很耗电和流量呢?***答案是它是一个不安分的应用程序。应用作者在写应用的时候,为应用申请了各种主次服务,导致应用在用户退出后还继续运行。(所以后台运行最稳定的就是那些你拉下通知栏的“XX电池医生”和“XX手机助手”)这种现象在国内的一些应用中尤为常见。面对这些乱七八糟的无良APP和APP作者,果断卸载,冲进臭水沟,差评!