Project Treble是Android升级的最终方案吗?

关键提要

  • iOS的更新一般会在发布以后就能在全部受支持的设备上进行安装,然而Android的更新速度却慢得让人难以接受。\t
  • Project Treble是试图解决这一系列问题(Android的碎片化)的尝试,它试图经过硬件抽象层(HAL,Hardware Abstraction Layer)对软硬件之间进行更明确的划分从而解决这一问题。\t
  • 在Project Treble和Android Oreo以前,供应商的底层硬件代码和Google的AOSP操做系统(包括HAL)都是很庞大的。\t
  • 因为集成了Project Treble,Google可以将最新版本的AOSP操做系统代码更新到设备,而OEM厂商则须要更新底层硬件相关的组件。\t
  • Project Treble的关键是经过硬件定义语言(HIDL)、Android供应商测试套件(VTS,Vendor Test Suite)在HAL和它的用户之间定义一个清晰的接口。VTS是一组测试,用于验证升级后的操做系统与厂商硬件实现之间的兼容性。当前版本的Android中大约存在60种HIDL。

iOS的更新一般会在发布以后就能在全部受支持的设备上进行安装,然而Android的更新速度却慢得让人难以接受。事实上,Android智能手机能收到几回更新是很幸运的,由于如今智能手机的成本更低了,在它的整个生命周期中可能一次更新都收不到。安全

众所周知,多年以来,碎片化已经成为Android世界的一个主要问题为Android平台开发应用程序也变得更复杂了。缺少安全性、日益增加的脆弱性以及不兼容性是Google、OEM厂商和用户的主要关注点。架构

Project Treble是试图解决这一系列问题(Android的碎片化)的尝试。在对Project Treble进行介绍以前,理解硬件抽象层(HAL,Hardware Abstraction Layer)在Android OS框架中的做用能帮助你更好地理解Project Treble。框架

硬件抽象层(HAL)

硬件抽象层可以将其实现特性隐藏于更高级别的程序中,在此前提下使得操做系统与硬件设备进行通讯。换句话说,HAL将硬件设备与操做系统分隔开来,以下图所示:工具

80523571ca54fbccd5be4487ddf020fe.gif

HAL是在Linux内核之下的一层,它用于处理HAL和设备硬件组件之间的特定硬件通讯。不一样于iOS设备,Android设备每每有许多不一样的硬件组件,正由于如此,编译后的Linux二进制执行文件一般每一个设备都是不一样的。简单来讲,这就是碎片化的问题所在。布局

Project Treble前身

在Project Treble和Android Oreo出现以前,供应商的底层硬件代码和Google的高级AOSP搞做系统(包括HAL)是很是庞大的。测试

e6fef391481bb1ca26eb332e4f96ccad.png

也就是说,在Project Treble出现之前,为了更够让供应商升级到最新版本的Android系统,他们必需要对供应商的底层硬件代码和Google的高级AOSP操做系统进行更新,这一流程使得Android设备的升级被延迟,并将其置于安全风险中。ui

74da396e7f6505160615b7e305a1ef00.png

除此以外,手机制造商还须要等待硬件合做伙伴发布驱动更新,以确保硬件与最新版本的Android之间的兼容性。不一样于Windows PC和Mac设备,Android并非即插即用的。操作系统

什么是Project Treble?Google想用它作什么?

Android更新的主要问题在于,手机制造商迟迟不发布更新。更糟糕的是,随着新型号的到来,手机支持将会被从新进行评估。多年来,消费者一直在向手机制造商和Google表达不满。如今,Google的Project Treble的到来可能会改变手机制造商发布软件更新的方式。3d

Project Treble是Android Oreo的一部分,它带来了操做系统框架的关键重构。这一项目的主要目标是使得Android系统的更新更快、更简单。Project Treble多是Android Oreo系统更新中所宣布的最大的变化,可是消费者可能甚至都没有意识到这一点,由于这项改动并非在手机的表面上。尽管如此,这一改动的好处依旧是不可胜数。blog

然而,你也不要把指望值定的过高,由于对设备的升级依然须要手机供应商的参与。

Project Treble不一样你想

然而,与你想象的相反,Project Treble并不会将全部的Android Oreo设备都变成Pixel或Nexus。事实上,Google并非本身来处理软件更新,Android设备制造商仍然须要将其编译而且进行发布。Project Treble是Google为了加速无线下载(OTA,over-the-air)更新所作的一项努力,可是发布OTA更新的职责依然属于供应商。OTA更新会和往常同样推送到你的设备上。若是Project Treble取得成功,你会更频繁地收到Android系统的更新通知。

Project Treble为OS框架带来了哪些架构上的变化?

Project Treble将Android操做系统框架从供应商的硬件代码实现中分离出来了。经过这一分离以及得益于Project Treble的集成,Google可以将更高级别的AOSP操做系统代码更新到最新版本,而由OEM厂商来对其底层硬件相关的组件进行更新。

f05de9ef363689c099edc6b9866a6f8f.png

可是,这并无解决所有问题。OEM厂商仍然须要对其底层组件进行更新。而且他们还必须依赖于那些提供大部分硬件代码的SoC供应商们,这就违背了Project Treble的初衷。

为了解决这一问题,Google已经找到了一种解决方案:使用HAL接口定义语言。它的目标是经过对细节进行抽象来减小对HAL的依赖。其他的部分依赖于供应商和OEM厂商。

经过HIDL解决HAL问题

正如咱们前面所讨论的,HAL促进了硬件组件和应用程序之间的通讯。Android O正式将HAL硬件组件进行了划分,好比音频或摄像头,以及操做系统层的客户端。这些新的正式的划分经过硬件定义语言(HIDL,Hardware Definition Language)来描述HAL和它的用户之间的接口。当前版本的Android中有大约60个不一样的HIDL包。HIDL包能够在无需从新构建HAL的前提下替换操做系统框架,从而减小了供应商对Soc制造商的依赖,可以直接发布下一个OTA更新。这就意味着,无需从新编译HAL就能发布OTA更新,这样就能够迅速应用新版本的Android系统所带来的变化。

5e4d92222926227c9c03c88b683eeebd.png

c871794d266f3ed19faf02e62a293bff.png

固然了,等待升级到下一个版本的Android设备的硬件必须与这个版本的Android系统相兼容。在Project Treble发布之前,若是要发布软件更新,Android设备制造厂商须要依赖于电子制造商,而不用考虑当前设备的硬件与当前Android版本的兼容性。在以前,供应商的实现会受到新版本Android发布影响,其中包括半导体制造商(高通、联发科、三星等)的硬件专用代码,而且须要更新Android操做系统框架。随着Project Treble的发布,如今的状况已经不同了。img

bb0cf6eeb5ef47d6444289e1091779d0.png

新的Android版本如今仅须要和被升级设备的未经改动的供应商实现部分进行兼容便可,升级过程能够经过Android供应商测试套件来确保顺利完成。Android供应商测试套件(VTS,Vendor Test Suite)是一组测试工具,它用于验证升级后的操做系统与供应商实现部分的兼容性。一旦兼容性测试经过,OEM厂商就能够经过升级OS框架的AOSP操做系统来发布一个OTA升级了。VTS是一款面向硬件的模拟兼容性测试套件(CTS,Compatibility Test Suite),它能够确保Android应用程序的API可以在Android设备上得以正确的实现。

经过Android供应商测试套件(VTS)的测试对于Android设备来讲是相当重要的,由于HIDL的目标是在不从新构建HAL的状况下替换操做系统框架。HAL是由半导体供应商进行构建的,而且构建于设备的供应商分区中,这使得操做系统框架被放置于一个本身的分区中,无需从新编译HAL就可以经过OTA更新进行替换。

不论如何,更新AOSP操做系统是发布OTA更新的最低要求,可是大多数供应商均可以更新UI层,而且能够将他们本身的软件附加至更新中。这一过程须要时间。所以,不要期望Google将Android更新发布的几周内,Android升级就会出如今你的设备上,这一福利仍然只属于Pixel和Nexus设备。

简而言之,尽管升级的方式仍是保持不变,可是Project Treble已经消除了来自半导体供应商的依赖。

反馈

知名的在线出版社赞赏了Project Treble,由于它消除了Android生态系统中最大的问题之一,包括如下内容:

  • Time杂志写道,Android Oreo的这一新特性可以解决Google的一个大麻烦。\t
  • Techradar称Project Treble为Android史上最重要的更新。\t
  • XDA论坛的Mishaal Rahmaan称其为自定义ROM的一场革命,由于Project Treble使得Android Oreo变得极其容易。\t
  • Andy Rubin的Essential Phone、华为、华硕等都在将其设备升级至Android Oreo时表示了对Project Treble的支持。

然而,许多手机制造商在将他们的设备升级到Android Oreo时并无提供对Project Treble的支持。彷佛许多Android设备制造商对Project Treble带来的操做系统框架的架构性改动感到担心,连接中的这些设备在升级到Android Oreo时提供对Project Treble的支持

为何有一些OEM厂商选择退出?

OEM厂商对Project Treble的顾虑

对于Android厂商来讲,将其设备升级从Nougat升级至Oreo时,Project Treble这一特性的改动尤为让人担心。一名OnePlus员工在AMA会议上给出了担心背后的合理的理由

Project Treble须要一个存储分区,经过该分区将Android框架和供应商的映像相分离。可是,因为Android N和以前的Android版本并不须要这一份去,所以咱们如今的全部设备都没有该分区。根据咱们的测试,若是咱们经过OTA升级来修改分区布局,那么在进行分区的时候,设备有可能会变砖。咱们认为这对于咱们的用户来讲是一个很大的风险,这就是咱们为何决定不在当前的OnePlus设备上添加Project Treble支持的缘由。

中国智能手机品牌OnePlus是首家在Android平台上退出Project Treble功能的厂商,该公司目前当前和以前的旗舰设备都是基于Android Nougat系统的。

Nokia是第二家对Project Treble向公众发布犹豫不决的公司,尤为是在将当前设备升级到支持Project Treble的Android Oreo的时候:

在未来,HMD会致力于在全部新的Android Oreo设备上实现Project Treble,咱们对可能致使的用户的失望表示道歉。

最后的一点想法

对于Android应用程序开发者和用户来讲,这的确是一个伟大的时刻,所以Google终于解决了它的一大烦恼,即统一操做系统。Project Treble意味着手机将拥有更长的支持周期,而不是仅仅两年,两年是目前大多数旗舰公司所提供的支持周期。可是,最终这还将取决于OEM厂商是否会对其设备发布更新的决定。

关于做者

13d1c1aab1be6d7e50155532c04c55db.pngShahid Mansuri 是Peerbits的联合创始人,Peerbits是美国领先的Android移动应用程序开发公司,成立于2011年。他的远见卓识和张扬的管理风格给公司带来了丰硕的成果。他相信,在创业上和商业上,他会把本身的知识基础与本身的知识不断地进行分享。做为一个热爱大天然的人,他喜欢在假期的时候在海滩上展现他的睡衣。

查看英文原文:Is Project Treble the Answer to Android Updates?