手機流暢的多工處理所需的理想 RAM 量是一個頗有爭議的話題。 Apple 的 iPhone 尺寸較小,通常比 Android 解決方案更實用。您在 iPhone 上也找不到任何類型的 RAM 記憶體管理,而 Android 有其專用的功能。
例如,如果您使用三星 Galaxy 手機 納斯塔韋尼 -> 設備保養,您將在此處找到 RAM 指示器,其中包含有關可用空間和已佔用空間的資訊。點擊菜單後,您可以看到每個應用程式佔用了多少內存,並且您還可以在此處選擇清除內存。 RAM Plus 功能也位於此。其含義是,它將從內部儲存中咬掉一定數量的 GB,用於虛擬記憶體。你能想像 iOS 上有這樣的事情嗎?
智慧型手機依賴 RAM。它用於儲存作業系統、啟動應用程式以及將一些資料儲存在高速緩存和緩衝記憶體中。因此,RAM 的組織和管理方式必須使應用程式順利運行,即使您將它們放到後台並在一段時間後再次打開它們也是如此。
斯威夫特 vs.爪哇
但是,當啟動新應用程式時,您需要記憶體中有可用空間來載入和運行它。如果不是這種情況,則必須騰出該位置。因此系統會強制終止一些正在運行的進程,例如已經啟動的應用程式。然而,這兩個系統(即 Android 和 iOS)對 RAM 的使用方式有所不同。
iOS 作業系統是用 Swift 編寫的,iPhone 實際上不需要將已關閉的應用程式中使用過的記憶體回收回系統中。這是由於 iOS 的構建方式造成的,因為 Apple 對其擁有完全控制權,因為它只在 iPhone 上運行。相比之下,Android是用Java編寫的,並且在許多設備上使用,所以它一定更通用。當應用程式終止時,它佔用的空間將返回給作業系統。
原生程式碼對比虛擬機
當開發人員編寫 iOS 應用程式時,他們將其直接編譯成可以在 iPhone 處理器上運行的程式碼。該程式碼稱為本機程式碼,因為它不需要解釋或虛擬環境即可運作。另一方面,Android 則不同。當Java程式碼被編譯時,它被轉換為與處理器無關的Java字節碼中間程式碼。因此它可以在不同製造商的不同處理器上運行。這對於跨平台相容性具有巨大的優勢。
當然,也有一個缺點。每個作業系統和處理器組合都需要一個稱為 Java 虛擬機器 (JVM) 的環境。但本機程式碼的效能比透過 JVM 執行的程式碼要好,因此使用 JVM 只會增加應用程式使用的 RAM 量。因此 iOS 應用程式使用的記憶體較少,平均為 40%。這也是為什麼蘋果不必為其 iPhone 配備與 Android 裝置一樣多的 RAM。
我不完全是專家,但我會從一個使用 Android 15 年、現在使用 iPhone 2 mini 兩個月的用戶的角度來描述我的觀點。在具有13GB 內存的Android 上(最近是三星S8、Flip21),我通常會在一段時間後返回到之前啟動的應用程序,並且它仍然加載在RAM 中,因此它不會重新開始,我可以順利地繼續我的工作離開了。另一方面,即使有 3GB 內存,我每週都會“關閉”所有應用程式一次以清除 RAM,因為內存滿後系統開始變慢。我沒有遇到iPhone 速度變慢的問題,但另一方面,我必須說,當我使用幾乎相同的應用程式時,相反,當我回到以前啟動的應用程式時,我經常會遇到這樣的情況:它再次完全加載,我無法順利地從上次中斷的地方繼續。
哪個選項比較好?很難說......殺死 Android 上的應用程式並清除 RAM 只需點擊兩次即可。在 iPhone 上再次加載整個應用程式並不那麼耗時,所以也沒有那麼重要...當然,iPhone 上有更多 RAM 並像 Android 上那樣進行多任務處理是理想的選擇 :-D
媽的,又蠢了。一方面,Android 已經很久沒有用 Java 來實現了,而這正是 Kotlin 的用途。垃圾收集器負責內存,這在iOS中是最簡單的,但也有缺點。整個事情是,一旦你把應用程式從螢幕上移開,iOS就會殺死它們。這會釋放內存,就像在 Linux 上鍵入殺死進程的 pid 一樣。這就是為什麼要花這麼長時間才能打開瀏覽器並返回到之前的工作。本文是一位毫無編程知識的 iOS 狂熱愛好者對 X 年前文章的逐字翻譯。是的,當然,記憶體管理主要是程式設計師的責任,應用程式做什麼。如果他咳嗽了,世界上就存在內存洩漏,即使你擁有 X Gb 的內存,但它仍然沒有用。而在很多應用程式都只有WebView的時候,這很簡單,因為它本身就吃它能吃的東西。文章純屬廢話,垃圾。
Android不再使用jvm,而是使用dvm。此外,它也會將其編譯為本機可執行文件
Android 中仍然有 Java。