为什么 Android 比 iOS 需要更多的 RAM?
本质上两种系统的机制不同造就差异
现在市面上推出的 Android 手机 RAM 配置越来越高,有些高端、旗舰机型甚至比一些笔记本还要高,而且还是一种常态现象,举例来说,Pixel 6 Pro 配置 12GB,iPhone 13 Pro 则配置 6GB RAM,iPhone 13 仅靠 4GB 就能撑全场,效能上却不分上下,这到底是为什么?
为什么 Android 比 iOS 需要更多的 RAM?
在进入主题之前,我们先来了解什么是手机的 RAM。 RAM (Random Access Memory,随机存取内存)是系统的短期数据储存区,分为很多种类,但以智能手机来说所采用的是 SDRAM(同步动态随机存取内存),它与闪存不同,手机的 RAM 只能在手机启动状态时保留数据,本质上来说它是手机的工作记忆,包含设备在任何时间使用的信息。
当手机的 RAM 越高,在工作内存中保留的东西越多,当你打开其它应用或是同个应用中的其他内容时,你的手机会为每个工作进程分配可用的 RAM。 当你的 RAM 已经分配完没有剩余时,你的设备就必须决定结束那些进程来让所有正在进行的工作顺利运作。 在其他条件相同的情况下,配备8GB RAM的手机会比4GB RAM的手机保持更多活动状态的进程,所以在AMAM更高的手机上会觉得工作之间的切换更快。
为什么 Android 需要比 iOS 更高的 RAM?
这个问题其实没有单一明确答案,但却有几个原因造成这种现象。
首先,Android 和 iOS 的建构方式不同,每年相较于 Android 手机市场的百花齐放,在 Apple 手上只有少量几款新 iPhone 和 iPad 推出,且系统都是在相似的硬件架构上运作。 由于iOS应用程序只能在少数同质性芯片组上运作,因此可以利用所谓的原生程式语言(特别是 Swift 和 Objective-C)为这些芯片进行开发工作。 为 iOS 应用程序编写出来的代码可以不经转译就变成 Apple CPU 可理解的指令。
另一方面,Android所支持的机型几乎是无限数量,这些机型所使用的芯片组来自四面八方,像是高通、三星、联发科和其他厂商,而它们架构各部不同,必须确保应用程序在每一种芯片组都能正常运作。 由于无法确保与所有不同硬件设备的兼容性,因此 Android 应用程序采用像是 Kotlin 和 Java 这样的程式语言所开发,这些语言可以转换成通用语言,然后二次转译成无视硬件环境只为软件运行的字节码之后再传输给芯片组。 与直接运行原生代码的iOS相比,在转译后又进行二次转译成字节码的过程需要占用额外的资源,这也就表示在 Android 和 iOS 上同时运行看起来相同的应用程序时,前者所需要的可用 RAM 更高。
两个操作系统管理 RAM 的方式还不太一样。 Android 采用一种称为「垃圾回收」的内存管理方式,这个过程会定期试着清除 RAM 中不再使用的内容来释放资源。 iOS 则是利用 ARC 来管理内存,根据引用它们的其他对象数量自动帮 RAM 中的对象分配一个数值,并且将数值达到 0 的对象删除。 由于垃圾回收仅定期扫描未使用的对象,因此可能导致无用的信息短暂累积在 RAM 中,相比之下,ARC 没有这个问题,只要侦测到不需要的对象就会从内存中删除。
更高的 RAM 是坏事吗?
由于 Android 和 iOS 操作系统的工作方式不同,对 RAM 的需求自然也不同。 Android 操作系统比起 iOS 更灵活,无论是在哪款设备上都可以运行,开发者也更有操作弹性,不过这种灵活性就是需要更高的 RAM 作为代价,以获得与 iPhone 相似的效能。 尽管Android可能需要更多的AM,但如果制造商能够提供价格与同级iPhone相近甚至更低的旗舰产品,那么更高的RAAM对用户来说并不一定是坏事,在消费者眼中更可能是一个排除价格因素之外的优势。
