• 浠嬬粛 首页

    重生05:鹅厂大佬,从网管崛起

  • 阅读设置
    第511章 布局全行业!天枢OS的生态阳谋(1/3)
    林景行沉吟几秒,缓缓开口,语气沉稳笃定: “其实这点我们可以直接写进合作协议,卡死红线——刚才卢总其实也提到过,有些边界绝对不能碰,这就是防碎片化的核心。”

    “我们官方统一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。

    app只认这套接口,不管底下接的是谁家的硬件。”

    “摄像头厂商和手机厂商要做的,是让自己的驱动去适配hal接口。

    里面寄存器怎么配、芯片怎么初始化,厂商自己决定; 但对外的接口必须符合hal标准。

    这套标准由我们定死,不准改,要迭代也只能由我们官方迭代。”

    “打个比方:我们的hal层是墙上的国标插座,厂商的硬件驱动是插头。

    我不管你插头用什么材料、怎么做的,但是你必须做成能插进去插座的形状。”

    “以后换摄像头、换传感器,只改hal层下面的适配代码就行,上面的系统和app完全不用动。”

    “而且厂商自研的内核和驱动代码必须开源,提交技术委员会审核通过后,并入官方主干,全行业共享。

    以后再遇到同款硬件,直接复用开源代码,不用每家都重复造轮子。”

    林景行顿了顿,看大家都恍然大悟的样子后,继续说道:一句话总结就是,hal是上层系统和底层硬件之间的标准隔离层,app只认接口,不认硬件;厂商只改底层,不影响上层。”

    “这就是接口与实现分离,也叫解耦。
    本章未完,请翻下一页继续阅读.........