為什么IOS設(shè)備RAM運(yùn)存遠(yuǎn)遠(yuǎn)小于Android設(shè)備,卻還能運(yùn)行得比Android設(shè)備流暢?

IOS的多任務(wù)是偽多任務(wù)了,應(yīng)用被切回后臺(tái)以后,系統(tǒng)就會(huì)將應(yīng)用休眠,此時(shí)應(yīng)用不占用cpu和內(nèi)存,此時(shí)保持運(yùn)行狀態(tài)的只有界面那個(gè)應(yīng)用。然而早期的IOS采用了這種沙盒機(jī)制導(dǎo)致qq微信無法接受消息,于是后來蘋果推出了消息推送功能,應(yīng)用廠商將消息推送給ios云,ios云再推送給用戶,目前中華區(qū)的ios云資料已經(jīng)由云上貴州代理。
而Android的多任務(wù)就相對(duì)比較真實(shí),其實(shí)相比windows也是不同的。應(yīng)用切回后臺(tái)以后,應(yīng)用會(huì)被停用,只占用內(nèi)存不占用cpu,但是Android系統(tǒng)為了防止用戶接受不到后臺(tái)通知,每個(gè)應(yīng)用切回后臺(tái)會(huì)開啟一個(gè)服務(wù),服務(wù)相對(duì)于應(yīng)用本身,同時(shí)占用內(nèi)存和cpu,但是占用比較小。簡(jiǎn)而言之,Android后臺(tái)有應(yīng)用和服務(wù)是同時(shí)存在,所以內(nèi)存占用非常大。但是Android有一個(gè)內(nèi)存閾值的概念,如果剩余內(nèi)存低于內(nèi)存閾值,系統(tǒng)就會(huì)根據(jù)應(yīng)用優(yōu)先級(jí)殺死部分應(yīng)用,有用戶反應(yīng)EMUI殺后臺(tái)嚴(yán)重,猜測(cè)是華為修改了內(nèi)存閾值。
理論上,Android應(yīng)用層是JAVA語言,運(yùn)行在google提供的虛擬機(jī)上,IOS應(yīng)用層是object-c,java虛擬機(jī)效率出了名的低,所以第一次打開應(yīng)用,IOS速度會(huì)快于Android。而在第二次打開以后,由于Android不會(huì)休眠應(yīng)用,應(yīng)用切換應(yīng)該是快于IOS的。
但是,事實(shí)上,由于碎片化和過分的服務(wù)啟動(dòng),Android設(shè)備運(yùn)行速度往往比不過IOS,甚至IOS系統(tǒng)反應(yīng)機(jī)制是view優(yōu)先于system,再加上IOS設(shè)備傳家的高觸控采樣率,使得IOS設(shè)備滑動(dòng)帶來的視覺體驗(yàn)非常流暢。另外,IOS強(qiáng)大的色彩管理使得根本不需要最優(yōu)質(zhì)的屏幕也可以調(diào)教出最優(yōu)質(zhì)的顯示效果之一。