林景行沉吟几秒,缓缓开口,语气沉稳笃定: “其实这点我们可以直接写进合作协议,卡死红线——刚才卢总其实也提到过,有些边界绝对不能碰,这就是防碎片化的核心。”
“我们官方统一HAL接口标准,就像国家统一规定所有家用插座都是五孔220V国标。 厂商可以改内核实现,可以自己写驱动代码,但我们划定的接口标准半分不能动,必须严格遵守官方规范。
“同时,所有对内核、驱动的修改,必须按GPL协议公开源码,提交官方技术委员会审核,通过后合并进官方主干,全行业共享。”
“接口统一了,驱动开源了,内核主干就永远只有一条。厂商再怎么改底层实现,都绕不开这套标准接口。就像你家电器插头都是国标,随便插哪个插座都能用。”
他顿了顿,换了个更直白的软件层面的例子: “拿相机APP举例。它要的无非就几件事:打开摄像头、实时预览、拍照、录像。”
“最理想的状态,是只调用几个标准API:OpenCamera()、StartPrevieW()、takePiCtUre()。底下用的是索尼、三星还是哪家的传感器,APP根本不该关心,也不用知道。”
“没有HAL的时候做不到。APP得直接对接某家摄像头的私有驱动。适配A厂商的摄像头,就调用Open_a()、take_piCtUre_a(),这套调用只认A的驱动。”
“换成B厂商的摄像头,底层换成B的驱动,接口变成Open_b()、take_piCtUre_b(),连参数顺序都不一样。APP还按A那套去调用,找不到接口,轻则报错闪退,重则直接崩溃。 硬件一换,上层代码就得跟着全改一遍。”
“有了统一HAL就不一样了。HAL定死一套标准接口:OpenCamera()、StartPrevieW()、takePiCtUre()、StOpPrevieW()。A
本章未完,请点击"下一页"继续阅读! 第1页 / 共4页