01:为什么更新慢
安卓和iOS俨然已成为全球两大移动操作系统,尤其是安卓,占据了智能手机87.7%的市场,和iOS一同,瓜分了99.9%的江山
这就相当于,每卖出八部智能手机,就有七部是安卓
安卓倡导开源,即代码公开,厂商可以自由定制修改,比如定制UI(用户界面),优化删减底层代码
iOS则坚持闭源,系统只给自家产品使用,代码也不对外开放
而安卓一直以来也给人一种流畅度不如iOS的感觉,近年来的确差距在减小,主流旗舰的流畅水准已经相当接近iOS,甚至在软件开启速度上已经超越,不过,除了游戏
但是有一点一直是安卓的阿喀琉斯之踵,也许这辈子都达不到iOS的高度
安卓升级速度慢,并且无法做到全机型同步升级
最新的数据,iOS 12的整体安装率已经达到了75%,甚至连2013年的iPhone 5s都能运行。你能想象三星S4或者NEW HTC One运行安卓9.0的场景吗
一部安卓手机,要升级系统需要经历怎样的艰难险阻,一起围观下
1、谷歌向厂商提供PDK(开发工具包),以便测试新的软件架构(新系统发布前的测试)
2、谷歌召开I/O大会,发布新版安卓系统,介绍新特性,最新的是安卓9.0,代号为Pie
每年的安卓系统都有个名字,从安卓1.5 Cupcake开始,每年的安卓都会以甜点命名,相传,项目主管喜欢点心
并且从cupcake开始,都是按字母顺序排列下去的,下一代应该就轮到Q上位了,QXXXX
3、谷歌向手机厂商和芯片制造商提供源代码
4、制造商通过代码进行相关硬件以及芯片的适配,注意,并不是所有芯片都会去适配!这个要看心情...之前OPPO,vivo还在用联发科的时候,联发科不给适配,结果那一代手机无法升级系统
5、手机厂商获得修改后的BSP,即板级支持包,有了这个才能加载BootLoader,安卓的HAL(硬件抽象)层才能工作,需要注意的是,HAL是存在于User Space中的,而不是在内核中的
因为内核是用GPL协议的,需要公开代码,User Space使用的是Apache,并不需要
硬件抽象层都是关于各个硬件的参数等商业机密,所以是放在User Space中的
因此,光移植内核,机器是无法工作的,因为完整的驱动在HAL里,在此提醒大家刷机时不要乱刷内核...因此,与其称安卓是开源,不如说是开放系统比较合适
6、硬件能用之后,手机厂商就可以进行对系统的改造计划,改UI,替换内置软件,增加自己的功能
这个根据各个厂商的改动程度不同,需要不同的时间,国内一般都是改动比较大
并且,就算是同部手机,也有不同的版本系统,比如三星在美国,中国,日本以及南美国家是使用骁龙处理器,配备索尼相机传感器
而其他地区是用自家的Exynos处理器,摄像头也是自家传感器。硬件差异自然会带来系统的不同
再来便是运营商定制问题,虽然经过群众不懈的努力,国内已经基本消灭了定制机,但在国外,定制机可是很吃香的
定制机不免就要对软件进行定制,甚至网络也要做适配甚至“阉割”
7、整体调试完,这就完事了?当然没那么简单。这最多算个beta版,还需要通过召集用户进行公测,经过多个beta版更新,修复各类bug
8、最后,在确保各项功能性完整,无重大已知bug的情况下,这才能将系统通过OTA或者固件形式进行推送,之后还要不断做维护,修复新出现的bug
整个过程确实还是比较复杂的,从中也可以看出作为手机厂商,工作量非常巨大,每一个系统的更新背后都是无数人的努力
所以也别总吐槽系统bug,一堆代码,总是会有bug出现,修复了,也会有其他的出现
由此,系统升级慢完全是事出有因,情有可原。一方面,硬件供应商需要大量的适配,另一方面,手机厂商需要做大量的定制化修改
而这些,也都是基于安卓机型配置错综复杂,例如全面屏手机各种奇葩的分辨率
但最令人揪心的不是速度慢,而是无法给所有设备统一更新,瞅瞅隔壁家iOS,全球升级一个系统
02:不能统一升级
这其中主要还是因为安卓开源后有太多版本,修改了底层,进行了定制
这就好比天子将天下分给了诸侯,诸侯通过自我发展,日益强大,最后对天子的命令视而不见
但天子就是天子啊,为了阻止诸侯们肆意妄为,不听指示,也是为了维护自己的权威。天子对天下进行了改造,发布了Project Treble项目
以前安卓升级的问题在于手机厂商需要等待硬件厂商的驱动更新,并且需要SoC厂商(比如三星,高通,华为麒麟,联发科等)重新构建HAL层,这一时间非常漫长
03:Project Treble
而Project Treble则是直接将安卓框架从供应商的硬件代码中分离,但是,这并没有解决全部问题啊
手机厂商仍然需要对底层进行更新,并且还是依赖于那些提供大部分代码的SoC厂商
为了解决剩下的问题,谷歌决定将HAL进行了划分,分成了多个HIDL(硬件定义语言),比如音频,摄像头,显示,传感器,如下图
有什么用呢,这样一来,HAL层不用等SoC厂商重新构建,直接可以替换系统框架,直接发布更新
现在,新的安卓只需要设备和未改动的硬件供应商进行兼容,测试兼容性则是利用谷歌发布的VTS,供应商测试套件
通过兼容之后,手机厂商再修改自己的UI,进行自我风格的定制,毕竟不是每个人都喜欢原生安卓的风格,之后在添加自己的软件,测试完成后就可以发布更新
简而言之,Project Treble让手机厂商摆脱了对SoC厂商的依赖,让手机能更快完成硬件适配
虽然,无法做到像谷歌pixel一样,立马获得安卓版本的更新,但还是缩短了整个设备的更新周期
然而,手机厂商对这个项目的支持度并不友好,虽然在安卓8.0的时候,Project Treble就已经集成在系统中,但是当年的三星S8却并不支持
即便是支持的三星S9(海外版),目前也只是刚刚获得安卓9.0的更新
但目前,谷歌已要求,所有预装安卓9.0的手机,必须支持Project Treble特性
安卓想要解决碎片化还有很长的路要走,Project Treble已经为我们提供了可行的思路,接下来则需要手机厂商和硬件厂商的共同配合
极客修,值得信赖的手机快修平台!
閱讀更多 極客修 的文章