天天看點

Android 8.0 推出了Project Treble,最大的變化之一是 HAL binderized

https://www.ithome.com/html/android/338386.htm

IT之家12月12日消息 此前一加的從業人員在海外官方論壇上解釋了為何旗下現有的任何裝置更新安卓8.0後都無法支援Project Treble,簡單來說就是如果支援該功能的話裝置有變磚的風險,現在一加官方工程師在國内論壇也進行了詳細解釋,不妨來看一下。

Android 8.0 推出了Project Treble,最大的變化之一是 HAL binderized

官方原文:

各位加油:

大家好!

我是一加的軟體工程師,近期看到部分加油對Android O提出的一些疑問,我現在針對這些問題給大家做出解答。

首先可以和大家肯定的一點是,一加申請更新Android O時就經過了谷歌嚴苛的認證,并且得到了授權,請大家放心。

首先我們來看看關于Treble的問題。

1、Treble是什麼?

Treble的完整寫法是Project Treble,是谷歌在Android O開始定義的一個技術架構,服務于Android版本的更新,我們相信并認可這是一個很好且非常令人興奮的技術架構。

2、Treble的作用?

對于終端廠商來說,Treble架構的定義能夠幫助廠商更快更便捷地通過谷歌定義好的架構進行Android大版本的更新。而對于使用者來說,Treble是不會有任何使用感覺和功能實作上的展現。

Treble是Android O上新引入的架構,但Treble并不是更新到O的必要條件。Treble的目的就是為了快速更新,而我們已經在用自己的方式成為最早跟進和釋出Android O的廠商之一。

3、我們的選擇

Treble需要增加一個分區,将system和vendor相關的鏡像分開,便于能友善地更新和更新system,并且不依賴vendor等底層。      但是,由于Android N和以前的Android版本并沒有強制要求廠商進行分區,我們前期的産品沒有這個額外放置vendor image的分區,如果部署完整的Treble,我們要通過OTA修改裝置的分區布局。那麼在這個更新分區過程中,會清除掉使用者手機裡所有的資料和資料,并且裝置會有一定機率變磚的風險。這個體驗對于使用者來說風險太大,我們在内部衡量之後,決定不在目前的OnePlus産品上跟進Project Treble。

目前我們部分的子產品是follow HIDL(Binderized)設計,并且在後面的更新中會持續完善。

Android 8.0 推出了Project Treble,最大的變化之一是 HAL binderized

谷歌官方關于Treble的連結:https://source.android.com/devices/architecture/treble

另外,還有個加油比較關心的問題:關于底層是7.1.1。

Android 8.0 推出了Project Treble,最大的變化之一是 HAL binderized

參考連結:https://developer.android.com/guide/platform/index.html

首先我們先以最簡潔明了的方式來了解一下安卓系統的架構,如上圖(來自于Google)。

System apps,我們常見的各種App,包括浏覽器、短信、Launcher等,這些是各manufacture可以定制最多的地方,可以自己控制修改,也可以follow Google。

Frammework/Native libraries/Android Runtime,提供App需要使用的API及各種控件,runtime是Android的核心庫,為Android應用跨平台使用提供的可靠方案,每個app都會有自己獨立的運作空間和虛拟機。

HAL/Kernel及子系統,主要與manufacture和chip vendor相關,manufacture提供HAL的實作以及各種硬體裝置的驅動和內建chip vendor提供的firmware。

Android O對我們吸引力最大的地方之一就在重構的HAL,将HAL binderized化,可以幫助manufacture減少工作量,當然也幫助Google推行最新的Android版本。

那麼manufacture是怎麼更新的呢?

我們将framework+apps稱為system部分,hal實作及kernel部分成為vendor部分。更新過程中,Google要做的事情就是改善system部分(AOSP),及APP體驗、重構/修改framework、增加功能、提升性能、提升安全等級等,有時候會對runtime做做重大的重構,比如art替換dalvik等,這部分是使用者能感覺到的,Google有時候會小小地修一下HAL的接口。manufacture在更新過程中會做一些工作讓它性能更好、更穩定,增加一些定制的新功能(如黑屏手勢、指紋支付、省電方案等),功耗的優化等系統優化,還要做的是維護HAL的實作,但因為硬體并沒有變化,在沒有特别需求的情況下,kernel、driver、firmware隻會做一些性能或者穩定性上的維護,并且讓Android能穩定的跑在這個平台上,同時穩穩妥地讓使用者更新。

Google一直被Android版本的碎片化困擾,Google希望OEM廠商能快速更新最新的Android版本,推出了Project Treble,最大的變化之一是HAL binderized化。

大家所了解的底層其實指的是硬體驅動(包含firmware),Android版本更新原則上與硬體驅動沒關系,7.1更新8.0 Android沒有特别需要修改底層支援才可以用的功能。

假設Google推出了8.1或者9.0,驅動依然是這個驅動,當然如果需要性能、穩定性優化,會做一些更新,驅動(包含firmware)并不會因為Android版本的更新而産生大的變化,因為硬體并沒有變化。

我們是(國内)最早跟進和釋出Android O更新的廠商之一,我們的軟體團隊緻力于為使用者提供高品質和穩定的Android重大版本更新,我們也一直尋求未來能進一步提高我們軟體品質和更新速度的方案。特别感謝一直鼓勵鞭策我們的使用者,謝謝你們,我們仍會繼續更新我們的産品,也和大家一樣,期待着Project Treble對我們未來的産品有更好的支援。

謝謝!

繼續閱讀