总说iPhone运行流畅不卡,Android就很卡?
本文來自太平洋電腦網(wǎng)
買手機(jī)時(shí),最常聽到的建議是,有錢就買蘋果吧,用幾年都不會(huì)卡。所以即便是蘋果新款手機(jī)賣出超出市面上絕大部分手機(jī)近一倍的價(jià)格,依舊有許多消費(fèi)者會(huì)為之買單。因?yàn)樗麄兿嘈牛O果的手機(jī)能用上更長的時(shí)間而且擁有絕佳的體驗(yàn)。
事實(shí)上,的確是如此,盡管安卓旗艦的配置和體驗(yàn)越來越好,但蘋果似乎還是維持著在手機(jī)界的霸主地位。本篇文章就為大家講述 iOS 為什么能做到持久不卡而 Android 卻頻繁卡機(jī)。
全面屏手勢——“更流暢的動(dòng)畫效果”
iOS 的設(shè)計(jì)和體驗(yàn)一直是有口皆碑的,特別在 iPhone X 之后的全面屏手勢體驗(yàn)上,目前來說,還沒有安卓的手機(jī)能完完整整做到 iOS12 上全局手勢上的跟手度,而系統(tǒng)各處的動(dòng)畫效果比如打開控制中心、在多任務(wù)處理時(shí)進(jìn)行輕掃,或在 app 中滾動(dòng)瀏覽,這些操作都會(huì)更流暢、更靈敏。
Android 盡管擁有各種各樣的快捷操作、自定義手勢,全面屏手勢,動(dòng)畫效果,但整體上的視覺效果并比不上 iOS 帶給用戶的流暢、完整、跟手。所以第一印象很容易會(huì)給消費(fèi)者帶來 Android 手機(jī)比不上蘋果手機(jī)流暢的感覺。而事實(shí)上,造成這種現(xiàn)象的原因源于很多底層的原因,下文一一細(xì)說。
流程更簡短,優(yōu)先響應(yīng)級別
當(dāng)我們使用 iPhone 或者是 Android 的智能手機(jī)時(shí),第一步就是從鎖屏解鎖進(jìn)入到桌面,然后找到需要使用的 APP 點(diǎn)擊進(jìn)入。
這是絕大部分人使用手機(jī)時(shí)候的基礎(chǔ)操作,這個(gè)時(shí)候 iOS 系統(tǒng)就表現(xiàn)出來了流暢的一面,但 Android 產(chǎn)品卻經(jīng)常給人一種卡頓的現(xiàn)象,特別是后期使用手機(jī)時(shí)候點(diǎn)開的軟件多了的時(shí)候,Android 就遠(yuǎn)遠(yuǎn)不如 iOS 流暢。這是為什么呢?
這與兩個(gè)系統(tǒng)的響應(yīng)優(yōu)先級有關(guān),iOS 對屏幕反應(yīng)的優(yōu)先級是最高的,它的響應(yīng)順序依次為 Touch>Media>Service>Core 架構(gòu),簡單說當(dāng)用戶觸摸屏幕之后,系統(tǒng)就會(huì)最高優(yōu)先去處理屏幕顯示,也就是觸摸(Touch)這個(gè)層級,然后才是媒體(Media),服務(wù)(Service)以及 Core 架構(gòu)。
而 Android 系統(tǒng)的優(yōu)先級響應(yīng)層級則是 Application>Framework>Library>Kernal 架構(gòu),和顯示相關(guān)的圖形圖像處理這一部分屬于 Library。也就是說當(dāng)你觸摸屏幕之后,Android 系統(tǒng)首先會(huì)激活應(yīng)用,調(diào)用框架然后才是屏幕最后是核心架構(gòu)。
所以 iOS 能讓人從上手就感受到跟手,流暢,因?yàn)?iOS 從一開始開發(fā)就是為觸摸屏幕交互所設(shè)計(jì),而 Android 則不同,Android 的設(shè)計(jì)初衷是為了軟件 APP 而開發(fā)。不過優(yōu)先級對系統(tǒng)流暢性是有影響不假,但這并不是最主要的原因,造成兩系統(tǒng)之間流暢性不一的現(xiàn)象還有其它因素,我們可以接著往下看。
硬件加速
如果說從系統(tǒng)底層優(yōu)先級響應(yīng)上,iOS 已然做到了為流暢而生,那么在硬件上,iPhone 也與 Android 手機(jī)不同。iOS 系統(tǒng)對圖形的各種特效處理基本上都是基于專用的 GPU 硬件進(jìn)行加速的,它可以不用完全借助 CPU,而是通過 GPU 進(jìn)行渲染以達(dá)到更流暢的操控表現(xiàn)。
而 Android 則不是如此,一方面原因是 Android 需要適配不同硬件以滿足各種差異配置,一方面 Android 的設(shè)計(jì)邏輯并不是為了觸控服務(wù)。當(dāng)然,在 Android 4 之后的系統(tǒng)版本中,都默認(rèn)開啟使用 GPU 硬件進(jìn)行加速渲染,但依舊無法做到所有特效全部都靠 GPU 進(jìn)行加速。
屏幕最先響應(yīng)的優(yōu)先級關(guān)系再加上 iSO 本身 GPU 加速程序的特性,使得用戶在操控過程中感覺 iOS 手機(jī)擁有著超高的流暢性和舒適度。因?yàn)?iOS 本身的整個(gè)設(shè)計(jì)流程都是在為最大化的流暢做服務(wù),不管是第一印象的滑動(dòng)觸摸屏幕,還是你進(jìn)一步使用程序時(shí)的操作都是如此。最后加上 GPU 加速這點(diǎn)特性,使得 iOS 能軟硬件結(jié)合,使系統(tǒng)流暢性達(dá)到 Android 手機(jī)望塵莫及的高度。
后臺(tái)機(jī)制——“偽后臺(tái)”與“真后臺(tái)”
如果說 iOS 在觸摸屏幕上做到軟硬結(jié)合已然不錯(cuò),但 iOS 與 Andorid 在軟件運(yùn)行時(shí)的流暢度不同,則是因?yàn)榱硪粋€(gè)明顯的區(qū)別:后臺(tái)機(jī)制。
iOS 是采用偽后臺(tái)機(jī)制,當(dāng)用戶按 HOME 鍵(主頁鍵)退出應(yīng)用時(shí),iOS 其實(shí)關(guān)閉了該應(yīng)用,只保留應(yīng)用的圖像入口,并默認(rèn)將應(yīng)用的最后運(yùn)行數(shù)據(jù)記錄在 RAM 中,當(dāng)再次打開應(yīng)用時(shí),系統(tǒng)就會(huì)把之前保持的最后運(yùn)行數(shù)據(jù)還原到應(yīng)用中,此時(shí)應(yīng)用還原了之前的狀態(tài),給用戶一種應(yīng)用會(huì)在后臺(tái)運(yùn)行的錯(cuò)覺。
那么為什么 iOS 中被殺死的應(yīng)用也能收到推送消息呢?因?yàn)橛脩魪膽?yīng)用中選擇了開啟推送后,iOS 系統(tǒng)會(huì)增加幾個(gè)進(jìn)程,這幾個(gè)進(jìn)程會(huì)從蘋果的服務(wù)器接收信息,然后再通過該服務(wù)器發(fā)給用戶,蘋果服務(wù)器在其中就起到了中轉(zhuǎn)的作用。正是因?yàn)橛辛诉@一系列的機(jī)制,所以即便 iPhone 的“表面”配置 RAM 比安卓手機(jī)低,但是 iOS 還是會(huì)給人更加流暢的感覺。
而 Android 則不同,Android 采用的是真后臺(tái)機(jī)制,將應(yīng)用保留在 RAM 中,當(dāng)用戶按主頁鍵返回桌面或者退出程序時(shí),程序?qū)嶋H上并沒有完全退出,而是被系統(tǒng)掛在了后臺(tái)。這就是為什么 Android 即便關(guān)掉了聊天軟件,依然能收到消息通知,因?yàn)樗浅qv系統(tǒng)內(nèi)存的,包括平時(shí)收到的垃圾廣告推送,也是因?yàn)楹笈_(tái)程序在運(yùn)行。
這機(jī)制直接導(dǎo)致從內(nèi)存使用上來看,Android 剛開機(jī)時(shí)內(nèi)存使用很低,正常使用一天,如果不進(jìn)行清理內(nèi)存操作,內(nèi)存占用就會(huì)越來越高,導(dǎo)致 Android 系統(tǒng)的流暢度降低,最直觀的感受就是卡慢。所以安卓機(jī)器需要更大的 RAM,來提升用戶體驗(yàn);
開發(fā)機(jī)制不同
iOS 的編程語言是 Objective-C,使用編譯器 GCC,而 GCC 編譯出來的代碼又被 iOS 架構(gòu)優(yōu)化到了極致,運(yùn)行過程中不需要虛擬機(jī)在中間插手,執(zhí)行效率非常高。而且 GCC 使用內(nèi)存是自己分配和回收的,簡單說就是當(dāng) GCC 要操縱指針,使用完內(nèi)存,當(dāng)時(shí)就釋放了。這導(dǎo)致了 ios 的內(nèi)存使用率并不是特別高。所以 iOS 并不需要特別大的內(nèi)存。
Android 的編程語言是 Java。Java 的內(nèi)存管理是通過 jvm,jvm 是后臺(tái)管理內(nèi)存,不需要程序關(guān)注內(nèi)存。達(dá)到一定的內(nèi)存占用量會(huì)觸發(fā) gc,gc 會(huì) stoptheworld,把用戶線程停止掉。因此可能會(huì)影響兩方面,第一在 gc 的時(shí)候卡頓,特別是長 gc。長的可能達(dá)到幾秒甚至幾分鐘。
第二,Android 本身不是為觸摸屏打造的,安卓所有的應(yīng)用都是運(yùn)行在一個(gè)虛擬的環(huán)境中,由底層傳輸數(shù)據(jù)到虛擬機(jī)中,再由虛擬機(jī)傳遞給用戶 UI,任何程序都可以輕松訪問其他程序文件。同時(shí) gc 是后置的,內(nèi)存占用達(dá)到一定程度才回收內(nèi)存,這導(dǎo)致了 Android 的內(nèi)存使用率很高。當(dāng)然,谷歌也意識(shí)到了這一點(diǎn),所以在 Android 4.0 系統(tǒng)版本之后的版本,編程語言和機(jī)制已經(jīng)被 Android 進(jìn)行了改善,卡頓現(xiàn)象明顯降低了。
應(yīng)用開發(fā),封閉式的 App Store
App Store 是 iPhone 和 iOS 一個(gè)極為重要的標(biāo)志,App Store 不僅為蘋果實(shí)現(xiàn)了軟件上的盈利,更為 iOS 中的應(yīng)用設(shè)置了一個(gè)標(biāo)準(zhǔn)要求,讓每一個(gè)應(yīng)用程序一年都只適配一種最多兩種 CPU,極大的提高了硬件利用效率和軟件開發(fā)速度。
而 Android 則不同,安卓是開源的,開放的,而且安卓是基于 Linux 內(nèi)核和多線程的開發(fā)平臺(tái),開發(fā)成本低。此外,Android 沒有像 iOS 一樣的全封閉式 App Store,給開發(fā)人員相當(dāng)高的開發(fā)自由度,并且還兼容各種各樣的硬件,讓軟件從此可以天馬行空不受拘束。
iOS 和 Android 的應(yīng)用開發(fā)各有特點(diǎn),但也正是這些特點(diǎn)使 Android 也飽受“流氓”軟件的迫害,使得系統(tǒng)的流暢和整潔度遠(yuǎn)遠(yuǎn)比不上 iOS。當(dāng)然,Android 系統(tǒng)里也有很多良心軟件,在可見的未來,Android 系統(tǒng)對軟件的規(guī)范也會(huì)越來越強(qiáng),對“流氓”軟件的查殺也會(huì)一再改進(jìn)。
iPhone 越升越卡?Android 越用越卡?
其實(shí)蘋果手機(jī)也不是永遠(yuǎn)不卡的,簡單來說,iPhone 卡頓有兩個(gè)原因:第一種硬件太差,水平跟不上,說的就是已經(jīng)發(fā)布了多年的手機(jī),對比當(dāng)前性能差太遠(yuǎn),所以使用會(huì)有所卡頓;第二種就系統(tǒng)又更新了。升級最新的 iOS 系統(tǒng)會(huì)給手機(jī)運(yùn)行帶來一定的壓力,特別是已經(jīng)發(fā)布多年的 iPhone。
Android 越用越卡的原因除了是開發(fā)機(jī)制問題,更多的是 APP 造成的,主要是因?yàn)檎加脙?nèi)存、優(yōu)化不足、流氓軟件影響。既然是 APP 的問題,最終的解決方法就是盡量下載規(guī)范一點(diǎn)的 APP,避免一些流氓軟件內(nèi)置的互相喚醒、自啟、消息等權(quán)限。
總結(jié)
響應(yīng)級別、硬件加速、后臺(tái)機(jī)制、開發(fā)機(jī)制和應(yīng)用開發(fā)等不同的緣故,造成了以前一直到現(xiàn)在 iOS 比 Android 系統(tǒng)更為流暢的現(xiàn)象。安卓很多手機(jī)在不清理后臺(tái),硬件未更新的情況下,幾乎都會(huì)遭遇卡頓的體驗(yàn),尤其是打開軟件加載資源時(shí),在打開比較大的游戲時(shí),多應(yīng)用切換時(shí),或多或少的都會(huì)遇到卡頓甚至是重新加載應(yīng)用的狀況。
但好在硬件配置反超 iPhone 一大截的今天,Android 手機(jī)在軟件運(yùn)行流暢度和美觀上已經(jīng)擁有著不弱于 iOS 的體驗(yàn),特別是在 Android O 之后,谷歌也意識(shí)到了系統(tǒng)流暢度對體驗(yàn)的提升,也在逐步的改進(jìn)系統(tǒng) UI 的設(shè)計(jì)。而國內(nèi)對于 Android 深度定制的各家 UI,也同時(shí)擁有著基于 Android 的便捷操作和不差于 iOS 的美觀設(shè)計(jì)。
未來,在改進(jìn)了系統(tǒng)設(shè)計(jì)和擁有了強(qiáng)大硬件后的 Android,必定是撼動(dòng) iOS 的霸主地位的唯一騎士。目前,iOS 依舊是最為流暢和優(yōu)秀的手機(jī)系統(tǒng)。
總結(jié)
以上是生活随笔為你收集整理的总说iPhone运行流畅不卡,Android就很卡?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哀京东:并非第一次濒临绝境,但这次还能活
- 下一篇: 吉利汽车陷通用汽车魔咒?产品线过于复杂