每日最新頭條.有趣資訊

為何安卓不如iOS流暢? 這或許是根本原因所在

為什麽安卓手機越用越卡,而蘋果手機沒事?我想這個問題大多數人都存在疑問,我們在使用安卓手機的時候通常會安裝一些清理軟體並且經常清理手機,但清理效果確不盡人意。用時間長了還是覺得越來越卡,這到底是為什麽?

想要解決問題我們就要先找到問題的根源來對症下藥。其實,安卓系統就像一本畫冊,每一頁是一個動作。當我們連續翻動每一頁時就會看到畫上的人物就像真正動起來一樣。在安卓系統操作時也像這樣,以極快的速度去生成銷毀一張張圖片來實現界面間的切換。

這裡有三個動作畫面,走、跑和跳。三個動作連環播放,從走這個動作的銷毀到跑的生成這個時間可能需要0.01秒(這個時間只是舉例)如果這個時間小於0.01秒那麽就會生成跑這張畫面,如果這個時間大於0.01秒就不會生成跑而是直接生成跳這張畫面。所以我們看起來就會有卡頓的感覺。

那麽為什麽會出現超出這個時間的情況呢?

原因就在於

1、ios系統和android系統架構的設計

ios的系統架構設計是Touch--Media--Service--Core

android系統架構設計同樣是四層Application--Framework--Libraries--Kernel

從架構設計我們可以看出ios的對於螢幕的響應(Touch層)優先級最高,android和ios同時進行螢幕操作,ios系統會優先處理Touch也就是螢幕響應處理層。而android系統是在第三層的Library處理螢幕響應操作。中間經過了第一層的application(應用層)和application Framework(應用框架層),這就直接導致了CPU的數據運算量加大,因為數據運算量增大那麽超過0.01秒這個時間段的可能性就會增大,就有可能出現卡頓的現象。當然這個問題通過系統的優化以及硬體配置提升可以得到一定程度的降低,但是差距還是存在。

2、iOS的GPU加速

現如今的手機CPU性能已經達到一定的高度,那麽廠商如果想進一步提升手機性能,從GPU入手是一個很明智的選擇。像我們國產的麒麟955和960,在CPU方面960比955並沒有提升多少,主要提升還是圖形處理性能也就是GPU。

遊戲是衡量手機性能的很重要的指標。像3D遊戲等大型軟體對GPU的要求特別高。ios系統對各種圖形特效的處理基本都是基於GPU硬體進行加速的,它對CPU的借助很少,完全通過GPU進行渲染。而android並非如此,雖然在android4.1以上都已經默認開啟了硬體加速,但其還是無法做到真正靠GPU進行加速。為了滿足硬體的多元化,大部分還是靠程式本身進行渲染,並且嚴重依賴CPU,使CPU運算負荷增加從而導致卡頓現象。

3、記憶體回收機制不同

ios的記憶體可以通過Object-C自行控制釋放,它的記憶體管理機制會將活動較少的程式盡快推出,在有新的應用加入時首先判斷記憶體是否夠用,如果不夠用首先進行清理釋放記憶體。

而android-java沒有進程可以自行控制釋放記憶體,應用退出時並不清理其所佔用記憶體所謂“退出但不關閉”,它會把應用程式全部保存到記憶體中,空閑的記憶體也多用於緩存,直到記憶體達到一定程度才激活記憶體回收。這也是導致android系統卡頓的原因之一。

4、android廣播接收器(broadcast)

Broadcast是一種廣泛應用於應用之間傳輸資訊的機制。而BroadcastReceiver可以接受並響應Broadcast,BroadcastReceiver可以在系統中進行注冊,只要注冊完成在事件來臨時,系統會自行啟動程式。也就是說用戶關閉某應用後,只要關於此程式的某些進程發生變化,那麽在用戶不知道的情況下系統自動啟動該應用。

既然Broadcast是應用和應用之間傳輸資訊的機制,那麽,應用軟體之間的關聯關係也會導致同品牌應用之間的頻繁喚醒,當然這些只是後台進程用戶是看不到的。一些問題可以使用某些優化管理軟體比如綠色守護等等得到緩解,但是根本性的問題還是需要根本上解決。

獲得更多的PTT最新消息
按讚加入粉絲團