代。”
“打个比方:我们的HAL层是墙上的国标插座,厂商的硬件驱动是插头。我不管你插头用什么材料、怎么做的,但是你必须做成能插进去插座的形状。”
“以后换摄像头、换传感器,只改HAL层下面的适配代码就行,上面的系统和APP完全不用动。”
“而且厂商自研的内核和驱动代码必须开源,提交技术委员会审核通过后,并入官方主干,全行业共享。以后再遇到同款硬件,直接复用开源代码,不用每家都重复造轮子。”
林景行顿了顿,看大家都恍然大悟的样子后,继续说道:一句话总结就是,HAL是上层系统和底层硬件之间的标准隔离层,APP只认接口,不认硬件;厂商只改底层,不影响上层。”
“这就是接口与实现分离,也叫解耦。碎片化的问题,这不从根上就解决了。”
赵远靠在椅背上微微点头。他太清楚安卓的历史痛点了——早期安卓之所以碎片化严重、手机越用越卡,根子就在上层系统与底层硬件之间没有一道标准隔离墙。
系统想用摄像头,得直接找厂商的驱动,按人家私有的规矩来。A厂商一套接口,B厂商一套接口,系统框架里写的代码又只认其中一家的接口,只能对接这一家。
换个摄像头,接口对不上,系统自己先崩,APP就更别说了换了硬件就得大改,这就导致厂家连系统升级都难。
因为谷歌出了新版本,得芯片厂商先改驱动,再交给手机厂商改适配,最后才能推给用户。哪一环不配合,这手机就永远停在老版本。
所以那时候很多手机买来是什么系统版本,用到报废还是什么版本。问题就出在没有这层标准隔离。
于是后来Android8.0搞了ProjectTreble,本质上就是强制规定了统一的HAL层:全行业只能用同一张菜单。菜单由谷歌定死,不准改。厂商后厨怎么做菜随便,但端出来的菜名必须跟菜单对上。
从此换硬件不用改上层,系统升级也不用等厂商重新适配。而安卓是2017年才推出这套方案,解决碎片化问题还花了好几年,而且到现在都还在逐步消化历史遗留问题。
但天枢OS从设计之初就把这套架构定好了,从根上就避开了安卓踩过的坑——碎片化、越用越卡、体验割裂、开发者适配成本高这些毛
本章未完,请点击下一页继续阅读!