最近我一个好朋友跟我吐槽,买了一台新手机,为了多用几年所以特意买的8G内存的版本,但是结果用了没几天就出现看着视频来了条微信,结果回复完消息,切回视频就要重新打开了。
OPPO
那么为什么会出现这种问题呢?耐心看完,我想你肯定会有所收获,喜欢的话给我点个关注喵。
首先我们说的Windows系统,他的内存机制是一种在全部内存耗尽的时候才会尝试杀进程。如果有学计算机的小伙伴,可能会有这样的经历过,那就是在开多个虚拟机或者是开大型软件的时候会出现电脑突然卡顿,然后黑屏的情况,过一会儿然后恢复。这个就是Windows最常见的内存占用完毕之后的杀进程的情况。
电脑Windows
决定这个特性的是因为windows是一个从设计开始就是一个为重量级的多任务的系统,设计的时候不仅仅是为了娱乐,还有就是生产力。Windows是从DOS发展来的,DOS时代,内存是一个非常奢侈的东西。而且还为了解决内存不够用的问题,还会拿硬盘做虚拟内存。所以Windows的特性就是,只要操作系统所需要的最低内存,就不会出现内存不够用的情况。
电脑华为
但是到了我们的Android的时候就不一样了,别说你8G内存了,就算是你有16G内存,你占用了1G内存也会被杀掉。就算是占用量非常小的程序,就算是只占用了几十M也有被杀掉的可能。但是打开后台会发现,系统内存还有大量的内存是可以用的。那么这个是怎么回事呢?
这个东西就是和Android系统的一个优先级还有一些其他相关的东西相关,这个相信一些开发者是很了解这个东西的。
Motorola
当然这只是其中一个原因。关于这个杀后台进程其实和内存的大小的关系不大,Android的一个内存机制就是本来就没想让你用满所有的内存。还有一个最重要的就是厂商对于后台的管理,特别是vivo和emui,可电脑以说是特别激进的杀后台的策略,经常听小伙伴说玩游戏的时候,打开游戏的活动,然后返回游戏就要重新进游戏了。
说到另一方面,为什么Android会这样,但是Windows不会呢?这个就要从他们不同的方向说起了。首先我们的手机和笔记本电脑是比较类似的产品。我们的笔记本把盖子盖上之后,默认是进入休眠状态的,这个是时候是什么事情都不做了。这些应用程序也是真的停止了,类似于后期Android手机加入的冻结休眠后台。这个时候电脑是不需要去担心什么后台应用的影响休眠时长的问题的,所以这类操作系统是不需要暴力的杀后台的。
电脑vivo
但是Android就是不一样了,当我们的手机关闭屏幕之后,部分应用还是继续要运行的,因为不在后台那么你就会收不到消息。所以很多应用为了更好地服务你(给你推送广告),所以就要努力地让自己在休眠(冻结)状态变成是需要运行的状态。这样你的手机的续航能力就会变得差,那么手机厂商往往就会对后台管控比较的严格。反而国外的一些厂商对于这类倒不是很严格,但是会出现耗电更多的情况。
这个是因为Android设计之初就是一个轻量级系统,并不是一个作为生产力的工具,所以没想到要运行那么多的APP,毕竟现在的发展是当时不能预料的。
所以现在看很多Android的特性是设计不合理的,但是放在塞班时代却是合理的,所以好在Android不是一个随意安装的系统,所以可以凭借淘汰设备去淘汰一些特性。换句话说就是Android不需要和Windows一样去背负那么多的历史包袱。
oppo findx
也有小伙伴会说,那么Android是基于Linux的,那么是可以有虚拟内存的。但是这个一般是不开启的。Android并不打算把自己当做一个彻底的多任务系统,实际上只有应用电脑可以呈现在前台,但是一个应用在后台当认为内存不足或者是你的优先级不高的时候,就会被杀掉,这个在用户来看也是"理解"。
总的来说,这是这两个系统设计的目标策略不同而导致的。一个要求运行的程序不受限制,而可以忍受响应缓慢;另一个要求响应速度必须快,而可以忍受内存不足时杀掉一些后台程序。
电脑