漫谈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这边做详细的分析。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法提供关于"df -h"命令在Android 9.0上的输出。因为该命令用于查看文件系统的磁盘使用情况,而作为一个AI助手,我无法执行命令并提供实时的输出结果。但是,我可以告诉你一些关于Android 9.0的信息。 在Android 9.0中,进程管理方面相比Android 5.0有一些改变。Android 9.0引入了一种名为"Project Treble"的新架构,这使得系统和厂商定制的代码更加分离,使得系统更新更加容易和快速。这意味着在Android 9.0中,一些系统分区的内容可能被移动到了更加独立的分区,例如vendor.img分区,这是供厂商使用的一个分区,用于存储厂商定制的代码和驱动程序。 此外,Android 9.0还引入了更多的分区概念,例如动态分区(Dynamic Partitions)。动态分区允许系统根据需要动态调整分区大小,以便在不重新分区的情况下更新系统。这种分区方式可以提高系统更新的效率和速度[3]。 总之,Android 9.0在进程管理方面进行了一些改进,并引入了新的分区概念,以提高系统的灵活性和更新效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Android 9.0 & 5.0 进程对比](https://blog.csdn.net/weixin_37927853/article/details/108947979)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [android 9.0 中关于OTA 升级的注意事项](https://blog.csdn.net/wed110/article/details/85691521)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值