自从谷歌正式发布Android 8.0系统到现在,已经过去了几个月的时间。最近,一些业内一线大厂都开始了自家的Android 8.0系统测试,诸如HTC U11、小米MIX2、一加5、LG V30都迎来了各自的Android 8.0Beta版测试固件。而三星Galaxy S8的首轮测试甚至已经接近尾声,有消息称其准备在更多国家和地区开启更大面积的测试版系统升级,其中就包括中国、德国、法国以及东南亚等地。当然,动作更快的索尼甚至已经完成了测试,开始向旗下多款机型推送正式版升级了~
然而,在这些大厂推送的Android 8.0中,有那么一家厂商的系统在海外开发者圈子里引发了热烈的欢呼以及讨论,它并不是“速度最快”的索尼,而是中国厂商华为。它们家的海外版Mate9最新测试系统同样基于Android 8.0开发而来,但和其他几家的测试版或正式版固件不同的是,华为海外版Mate9所推送的Android 8.0固件加入了一个非常重要的新特性:Project Treble(或者简称PT)。
首先,你需要知道 为什么系统更新会成为Android大问题?
在解释Project Treble的作用之前,笔者想请大家思考一个问题:为什么每次谷歌发布新版Android系统之后,各大一线厂商都需要好几个月的时间才能做出自己的系统更新,而二线厂商有时候甚至需要一年左右的时间?
有的朋友可能会想到深度定制系统所需的“改造”耗时很长,还有的朋友可能抛出厂商故意不给老设备更新系统,以此促进新产品销售的“阴谋论”……咳咳,我什么都不知道。
但是,其实以上的说法都没有真正触及问题核心:导致安卓系统适配缓慢,同时也是导致许多老设备无法更新到最新系统的最大原因既不是性能不足,也不是厂商缺乏技术,而是源自于Android的一个“天生”缺陷。
任何一位PC玩家都知道,传统电脑的驱动程序是可以自行安装、升级的,而且某一个驱动往往可以兼容不只一代操作系统。典型地来说,就是不少十年前的电脑,即使早就不能“官方兼容”最新的Win10系统,但用户自行安装了Vista或者Win7时代的驱动之后,依然可以正常使用——虽然有些最新的技术特性无法支持,但绝不会因此导致蓝屏或无法开机之类的BUG。
但是,在Android操作系统,却不是这样的。在Android系统上,驱动、重要的运行库等都必须和系统版本严格对应:同样的硬件,适配Android 2.2的驱动就只能工作在Android 2.2版本的系统里,如果不作任何改动直接用在Android 2.3上,很大的可能就是根本无法开机……这种驱动程序和系统“严格一对一”的做法从最早的初代测试版Android就确立下来,一直延续到了现在。
而且,和传统PC不同,Android设备的CPU、“显卡(GPU)”、WiFi模块的驱动往往并不会面向公众提供,而是由芯片厂商直接以代码的形式交付给手机厂商,然后再由手机厂商直接把驱动整合到做好的系统更新里去。
这样一来,每次谷歌发布新的Android版本,首先芯片厂商必须要先研究系统代码,写出每种不同型号的硬件适配新系统的驱动,然后把它们交给手机厂商,手机厂商又要进行整合、测试、优化……不耗上几个月根本搞不定好么!
最糟糕的是,如果芯片厂商没有给某一款硬件推出新版本的驱动,手机厂商手头的老版本驱动是无法在新版Android上工作的。而改写驱动理论上不是不可以,但是那个工程量实在是太大太大,搞不好还会弄出各种Bug甚至侵权问题。事实上,这就是绝大多数老手机都难以获得最新Android系统更新的原因所在。
Android历史上最大的变革:Project Treble
很显然,这种驱动程序和系统版本一一对应的做法,最初是为了保证用户体验:因为它可以确保安装了新版Android的设备,其硬件必然是完全满足新系统性能和功能所需的。但是,这种“强行淘汰”老设备的做法不仅造成了用户的不满,而且每年都必须更新一次的驱动也让芯片厂商和手机厂商疲于奔命——过于缓慢的新系统更新进度还进一步加大了Android系统的“碎片化”,让软件开发者也头疼不已。
最终,就连谷歌自己也对此忍无可忍:为了更好地解决系统碎片化问题,也为了给厂商、开发者、用户“省心”,谷歌在宣布Android8.0系统的同时,带来了Android历史上最大的变革:Project Treble。
Project Treble说来其实很简单,它无非就是解除了驱动和系统版本的“挂钩”机制,允许芯片厂商推出长期兼容未来新版本的驱动,并且保证它能够在以后的新版Android中无需修改也能正常使用。
但是,这一改动带来的变化之大却是有目共睹的:首先,对于硬件厂商来说,老型号的主控、WiFi模块等等只要具备一版符合Project Treble的“通用驱动”,就能兼容以后好多个版本的Android。不仅省去了适配新驱动的时间,也让老设备的“寿命”得以延长。
而对于手机厂商来说,只要某款手机符合Project Treble标准,将来谷歌推出新版Android的时候,无需再等待芯片厂商适配,直接把以前的驱动代码移植到新系统上就能保证正常使用,理论上可以将适配新版本Android的时间从几个月缩短到只需要一周甚至更短的时间。显然,这样会让用户的感受更好,同时也更有利于安全漏洞的及时修补。
当然,对于用户来说,如果你买了一款符合Project Treble的手机,那么将来谷歌推出Android 8.1、Android 9.0……的时候,其他手机可能需要几个月才能收到更新推送,但你的手机就只需要几周就能“吃”上新系统了,这感觉确实很棒。
更棒的是,由于在Project Treble框架下,驱动和操作系统之间的兼容性变得长期有效,所以哪怕厂商出于商业利益的目的,不再为用户手头的老型号提供官方更新,民间开发者们也能非常简单地将老版本系统中的驱动移植到最新的Android代码中去,以比过去更快、更稳定的节奏推出移植版系统供“机友”们刷入。从而一举给老机型们“续命”,让老手机们一次次地焕发新生!
以本次华为适配Project Treble的海外版Mate9固件为例,由于支持Project Treble,意味着固件里的那些重要的驱动、运行库等等可以被直接提取出来,用在更新的系统上——事实上,海外已经有开发者进行了尝试,将Mate9官方EMUI8(基于Android 8.0)的驱动提取出来,然后集成到开源的Android 8.1系统中再重新刷入,只需要一天的时间就能完成移植工作,而且做出来的新版系统完全可以正常使用。这就意味着,不管是将来华为给不给Mate9更新系统,至少海外版的Mate9用户们都能很快用上Android 8.1、9.0、10.0……甚至更后面的最新移植系统。
Project Treble虽好,但它未必能够立刻普及
需要注意的是,虽然本次华为在海外版Mate9的最新测试版固件中加入了Project Treble特性,证明了即使不是最新型号的手机,也可以通过赋予新驱动和新系统来让它支持Project Treble这一革命性的新特性。但是这并不意味着它就能很快普及开来。
首先,要支持Project Treble,需要驱动和系统两方面的兼容:谷歌已经保证未来的新版Android源代码都会兼容符合Project Treble的驱动,但是对于芯片厂商们来说,它们仍然需要为Project Treble推出兼容版的驱动才行。比如说,如果一个旧型号的主控早已不在官方的支持计划中,那么它显然不会得到新驱动的支持,而这就意味着它同样无法兼容未来的新版Android系统。
更进一步地说,Project Treble并非强制,而且兼容Android 8.0也不等于兼容Project Treble。因此不排除会有芯片厂商依然坚持老式的驱动适配方式,拒绝推出长期有效的Project Treble驱动。
要问为什么的话:老设备都能轻轻松松更新最新系统了,谁还会买新款呢?
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交