【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

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

  • 2018-02-17
  • 本文字数:4214 字

    阅读完需:约 14 分钟

关键提要

  • iOS 的更新通常会在发布之后就能在所有受支持的设备上进行安装,然而 Android 的更新速度却慢得让人难以接受。
  • Project Treble 是试图解决这一系列问题(Android 的碎片化)的尝试,它试图通过硬件抽象层(HAL,Hardware Abstraction Layer)对软硬件之间进行更明确的划分从而解决这一问题。
  • 在 Project Treble 和 Android Oreo 之前,供应商的底层硬件代码和 Google 的 AOSP 操作系统(包括 HAL)都是很庞大的。
  • 由于集成了 Project Treble,Google 能够将最新版本的 AOSP 操作系统代码更新到设备,而 OEM 厂商则需要更新底层硬件相关的组件。
  • 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 将硬件设备与操作系统分隔开来,如下图所示:

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

Project Treble 前身

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

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

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

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

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

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

然而,你也不要把期望值定的太高,因为对设备的升级依然需要手机供应商的参与。

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 厂商来对其底层硬件相关的组件进行更新。

但是,这并没有解决全部问题。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 系统所带来的变化。

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

新的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 的一个大麻烦。
  • Techradar 称 Project Treble 为 Android 史上最重要的更新。
  • XDA 论坛的 Mishaal Rahmaan 称其为自定义 ROM 的一场革命,因为 Project Treble 使得 Android Oreo 变得极其容易。
  • 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 厂商是否会对其设备发布更新的决定。

关于作者

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

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

2018-02-17 17:024266

评论

发布
暂无评论
发现更多内容

并发与多线程之线程安全篇

Linux服务器开发

线程 多线程 并发 后端开发 Linux后台开发

【直播预告】「不确定性局势下的金融安全保障」,拒绝纸上谈兵,破局合规挑战

FinClip

安全 金融 数据安全 合规性

Prometheus 监控系统

yuexin_tech

Prometheus

设计电商秒杀系统

AUV

「架构实战营」

#JiraHero:Soumen Deb——重塑 Jira Software 中的 Bug 工作流,提高可见性、简化开发流程

Atlassian

DevOps 敏捷 工作流 Atlassian Jira

在线CSS美化格式化工具

入门小站

工具

高并发场景下优化加锁方式:线程等待与通知机制

华为云开发者联盟

线程 高并发 死锁 加锁 互斥锁

2022第11周-打油诗一首

印哥爱学习

生活记录

【架构实战营】-模块一作业

,lazy

「架构实战营」

Linux之nohup命令

入门小站

Linux

spring cloud篇之配置中心

邱学喆

加密解密 配置中心 spring-cloud-config 配置实时性

不考虑安全的数字化转型都是伪命题

极狐GitLab

security DevSecOps

架构实战营

踩着太阳看日出

加密项目必修科目:代币经济学

CECBC

数字经济的重要基石——数据安全

CECBC

绝悟AI再次亮相GDC,展示人机协作与AI内容生成能力

科技热闻

毕设-电商秒杀系统

曾竞超

架构实战营 「架构实战营」

毕业总结:

Geek_59dec2

毕业总结

手绘流程图讲解spark是如何实现集群的高可用

华为云开发者联盟

spark 高可用 集群 Worker master

NFT数字藏品NFT交易系统平台开发

薇電13242772558

NFT

测试开发【Mock平台】03 基础:初识Antd React 开箱即用中台前端框架

MegaQi

React 测试平台开发教程 测试干货

在线HTML5,CSS3,VueJS,jQuery运行测试练习工具

入门小站

工具

对校招生做 Offer 选择的一点心得

踏雪痕

offer 3月程序媛福利 3月月更

王者荣耀商城异地多活架构设计

唐尤华

架构实战营

特性更新!DistSQL 集群治理能力详解

SphereEx

Apache 数据库 ShardingSphere SphereEx

写作一

ASCE

【架构学习06】——拆分电商系统为微服务

tiger

架构实战营

从 0 到 1 建设小程序可观测性

方勇(gopher)

小程序 可观测性 SRE 服务治理 低代码开发

架构训练营-模块一

流火

最新实用油猴脚本推荐

源字节1号

技术分享

极客星球 | 联邦学习与产品化之路

MobTech袤博科技

人工智能 联邦学习 FATE

Project Treble是Android升级的最终方案吗?_移动_Shahid Mansuri_InfoQ精选文章