iOS 11怕了!Android 8.0改進:告別卡、慢、耗電
一直以來人們都有這樣的印象,認為搭載 iOS 系統的 iPhone 一定比搭載 Android 系統的安卓手機流暢。潛移默化中,不少果粉甚至是普通吃瓜群眾都形成了這樣的思維定式:安卓就是卡、慢的代名詞。然而,就是這樣一個群眾眼中的“卡、慢”的系統,不知不覺間已經走過了第十個年頭。這么多年過去了這個觀點還成立嗎?
Android 8.0 不久前已經發布了,盡管 Android 對比 iOS 似乎有“先天缺陷”,但一直以來谷歌都在不遺余力地提升安卓系統的流暢度。我們不妨來看看谷歌在這方面都做了哪些努力。
Android 4.1:黃油計劃
2012 年 6 月,Google I/O 2012 開發者大會上,谷歌發布了 Android 4.1,該版本擔負著“承上啟下”的作用,4.1 系統繼承了 4.0 的基本特性,又加入了 Project Butter 的新特性。
Project Butter 中文稱為黃油計劃,Google 希望新版的 Android 如黃油一般絲般潤滑,所以稱之為黃油。該系統使用了新的處理架構,讓 Android 設備中的雙核、四核處理器能夠得到優化,發揮出強勁的性能。
其次,在 4.1 版本中,特效動畫的幀速提高至 60fps,優化最佳性能和較低的觸摸延遲,提供了一個流暢、直觀的用戶界面。
為了確保幀速一致,4.1 版本的 Android 框架所有的繪圖和動畫都將統一 VSYNC 計時,應用渲染、觸摸事件、畫面構圖、顯示刷新等操作都會鎖定在 16 毫秒響應,所有的幀都沒有提前或者落后。
此外,還新增三重影像緩沖技術,讓所有的渲染感覺更順暢。觸摸延時不僅會遵循 VSYNC 計時,還會在觸摸操作時做出預判是否要提前渲染,此外在 CPU 閑置時會分配更多的處理能力來應對觸摸事件,確保觸摸沒有延遲。
黃油項目(Project Butter)為我們帶來了 Android 系統的重大改進,谷歌終于開始直面 Android 系統流暢度這個古老并重要的問題了。
Android 4.4:對齊喚醒
其實,很多時候,安卓系統的卡頓并不是由系統本身造成的,而是由于安卓開放的特性例如對第三方 APP 限制較少,所以很多 APP 長期惡意在后臺運行,定期喚醒系統,隨著安裝的 APP 越來越多,各種 APP 會一窩蜂地喚醒系統,而每次喚醒都會讓 CPU 處于高負荷運轉狀態,導致手機待機時也非常耗電。
而 4.4 版本很明顯的針對這個問題而做出了優化,在該版本中加入了對齊喚醒功能,把原來需要分別在不同時間喚醒系統的多個 APP 集中在某個時間一次性喚醒。這樣,系統被喚醒的次數大幅減少,CPU 也不用頻繁的工作,手機也就不會這么卡頓和耗電了。
Android 5.0:ART 虛擬機
一直以來,Dalvik 虛擬機背負著 Android 應用卡頓的罪名,原因則是應用在運行的過程中,虛擬機 Dalvik 通過一個叫 JIT(Just-in-time)的解釋器動態的進行編譯并執行,這一過程也拖慢了運行效率。而在 5.0 版本中,原有的 Dalvik 虛擬機被新的 ART 虛擬機代替。
Android Runtime(縮寫為 ART),是一種在 Android 操作系統上的運行環境,由 Google 公司研發。ART 能夠把應用程序的字節碼轉換為機器碼,是 Android 所使用的一種新的虛擬機。它與 Dalvik 的主要不同在于:Dalvik 采用的是 JIT 技術,而 ART 采用 Ahead-of-time(AOT)技術,也就是預編譯技術,安裝應用的時候,代碼中的字節碼將被編譯成機器碼。
而由于有了機器碼,下次打開的時候就不需要再編譯了,這就提高了運行效率,APP 啟動速度明顯加快。ART 同時也改善了性能、垃圾回收(Garbage Collection)、提高續航能力、應用程序除錯以及性能分析。
Android 6.0:Doze 嗜睡模式
4. 4 的對齊喚醒已經對后臺 APP 做出了一定限制,但是顯然對于那些“毒瘤 APP”顯然是不夠的,為了杜絕“毒瘤”APP 不斷在后臺消耗資源和電量,6.0 版本加入了 Doze 嗜睡模式,在 Doze 模式中,系統嘗試去通過減少應用的網絡訪問和 CPU 敏感的服務來保護電池。它也阻止應用通過訪問網絡,并且延緩應用的任務、同步和標準 alarms。
同時系統定期退出 Doze 模式(maintenance window)去讓 app 完成他們被延緩的動作。在 maintenance window 期間,系統運行所有掛起的同步、任務和 alarms,同時也能訪問網絡。只要用戶通過移動、點亮屏幕或則插上充電器喚醒設備的時候,系統會退出 Doze 模式,所有的 APP 退回到正常活動狀態。
Android 7.0:優化系統代碼
如果說前幾代 Android 是在改善應用環境,提升應用體驗的話,那么 7.0 版本就是優化 Android 的運行環境了,谷歌表示,7.0 版本會是最具銷量的一代 Android 操作系統,7.0 版本主要通過減少代碼的形式來提升運行速度,Android N 的代碼減少了 50%,新的代碼減少 50%,軟件運行速度提升幅度達到 600%,應用安裝提速 75%。
自從 Android5.0 換了 ART 虛擬機開始,因為安裝時要對大量的代碼進行預編譯,應用安裝速度一直被用戶詬病,Google 終于在 Android7.0 上解決了這一問題。
此外,7.0 版本另一個優化是,每次手機升級完系統之后不用等待漫長的應用優化過程,直接就可以進入系統。
Android 8.0:針對低配設備的 Android Go,系統/應用啟動優化
8. 0 相對前幾個版本而言,沒有特別大的提升,畢竟 Android 已經第十個年頭了,發展已經非常的成熟。8.0 版本主要是細節的優化和體驗的提升。
8. 0 版本加入了 TensorFlow Lite 技術,可以幫助低功耗設備跟上當今高強度任務處理,利用新的神經網絡 API 幫助底層芯片加速數據處理。這一功能有助于為下一代在線設備提高語音處理,視覺搜索,增強現實等能力。簡而言之,就是一個內置在系統的機器學習工具。
同時,8.0 版本還針對應用啟動的進程進行優化,包括并發進程、壓縮收集的垃圾信息和代碼區域等。此外還有針對后臺服務的限制,防止應用程序在后臺運行太久。目標是大大減少電池消耗。
另外,針對配置較低的移動設備,谷歌還推出了 Android Go 的系統,它不是一個獨立分支的 Android 版本,而是隸屬于 Android O,可以用于 1GB RAM 的設備上,例如為了節省性能,原來系統中吃內存的過渡動畫被砍掉,同時還針對 Android Go 開發適配版應用,比如 油Tube Go。
如果你認為這個系統只是做減法,那你就錯了,在有些方面,谷歌甚至還為 Android Go 添加了功能,比如數據管理,這個對低端機來說十分重要,谷歌會將這個功能添加到快捷設置中。該系統預計 2018 年正式面世。
如今 iOS 11 也已經發布了,從某些更新內容來看,是對安卓功能的“借鑒”。所以安卓系統在功能性或者可玩性上甚至超過了 iOS。由于底層系統的先天不足,導致流暢性在早期落后 iOS 很多,但隨著谷歌孜孜不倦地優化與更新,Android 在流暢性方面真的未必輸于 iOS,卡頓、慢和耗電已經逐漸成為歷史。所以,已經存在大家腦海中 10 年的安卓“卡、慢、耗電”的標簽,是時候該抹去了。
來自: 驅動之家