01:為什麼更新慢
安卓和iOS儼然已成為全球兩大移動操作系統,尤其是安卓,佔據了智能手機87.7%的市場,和iOS一同,瓜分了99.9%的江山
這就相當於,每賣出八部智能手機,就有七部是安卓
安卓倡導開源,即代碼公開,廠商可以自由定製修改,比如定製UI(用戶界面),優化刪減底層代碼
iOS則堅持閉源,系統只給自家產品使用,代碼也不對外開放
而安卓一直以來也給人一種流暢度不如iOS的感覺,近年來的確差距在減小,主流旗艦的流暢水準已經相當接近iOS,甚至在軟件開啟速度上已經超越,不過,除了遊戲
但是有一點一直是安卓的阿喀琉斯之踵,也許這輩子都達不到iOS的高度
安卓升級速度慢,並且無法做到全機型同步升級
最新的數據,iOS 12的整體安裝率已經達到了75%,甚至連2013年的iPhone 5s都能運行。你能想象三星S4或者NEW HTC One運行安卓9.0的場景嗎
一部安卓手機,要升級系統需要經歷怎樣的艱難險阻,一起圍觀下
1、谷歌向廠商提供PDK(開發工具包),以便測試新的軟件架構(新系統發佈前的測試)
2、谷歌召開I/O大會,發佈新版安卓系統,介紹新特性,最新的是安卓9.0,代號為Pie
每年的安卓系統都有個名字,從安卓1.5 Cupcake開始,每年的安卓都會以甜點命名,相傳,項目主管喜歡點心
並且從cupcake開始,都是按字母順序排列下去的,下一代應該就輪到Q上位了,QXXXX
3、谷歌向手機廠商和芯片製造商提供源代碼
4、製造商通過代碼進行相關硬件以及芯片的適配,注意,並不是所有芯片都會去適配!這個要看心情...之前OPPO,vivo還在用聯發科的時候,聯發科不給適配,結果那一代手機無法升級系統
5、手機廠商獲得修改後的BSP,即板級支持包,有了這個才能加載BootLoader,安卓的HAL(硬件抽象)層才能工作,需要注意的是,HAL是存在於User Space中的,而不是在內核中的
因為內核是用GPL協議的,需要公開代碼,User Space使用的是Apache,並不需要
硬件抽象層都是關於各個硬件的參數等商業機密,所以是放在User Space中的
因此,光移植內核,機器是無法工作的,因為完整的驅動在HAL裡,在此提醒大家刷機時不要亂刷內核...因此,與其稱安卓是開源,不如說是開放系統比較合適
6、硬件能用之後,手機廠商就可以進行對系統的改造計劃,改UI,替換內置軟件,增加自己的功能
這個根據各個廠商的改動程度不同,需要不同的時間,國內一般都是改動比較大
並且,就算是同部手機,也有不同的版本系統,比如三星在美國,中國,日本以及南美國家是使用驍龍處理器,配備索尼相機傳感器
而其他地區是用自家的Exynos處理器,攝像頭也是自家傳感器。硬件差異自然會帶來系統的不同
再來便是運營商定製問題,雖然經過群眾不懈的努力,國內已經基本消滅了定製機,但在國外,定製機可是很吃香的
定製機不免就要對軟件進行定製,甚至網絡也要做適配甚至“閹割”
7、整體調試完,這就完事了?當然沒那麼簡單。這最多算個beta版,還需要通過召集用戶進行公測,經過多個beta版更新,修復各類bug
8、最後,在確保各項功能性完整,無重大已知bug的情況下,這才能將系統通過OTA或者固件形式進行推送,之後還要不斷做維護,修復新出現的bug
整個過程確實還是比較複雜的,從中也可以看出作為手機廠商,工作量非常巨大,每一個系統的更新背後都是無數人的努力
所以也別總吐槽系統bug,一堆代碼,總是會有bug出現,修復了,也會有其他的出現
由此,系統升級慢完全是事出有因,情有可原。一方面,硬件供應商需要大量的適配,另一方面,手機廠商需要做大量的定製化修改
而這些,也都是基於安卓機型配置錯綜複雜,例如全面屏手機各種奇葩的分辨率
但最令人揪心的不是速度慢,而是無法給所有設備統一更新,瞅瞅隔壁家iOS,全球升級一個系統
02:不能統一升級
這其中主要還是因為安卓開源後有太多版本,修改了底層,進行了定製
這就好比天子將天下分給了諸侯,諸侯通過自我發展,日益強大,最後對天子的命令視而不見
但天子就是天子啊,為了阻止諸侯們肆意妄為,不聽指示,也是為了維護自己的權威。天子對天下進行了改造,發佈了Project Treble項目
以前安卓升級的問題在於手機廠商需要等待硬件廠商的驅動更新,並且需要SoC廠商(比如三星,高通,華為麒麟,聯發科等)重新構建HAL層,這一時間非常漫長
03:Project Treble
而Project Treble則是直接將安卓框架從供應商的硬件代碼中分離,但是,這並沒有解決全部問題啊
手機廠商仍然需要對底層進行更新,並且還是依賴於那些提供大部分代碼的SoC廠商
為了解決剩下的問題,谷歌決定將HAL進行了劃分,分成了多個HIDL(硬件定義語言),比如音頻,攝像頭,顯示,傳感器,如下圖
有什麼用呢,這樣一來,HAL層不用等SoC廠商重新構建,直接可以替換系統框架,直接發佈更新
現在,新的安卓只需要設備和未改動的硬件供應商進行兼容,測試兼容性則是利用谷歌發佈的VTS,供應商測試套件
通過兼容之後,手機廠商再修改自己的UI,進行自我風格的定製,畢竟不是每個人都喜歡原生安卓的風格,之後在添加自己的軟件,測試完成後就可以發佈更新
簡而言之,Project Treble讓手機廠商擺脫了對SoC廠商的依賴,讓手機能更快完成硬件適配
雖然,無法做到像谷歌pixel一樣,立馬獲得安卓版本的更新,但還是縮短了整個設備的更新週期
然而,手機廠商對這個項目的支持度並不友好,雖然在安卓8.0的時候,Project Treble就已經集成在系統中,但是當年的三星S8卻並不支持
即便是支持的三星S9(海外版),目前也只是剛剛獲得安卓9.0的更新
但目前,谷歌已要求,所有預裝安卓9.0的手機,必須支持Project Treble特性
安卓想要解決碎片化還有很長的路要走,Project Treble已經為我們提供了可行的思路,接下來則需要手機廠商和硬件廠商的共同配合
極客修,值得信賴的手機快修平臺!
閱讀更多 極客修 的文章