為什么安卓機沒有iPhone流暢?
為什么iPhone?6內(nèi)存僅有1GB,而很多安卓機配置相當高了,還是覺得iPhone流暢一些? 相信很多網(wǎng)友都有類似疑問,感覺安卓手機在流暢度上不如iPhone手機。先不說一些配置低的安卓機,即便是最新版安卓系統(tǒng)的旗艦手機,也會感覺達不到iPhone手機的那種流暢度,因此有人以此判斷安卓手機不好。 其實,這都是二者系統(tǒng)機制不同導(dǎo)致的差異。 渲染機制不同 Android沒有iOS流暢的根本的原因是,iOS的UI渲染采用實時優(yōu)先級,而Android的UI渲染遵循傳統(tǒng)電腦模式的主線程普通優(yōu)先級。 通俗點說就是iOS對屏幕反應(yīng)的優(yōu)先級最高,用戶只要觸摸屏幕,系統(tǒng)就會最優(yōu)先處理屏幕顯示這個層級,馬上給出動畫效果,然后才處理媒體、服務(wù)、核心的架構(gòu)。 而安卓則是追求進程優(yōu)先,觸摸屏幕后的手機屏幕顯示和動畫效果放在比較后的優(yōu)先級。同樣打開相同的網(wǎng)頁,Android手機就會直接將整個網(wǎng)頁全部加載同時渲染HTML,這無疑就增加了處理器的壓力。因此對于Android來說,一個高效的雙核處理器是很重要的。 在iOS中UI渲染過程具有絕對的優(yōu)先等級,當用戶接觸到iPhone的觸摸屏后,iOS中所有的進程都將停止,UI線程攔截了所有的事件,系統(tǒng)會將所有資源用于渲染UI過程,以保證用戶界面的實時渲染優(yōu)先級。 而在Android系統(tǒng)中UI渲染過程的優(yōu)先級別卻沒有那么高,也就是說當你觸摸Android手機屏幕的時候,系統(tǒng)后臺的程序并沒有停止,仍然在繼續(xù)運行之中,比如下載和查收短信,這樣系統(tǒng)UI獲得的資源就不夠,這就是Android系統(tǒng)不流暢的原因。 后臺機制不同 安卓手機的后臺是真后臺,像PC一樣,將應(yīng)用保留在RAM中,當使用HOME鍵退出應(yīng)用時,程序?qū)嶋H上并沒有完全退出,而是被系統(tǒng)掛在了后臺,為何我們關(guān)掉了聊天軟件依然能夠收到消息通知,因為它常駐系統(tǒng)內(nèi)存。包括平時收到的一些垃圾廣告推送,也是因為后臺有程序運行。 所以這就導(dǎo)致了一個現(xiàn)象,從內(nèi)存使用上來看,安卓剛開機時內(nèi)存使用很低,若不進行清理內(nèi)存操作,正常使用一天,內(nèi)存占用會達到75%以上。而內(nèi)存占用越高,使用起來流暢度就會越低,所以安卓機器需要更大的RAM來提升用戶體驗。 而iOS呢,其實是采用的偽后臺,當用戶HOME鍵退出應(yīng)用時,iOS其實關(guān)閉了程序,只保留應(yīng)用的圖像入口,只會默認將應(yīng)用的最后的運行數(shù)據(jù)記錄在RAM中。 之所以iOS也能收到推送,是因為當用戶從應(yīng)用中選擇開啟推送之后,系統(tǒng)會增加一些進程,這些進程會從蘋果服務(wù)器接收信息,然后再通過服務(wù)器發(fā)給用戶,蘋果服務(wù)器在這里是起到了中轉(zhuǎn)的作用。而正是因為有了這一系列的機制,所以即便iPhone的配置相比于同類安卓機低了很多,但是iOS還是會給人更加流暢的感覺。 iPhone執(zhí)行程序的效率比安卓機高 另外,安卓系統(tǒng)的編程語言是Java,特點是通用性強,效率低。而iOS的則為Objective-C,專一性強,效率高。 iOS系統(tǒng)本身優(yōu)化得很好,而且程序也是直接執(zhí)行,所以效率很高。而安卓系統(tǒng)是通過Java虛擬機來執(zhí)行,系統(tǒng)需要占用大量內(nèi)存來換取執(zhí)行速度,也就是要繞了個大圈才執(zhí)行程序,所以效率低很多。 廠商喜歡給iPhone做優(yōu)化 由于iOS的封閉性,App Store里面的App都是在iPhone等產(chǎn)品上執(zhí)行,硬件利用效率非常高,而且分辨率大小,硬件的更新等等參數(shù)也比較穩(wěn)定,優(yōu)化工作也容易進行,因而iPhone上的App和硬件結(jié)合程度比安卓高很多。 安卓手機的硬件配置一樣天天變,開發(fā)者也不可能針對所有的機器型號進行開發(fā),只能在比較主流的機器上進行測試并保證運行流暢,所以很多國產(chǎn)中低端安卓手機很難得到流暢的使用體驗。
該文章被收錄于:
編程器 ? https://www.chinafix.com/zt/1877-1.html
Q:為什么感覺iPhone 6內(nèi)存僅有1GB卻比很多高配置安卓機流暢?
A:這是因為二者系統(tǒng)機制不同,包括渲染機制、后臺機制不同,且iPhone執(zhí)行程序效率比安卓機高,同時廠商喜歡給iPhone做優(yōu)化。
Q:iOS和Android渲染機制的主要區(qū)別是什么?
A:iOS的UI渲染采用實時優(yōu)先級,對屏幕反應(yīng)優(yōu)先級最高,用戶觸摸屏幕,系統(tǒng)優(yōu)先處理屏幕顯示層級并給出動畫效果,再處理其他。而Android的UI渲染遵循傳統(tǒng)電腦模式的主線程普通優(yōu)先級,追求進程優(yōu)先,觸摸屏幕后屏幕顯示和動畫效果優(yōu)先級靠后。
Q:Android手機在渲染網(wǎng)頁時與iOS有什么不同?
A:同樣打開相同網(wǎng)頁,Android手機會直接將整個網(wǎng)頁全部加載同時渲染HTML,增加了處理器壓力;而iOS在UI渲染過程具有絕對優(yōu)先等級,會將資源優(yōu)先用于渲染UI。
Q:為什么Android系統(tǒng)觸摸屏幕時沒有iOS流暢?
A:在Android系統(tǒng)中UI渲染過程優(yōu)先級別沒那么高,觸摸屏幕時系統(tǒng)后臺程序沒有停止仍在運行,導(dǎo)致系統(tǒng)UI獲得資源不夠,所以不流暢。
Q:安卓手機和iOS的后臺機制有何區(qū)別?
A:安卓手機的后臺是真后臺,應(yīng)用保留在RAM中,使用HOME鍵退出應(yīng)用程序未完全退出,會常駐系統(tǒng)內(nèi)存。iOS采用偽后臺,用戶按HOME鍵退出應(yīng)用時關(guān)閉程序,只保留應(yīng)用圖像入口和最后的運行數(shù)據(jù)記錄在RAM中。
Q:為什么安卓手機剛開機內(nèi)存使用低,正常使用一天內(nèi)存占用會很高?
A:因為安卓手機后臺是真后臺,應(yīng)用常駐內(nèi)存,即便退出應(yīng)用仍有程序在后臺運行,所以正常使用一天內(nèi)存占用會達到75%以上。
Q:為什么iOS能收到推送消息?
A:當用戶從應(yīng)用中選擇開啟推送之后,系統(tǒng)會增加一些進程,這些進程會從蘋果服務(wù)器接收信息,然后再通過服務(wù)器發(fā)給用戶,蘋果服務(wù)器起到中轉(zhuǎn)作用。
Q:安卓系統(tǒng)和iOS執(zhí)行程序效率不同的原因是什么?
A:安卓系統(tǒng)的編程語言是Java,通用性強但效率低,通過Java虛擬機來執(zhí)行,要繞個大圈才執(zhí)行程序。iOS的編程語言為Objective - C,專一性強,效率高,系統(tǒng)本身優(yōu)化得好且程序直接執(zhí)行。
Q:為什么iPhone上的App和硬件結(jié)合程度比安卓高?
A:由于iOS的封閉性,App Store里面的App都在iPhone等產(chǎn)品上執(zhí)行,硬件利用效率高,分辨率、硬件更新等參數(shù)穩(wěn)定,優(yōu)化工作容易進行。
Q:為什么很多國產(chǎn)中低端安卓手機很難得到流暢使用體驗?
A:安卓手機硬件配置天天變,開發(fā)者不可能針對所有機器型號開發(fā),只能在主流機器上測試并保證運行流暢,所以很多國產(chǎn)中低端安卓手機很難獲得流暢體驗。