安卓16GB運存領先蘋果近四倍,為何有人覺得流暢度不如蘋果?

為和平而唱


這也是一個老生常談的問題了,因為蘋果手機的ios系統和安卓系統底層架構不一樣,多任務運行機制也不一樣,簡單說的話,iphone同時運行多個APP需要的內存比安卓系統少得多,比如安卓系統8G內存所能達到的效果,對於ios來說可能只需要4G就差不多了,所以蘋果手機根本不需要太大的內存容量。

很多人說蘋果太摳門,為了利潤所以不用大內存,這的確也是一個方面,如今內存顆粒也不貴,一部iphone11pro賣8000多甚至一萬多,如果用8G內存就跟玩似的,但是蘋果始終是堅持硬件夠用就好,除了強大的A系列芯片,手機用的什麼閃存顆粒,用的多大內存,蘋果一般是不會宣傳的,至少不會把這些作為賣點。

而安卓手機市場競爭激烈,各大廠商必須拿足夠多的辦法來應對競爭,硬件參數的比拼便是其一,這幾年安卓手機內存容量甚至有的來到了12G和16G,甚至超過了主流電腦的內存容量,這裡面當然會有噱頭的成分,不過如果你覺得流暢度還是不如蘋果,我認為不太屬實,尤其是對於90Hz以上刷新率的中高端安卓機來說,流暢度應該更超iPhone。


嘟嘟聊數碼


現在智能手機品牌眾多,而且都非常有名,在競爭激烈的市場條件下,為了獲得更大關注度和銷量,各大手機廠商不斷給手機堆硬件配置,特別是安卓手機品牌,硬件同質化嚴重,因此只能把最頂級的硬件都給用上,比如現在上2K屏幕還不夠,必須120Hz刷新率,運行內存最低8GB,如今直接跳過10GB來到了12GB,三星S20 Ultra頂配版全球首發16GB LPDDR5運行內存,瞬間超越市面上80%的高端電腦內存,領先蘋果手機四倍。

安卓手機升級最快的硬件之一就是運行內存,小米,oppo,vivo等高通陣營的旗艦機都有12GB,三星為了保證技術優勢,先自己用16GB,半年後在下放給其它品牌。相反,iPhone就非常難,從iPhone7開始蘋果才做到一年一個G的增加,現在的iPhone11PRO系列為4GB,與三星S20 U頂配版形成1:4比例,小米等國產旗艦機也領先蘋果兩倍多一點。

然而很多網友卻說蘋果4GB比安卓8GB還流暢,和12GB、16GB的安卓手機沒有區別,甚至手機用了幾年後,蘋果4GB流暢度可以超過16GB安卓機。這種說法並非空穴來風,小編之前拿蘋果11ProMax(4GB內存)和S20 U版(16GB版本)、小米10Pro(12GB版本)對比,三星和小米並沒有因為超大內存而在流暢度方面領先蘋果。值得一提的是三星S20 U的系統動畫確實做到了媲美ios,非常流暢,或許是三星已經把16GB、120Hz刷新率、優化到位的ONE UI系統這三個參數完美結合。

iPhone和安卓機在運行內存上的差距是操作系統決定的,ios系統可以讓iPhone不需要太大的內存,就可以達到高流暢性,而安卓手機廠商只有不斷堆內存,才能保證手機流暢度更持久一些。ios系統能做到內存小、夠用而且流暢,主要有兩個原因,第一是ios系統消息推送機制,APP推送消息時,必須同一經過蘋果服務器,然後由蘋果服務器發送出去。安卓則不同,APP擁有各種權限,推送消息時必須獨立運行,因此即使安卓用戶清空後臺,實際上還有很多APP仍然處於進程狀態,導致運行內存莫名其妙的減少。比如8GB的手機,最理想可用狀態是5GB左右,一般都是4.5GB以下,這也就是為何很多安卓用戶吐槽運行內存只有一半可用,所以說安卓手機廠商只有上更大的內存,才能保證流暢。

第二是系統後臺機制不同,蘋果手機的後臺應用處於“凍結”狀態,不佔有內存,4GB內存可以完全用於正在運行的客戶端,目前一個手機APP超過4GB很罕見。安卓手機則不行,後臺和前臺所有軟件同時運行,運行內存需要更大一些,否則殺後臺很常見。不過從安卓6.0開始就有了很大改善,到現在的安卓10.0已經做得很不錯,高端旗艦機流暢性用起來和iPhone沒太大區別,當然這是使用一兩年左右,三年之後就會和iPhone形成明顯差距。

總之安卓系統不徹底改變運行機制,即使安卓手機的運行內存比iPhone大五六倍,流暢度也不會超過ios。






鄂北兄弟


安卓的16GB運存的流暢度和蘋果4G預存的流暢度對比,理論上來說安卓肯定是比蘋果要快的,但是為啥很多人用氣量覺得流暢度還是不如蘋果呢。

其實這跟系統有關係。

安卓系統對內存的掌控不夠絕對

安卓系統運存的使用取決於各應用進程的申請,為了規範申請,於是安卓對進程搞了一套管理規則。

安卓系統對進程的管理是基於進程的類型。

而進程的類型從重要程度分由高到低依次是:前臺進程、可見進程、服務進程、後臺進程、空進程。

1、前臺進程

顧名思義,前臺進程就是目前顯示在屏幕上和用戶交互的進程,在系統中前端進程數量很少,而這種進程是對用戶體驗的影響最大,只有系統的內存稀少到不足以維持和用戶的基本交互時才會銷燬前臺進程。因此這種進程重要性是最高的。

2、可見進程

可見進程也擁有一個可視化的界面,但是不能和用戶交互,通常可見進程在前臺進程的後邊,用戶退出前臺進程後就會顯示可見進程。

可見進程一般調用了生命週期方法OnPause(),可見進程比前臺進程重要性低,但是在交互方面影響還是很大,因為用戶可能隨時切換過去,所以系統不會輕易銷燬它。

3、服務進程

一個服務進程就是一個Service,它調用了startService,就是UNIX中說的守護進程,對用戶不可見,但是保證了一些重要的事件被監聽或者維持著某些狀態,比如網絡數據傳輸、後臺音樂播放、後臺下載資源等等。

這類進程在系統內存不足且為了保證前臺進程交互的順利進行的時候被銷燬。

4、後臺進程

這裡叫後臺進程可能會和一般意義上的後臺進程混淆,要說明的是,android裡的後臺進程是調用了OnStop()的,可以理解成在不可見進程,就是用戶暫時沒有和這個進程交互的動作,所以這裡後臺進程有點“待銷燬”的意思。

5、空進程。

這是一種系統緩存機制,其實就是個進程的外殼,當有新進程創建的時候,這個空進程可以加快進程創建速度,當系統內存不足的時候,首先銷燬空進程。

基本上只有基於這套規則,你就能申請到內存,理論上來說這樣是最可靠的,要多少申請多少,規規使用。

但是在國內則變味了,首先就是推送服務

國外能使用谷歌推送服務,但是國內由於某些原因使用不了谷歌服務,於是開始各手機廠商和軟件開始各顯神通。

首先是手機廠商,比如小米搞的小米推送,華為搞的華為推送,這些都是可以使用的,但是大多數開發者都不會使用,因為只能在小米或者華為手機上使用。

所以軟件開發者更喜歡使用第三方的推送服務或者自己實現推送服務,這樣就不用去做適配工作了,而且安全可控。

那問題來了,如果自己實現推送服務的話,必須要保證自己的APP隨身“活著”,於是一系列的保活方案出來了,比如在後臺播放無聲音樂,保留一像素頁面等等,這些操作的背後都是需要內存的,基本上所有APP都會做至少一種保活方案,那消耗內存是幾何級的。

工信部主推的統一推送聯盟,就是為了解決這種現象,既浪費資源又阻礙行業發展,但是目前統一推送聯盟還沒在市場正式使用,期待吧!

IOS系統對內存擁有絕對的權利

我覺得這是IOS系統與安卓的差別,這也算是閉源的一種好處吧。

IOS不允許APP有退出功能,所有APP的退出都由系統來決定。基本上APP只要退出到後臺超過10分鐘,就會被銷燬,但是會留下一張你當前的頁面,就是你雙擊Home鍵彈窗看到的APP截圖,這種被稱為“墓碑機制”。

所以即使蘋果內存在小,也不會卡頓的原因,理論上來說,IOS系統永遠只會運行一個APP,除了系統應用和哪些必須在後臺運行的APP(音樂APP,導航APP等)以外。

另外IOS又一套系統推送服務,所有的APP可以不用自己去實現推送,在APP後臺發出推送後,IOS系統接收到後會喚醒對應的APP,來處理推送。

總結

由於國內安卓系統推送服務不夠統一,導致各APP都實現保活方案,大量消耗內存,從而導致卡頓,另一反面由於國內軟件開發者的不規範開發,無節制申請內存,導致運行APP時卡頓。

而蘋果系統由於閉源且對內存擁有絕對的控制權,所以實現了一個系統同一時間只運行一個APP,這樣大大節省內存。

我是非著名攻城獅,希望我的回答對您有用,感謝您的點贊支持!


分享到:


相關文章: