自从谷歌正式发布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。