本文约2559字,需4分钟阅读

Android手机诞生至今10年,发展过程之迅速比起PC市场有过之而不及,硬件上的长足发展让我们使用Android手机的体验越来越好。不过大家也发现Android系统对于手机内存的需求就像个无底洞,给多少用多少,眼下就看见市面几乎不见2GB内存的Android手机,这到底是为什么?究竟多大容量的内存才能满足Android的胃口?

Android系统使用内存多,究其原因,这是与Android采用Linux内核有密切关系,而Linux与windows在内存管理有着巨大区别。

提到Android的内存管理,我们不得不提起Linux内核,因为Android系统内核就是从Linux内核修改过来的,继承了Linux内核优点以及主题框架,同时Android为了适应移动设备需求,在文件系统、内存管理、进程间通信机智和电源管理方面进行了修改,添加了相关的驱动程序和必要的新功能。Android在很大程度上保留了Linux的基本架构,因此Android系统的内存管理与Linux具有很高相似度。

用着Android手机的你会发现,刚开机手机内存就占到一半以上,似乎空闲内存很少,大家就着急地开始狂杀后台进程释放内存,避免内存不够造成卡顿。虽然表面上内存不够用了,但其实这是Linux内存管理的非常优秀特性,Linux会无视物理内存容量,只要你给多大,它就会物尽其用,会把一些常用的数据从闪存上预先写入到内存中,利用内存高速的读写性能提高数据访问性能,间接地提高了我们应用启动、运行速度。

但我们常用的Windows系统却不是这样,它只有在需要用到内存的时候才会给对应的进程分配内存,所以你会有一种错觉,Windows不吃内存,而用Linux内核的Android却非常占用内存。

所以Android系统占用内存多其实是个好事情,去年手机内存4GB起步,到今年6GB起步,甚至出现8GB内存,Android都将能充分利用起来,发挥了硬件规格提升带来的好处,而Windows将其视为摆设,尽管你插满4根槽32GB内存。

这就是为什么我们的2GB内存Android手机,开机只剩500MB空闲,而4GB内存Android手机开机还是只有1.5GB左右的空闲内存,因为其内存管理用得太“精明”了,有多少用多少。

Android系统内存究竟是怎么调度的?——垃圾回收机制

我们都知道Android上的应用都是基于Java而来,每启动一个应用就会产生相应一个虚拟机,Android对这些dalvik虚拟机内存作出硬性限制,这个限制非常严格,早期Android就限制在32MB,目的是迫使应用程序使用较小内存,让内存常驻更多的进程,提高整个系统响应速度,而且程序启动时候不需要从闪存加载到内存中,启动速度自然提升。

但进程申请的空间超过上限阈值时,就会触发“内存杀手”规则,为了保护用户使用体验,只会按顺序销毁优先级较低的进程来释放物理内存,让新加入、高优先级程序获得更多内存。

但是一些大型应用程序,比如游戏真的很需要大内存怎么办?随着Android手机硬件疯狂升级,祖传2GB内存已经入不了厅堂,Google取消了32MB硬性要求,放宽上限。同时程序员是有办法绕开整个虚拟机内存限制的,但过程非常复杂,这里就不展开说,主要是利用了Android系统内的native heapsize不受限制特性。

那么按照目前我们使用习惯来看,Android系统到底多少GB内存才够用?

2008年第一台Android手机HTC Dream G1只有192MB的内存,十年后的今天已经出现了8GB内存的手机,难道40倍的内存增长才能够满足今天的应用需求吗?非也,只是对于Android系统来说内存是多多益善。

目前对于不同Android 7.0系统以上手机来说,手机开机后,光是“Android操作系统”、“Android系统”、“系统用户界面”等进程就占用了1.2-2GB内存,所以2GB内存手机必然频繁进行内存回收,进而影响到手机流畅度,所以2GB内存手机越来越少了。


三星Galaxy S8手机内存占用情况

作为一部智能手机,你不可能只用来打电话、收短信,微信、微博、支付宝等都是相当必要的手机APP,所以我们手机后台都普遍存在十数个应用。下面来看看常见手机APP的内存占用情况。

常规手机App对内存占用都在300MB左右,功能特别丰富的可能要到500MB,游戏普遍上1GB。

下面让我们来看看不同内存大小手机开机后的剩余内存,加上一些必要的应用内存占用,我们方可得到一个可供参考的内存需求量。

目前手机内存需求=Android系统必要+大型游戏+应用后台待机×15

                           =2000MB+1000MB+50MB×15

                           ≈3.75GB

可见4GB内存对于目前Android系统手机来说必不可少。既然4GB就够了,现在中端机普及6GB,高端上8GB意义何在?

非常有意义!因为APP对于内存占用是动态的,其中就包含了一些图片素材,对于1080P分辨率手机就加载1080P素材,而2K就加载2K素材,显然分辨率越高,素材容量越大,当然对内存占用越大。

你想想索尼还有4K分辨率的Xperia XZ2 Premium手机,内存越大,系统就不会频繁回收内存,减少CPU占用,提高流畅有莫大帮助。6GB/8GB内存显然更加游刃有余,况且厂商宣传上也好看。不记得“GT 630 4GB”的故事吗?而且内存越大越不一定代表手机性能越好!

好了,又到了总结陈词的时候啦。如果你平常就聊聊天、刷刷微博,玩玩《天天爱消除》、《欢乐斗地主》,4GB内存足矣;如果你喜欢玩《绝地求生》、《荒野行动》这类大型游戏,那么4GB内存的Android手机是起步而已。

另外关于手机内存,大家都有些疑惑,再来讲一讲题外话。

为什么越来越多手机都自带进程管理软件?

在内存剩余不多时打开大型程序时会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。

比方说你需要运行《绝地求生:刺激战场》这类大型游戏,对于内存占用必然是巨大的,如果你主动关闭一些没用的进程释放内存,可以确保大型游戏更为流畅的运行。但是正常情况下你是不需要去管它,由Android系统的内存管理模块自动管理即可。

内存里这么多进程待着,不会更加耗电吗?

Google早就考虑到这一点,当应用被切换到后台时,只会冻结它切换前最后一刻的运行状态,此时不会再消耗CPU资源,只有那种后台继续执行任务的应用才会消耗资源,比方说是你在后台播放音乐、导航之类的。因此这个设计本来就是为了适应手机多应用切换的,当你切换回程序时,不必再次加载界面资源,启动速度更快,体验更好。


  • monaibo等待验证会员 02-09 15:10

    我理解微软不升级就无法赚更多的钱。我无法理解为什么要一直让谷歌,软件商们带着我们一直跑。一直在追随,而没有沉淀。

    支持(0)  |   反对(0)  |   举报  |   回复

    42#

  • monaibo等待验证会员 02-09 14:57

    基于这样的内存机制,为什么安卓系统的厂商基本都是负优化呢?删掉很多不必要的自带软件,精简掉多余的主题壁纸,适当精简system/app,过多的媒体文件、某些中国人民完全用不到的lib,流畅度和待机时间都有很大的提升。没有黄油计划的4.0.4可以做到比4.1更流畅省电。各种不断庞大的操作系统实际又带来了多少提升?效率何在?所谓的持续不断优化改善又何在?仅仅只是在不断的升级与扩大。不是开玩笑,已经2019了,我依然用着4.0.4的手机,当国内的各大软件抛弃我的时候,我也过了需要他们的年纪。效率与精致,我的追求。 ...

    支持(1)  |   反对(0)  |   举报  |   回复

    41#

  • 游客  2018-05-29 05:05

    游客:

    越多越好,没有哪个人嫌弃运存、内存太多的!
    2018-05-04 09:18
  • 支持(2)  |   反对(0)  |   举报  |   回复
  • 如果内存使用不了,再多一万倍也没用,还是那个速度和体验!

    支持(1)  |   反对(0)  |   举报  |   回复

    40#

  • 游客  2018-05-29 05:02

    实际上windows从win7开始也差不多是这个德行!只不过比安卓程度轻!即越大的内存你的系统占用的内存越多!如果你只有1G内存,那么系统才占4-5百MB!如果是16G内存,系统轻松占1G多,甚至2G以上!
    还有狂人用128G内存测过系统占用率居然达到10G左右!也都是采用类似的预读取方式!实际上卵用也没有!
    真要有说的那么好,安卓早就在系统流畅度把苹果ios虐的哭爹喊娘了,实际情况正好相反 ...

    支持(5)  |   反对(1)  |   举报  |   回复

    39#

  • 游客  2018-05-26 19:27

    游客:

    然而辣鸡麒麟970玩不了游戏要内存有卵用吖,一跳下肥鸡就被苹果小米打爆菊花,吃不了鸡只有被吃鸡的份儿。
    2018-05-05 21:53 已有4次举报
  • 支持(2)  |   反对(3)  |   举报  |   回复
  • 游客:

    兄弟那是你智商问题
    2018-05-06 12:26 已有9次举报
  • 支持(7)  |   反对(5)  |   举报  |   回复
  • 除了智商问题,也可能是小脑发育问题

    已有4次举报

    支持(1)  |   反对(0)  |   举报  |   回复

    38#

  • 游客  2018-05-14 17:41

    简单来说HD分辨率的6G够了,2K以上的需要8G,游戏党标配8G

    支持(0)  |   反对(2)  |   举报  |   回复

    37#

  • 游客  2018-05-06 12:26

    游客:

    然而辣鸡麒麟970玩不了游戏要内存有卵用吖,一跳下肥鸡就被苹果小米打爆菊花,吃不了鸡只有被吃鸡的份儿。
    2018-05-05 21:53 已有4次举报
  • 支持(2)  |   反对(3)  |   举报  |   回复
  • 兄弟那是你智商问题

    已有9次举报

    支持(7)  |   反对(5)  |   举报  |   回复

    36#

  • 游客  2018-05-05 21:53

    然而辣鸡麒麟970玩不了游戏要内存有卵用吖,一跳下肥鸡就被苹果小米打爆菊花,吃不了鸡只有被吃鸡的份儿。

    已有4次举报

    支持(2)  |   反对(3)  |   举报  |   回复

    35#

  • 游客  2018-05-04 12:20

    王者荣耀最大1.1G

    支持(0)  |   反对(0)  |   举报  |   回复

    34#

  • 游客  2018-05-04 11:24

    我还真不需要后天开15个程序,10个怎么都够了,所以我现在红米4的备用机 3G内存也不卡

    已有1次举报

    支持(0)  |   反对(0)  |   举报  |   回复

    33#

  • yjhercules终极杀人王 2018-05-04 11:19

    ios也用,不过ios 问题是不舒服
    好处是普通人玩游戏 特别是游戏机模拟器 比安卓要好

    已有1次举报

    支持(2)  |   反对(3)  |   举报  |   回复

    32#

  • 游客  2018-05-04 10:57

    yjhercules 终极杀人王 :

    使用自动注销进程在开发者模式,
    另外国产软件都是后台服务和进程才是吃光内存的关键
    然后就是软件在后台做不为人知的操作,
    大数据 然后是各种推送 和占有
    相当于用户花钱买的手机 的资源 被别人非法占用
    解决办法 不装或者 用软件屏蔽
    这么说8g的手机 装lineageos 可用内存7g
    而且装自己的 5g多
    另外安卓的效率java运行机太弱
    你用安卓玩模拟器就发现
    2018-05-04 08:18 已有2次举报
  • 支持(5)  |   反对(3)  |   举报  |   回复
  • 请你继续用ios就行,安卓是不怎么好

    支持(0)  |   反对(0)  |   举报  |   回复

    31#

  • 游客  2018-05-04 10:27

    本评论因举报过多被折叠[点击展开]

    30#

  • 游客  2018-05-04 09:18

    越多越好,没有哪个人嫌弃运存、内存太多的!

    支持(2)  |   反对(0)  |   举报  |   回复

    29#

  • 游客  2018-05-04 09:10

    我觉得至少要128G以上了,60多G的对现在使用来说完全不够用,手机储存的东西实在太多了,各种资料图片的,都得存在手机里。楼主分享不错!

    已有8次举报

    支持(0)  |   反对(14)  |   举报  |   回复

    28#

  • 游客  2018-05-04 09:05

    哼,我现在养成习惯经常清理手机内存,目的可不是为了节省内存之类的,而是这些liumang不知道会在后台背着我做些什么

    支持(3)  |   反对(0)  |   举报  |   回复

    26#

  • 游客  2018-05-04 08:58

    多大内存不重要,关键是卡不卡。

    支持(0)  |   反对(0)  |   举报  |   回复

    25#

  • yjhercules终极杀人王 2018-05-04 08:41

    wps 看了txt小说 就成占800m内存
    rom占 2g
    没有办法 把txt 给做了分屏
    奇怪的是x86的安卓软件就ok
    同样的软件不卡 也不热
    也不占内存

    已有2次举报

    支持(0)  |   反对(0)  |   举报  |   回复

    24#

  • 游客  2018-05-04 08:19

    游客:

    看到一个微信就占了780M的内存,心里凉凉
    2018-05-04 00:42
  • 支持(1)  |   反对(0)  |   举报  |   回复
  • 微信占用是因为要加载聊天记录到内存上去

    已有1次举报

    支持(0)  |   反对(0)  |   举报  |   回复

    23#

  • yjhercules终极杀人王 2018-05-04 08:18

    使用自动注销进程在开发者模式,
    另外国产软件都是后台服务和进程才是吃光内存的关键
    然后就是软件在后台做不为人知的操作,
    大数据 然后是各种推送 和占有
    相当于用户花钱买的手机 的资源 被别人非法占用
    解决办法 不装或者 用软件屏蔽
    这么说8g的手机 装lineageos 可用内存7g
    而且装自己的 5g多
    另外安卓的效率java运行机太弱
    你用安卓玩模拟器就发现

    已有2次举报

    支持(5)  |   反对(3)  |   举报  |   回复

    22#

加载更多评论

回复
热门文章
1技嘉正式推出X570 Aorus Master主板:14相数字供电,热管直触散热
2猫头鹰展示D系列新款140毫米CPU散热器:更大散热片,能压400瓦
3现在的AMD X570就是传言中的X590,真正的X570芯片组胎死腹中
4玩家呼吁得到了回应:英特尔的Gen 11 GPU支持图像整数缩放功能
5AMD最新的APU家族又添新丁,9款还未公布的型号被发现
6AMD三代锐龙处理器和RX 5700系列显卡将与微软XGP捆绑售卖
7代号“001”,华为Mate20 X(5G)正式获得5G终端电信进网许可证
8Alienware创始人Frank Azor离职戴尔:将出任AMD首位首席游戏官
9微软的生产力工具不只有创作,Surface Book 3或让游戏玩家满意