漫談android系統(9)-androidO的Android Treble 計划與大的變動


Android O的大變更

Android O這次來了一個大手筆,谷歌的人第一次到下游廠商進行宣導,並指出了並開始向各家廠商灌輸谷歌的新理念:

徹底解決Android版本碎片化的問題

我有幸參加了這次宣講,雖然由於臨近國慶沒有拿到谷歌爸爸的PPT。

讓我聽到最多的字眼是,解決大家升級難的問題,因為每次在升級android的時候,BSP不光要關心底層,還需要不斷的關心framework層的一些變動,雖然這樣能夠更加深度地定制,但其中消耗的人力資源是無法想象的,因此有很多廠商在手機僅升級了3代就拒絕再向用戶升級大版本了。因而一直被大家所詬病。

這種事情很無奈啊,你要更新了,但我們的產品已經下架了,維護它是需要成本的,而且升級后鬼知道會不會有其他問題,索性許多廠商就直接拒絕再大版本更新。

谷歌估計也是看到了這一點,所以也想統一做這件事情吧。

當然如果看到這篇文章的大牛們有研究過Google Chromebooks研發過程,你就不會有多少驚訝了,因為chromebooks早已經開始這么玩了。

Android Treble 計划

Android O 引入一個新的計划被命名成“Android Treble ”,按照谷歌的定義,這個計划的目標是”The Android 8.0 release includes Project Treble, a major re-architect of the Android OS framework designed to make it easier, faster, and less costly for manufacturers to update devices to a new version of Android. Treble is for all new devices launching with Android 8.0 and beyond (the new architecture is already running on the Developer Preview for Pixel phones).” 簡單翻譯一下就是“該計划的主要工作就是重構Android OS 的framework,讓Android設備制造商能夠更快,更容易,更低成本的去升級Android 版本”

Google已經正式release了Android O AOSP r4版本

Binaries Driver 的組織方式再也不亂,直接會有vendor.img(與system.img),廠商你愛咋玩咋玩,只要你滿足哥哥的vendor interface就可以了。我大概看了一下,是將整個HAL層整合到vendor下面去,要定制也需要符合要求。

Android O及之后的版本的框架:

在Android O以及以后的版本當中,Android 更新了新的框架設計在新的框架設計當中,引入了一套叫HIDL的語言來定義Freamework與HAL之間的接口,新的架構如下圖:

跟以往的Android 版本相比較,Android O里使用HIDL來解耦Android Framework 與Vendor HAL Implemetation之間的關系,從而簡化降低Android系統升級的影響與難度。

Android Framework會在system分區當中,而Vendor HAL Implemetation會在一個新定義的分區(Vendor.img)當中,這樣刷新的system.img 才不會影響到Vendor HAL Implemetation,所以在Android O中的升級方式變成以下方式:

從android 8.0開始,Android重構了HAL與Android FW之間的聯系結構
* Binderized HALs
* Passthrough HALs,從google的官方介紹來說,這個是對原先HAL的包裝,但是最終的binder service 跟binder client都是活在同一個進程當中。這個應該是對老版本HAL的兼容。
* Same-Process HALs,由於某些性能的因素,這些HALs必須運行在Android Framework 所在的進程當中。

按照google的要求,新設計生產的Android O設備,必須而且只能支持 Binderized HALs,而老版本的設備升級到Android O可以支持 Passthrough HALs,但是有些HAL也必須修改成 Binderized HALs。

如圖要符合vendor interface。

具體的一些框架性的細節在此就不說了,據我所知的sensor、camera等都有大的變動,基本都移植到了vendor底下去了。

后面會在深入理解sensor這邊做詳細的分析。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com