現在市面上推出的 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 的手機保持更多活動狀態的進程,所以在 RAM 更高的手機上會覺得工作之間的切換更快。
為什麼 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 可能需要更多的 RAM,但如果製造商能夠提供價格與同級 iPhone 相近甚至更低的旗艦產品,那麼更高的 RAM 對用戶來說並不一定是壞事,在消費者眼中更可能是一個排除價格因素之外的優勢。