https://www.ithome.com/html/android/338386.htm
IT之家12月12日消息 此前一加的工作人员在海外官方论坛上解释了为何旗下现有的任何设备升级安卓8.0后都无法支持Project Treble,简单来说就是如果支持该功能的话设备有变砖的风险,现在一加官方工程师在国内论坛也进行了详细解释,不妨来看一下。
官方原文:
各位加油:
大家好!
我是一加的软件工程师,近期看到部分加油对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)设计,并且在后面的更新中会持续完善。
谷歌官方关于Treble的链接:https://source.android.com/devices/architecture/treble
另外,还有个加油比较关心的问题:关于底层是7.1.1。
参考链接: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对我们未来的产品有更好的支持。
谢谢!